void DIALOG_TEXT_PROPERTIES::OnDimensionUnitsChange( wxCommandEvent& event ) { DIMENSION* dimension = (DIMENSION*) m_item; EDA_UNITS_T units; bool useMils; // Get default units in case dimension text doesn't contain units. dimension->GetUnits( units, useMils ); double value = ValueFromString( units, m_DimensionText->GetValue(), useMils ); switch( event.GetSelection() ) { case 0: units = INCHES; useMils = false; break; case 1: units = INCHES; useMils = true; break; case 2: units = MILLIMETRES; useMils = false; break; default: break; } m_DimensionText->SetValue( StringFromValue( units, value, true, useMils ) ); }
bool DIALOG_TEXT_PROPERTIES::TransferDataToWindow() { if( m_SingleLineText->IsShown() ) { m_SingleLineText->SetValue( m_edaText->GetText() ); if( m_modText && m_modText->GetType() == TEXTE_MODULE::TEXT_is_REFERENCE ) SelectReferenceNumber( static_cast<wxTextEntry*>( m_SingleLineText ) ); else m_SingleLineText->SetSelection( -1, -1 ); } else if( m_MultiLineText->IsShown() ) { m_MultiLineText->SetValue( m_edaText->GetText() ); m_MultiLineText->SetSelection( -1, -1 ); } else if (m_DimensionText->IsShown() ) { m_DimensionText->SetValue( m_edaText->GetText() ); m_DimensionText->SetSelection( -1, -1 ); DIMENSION* dimension = (DIMENSION*) m_item; EDA_UNITS_T units; bool useMils; dimension->GetUnits( units, useMils ); m_DimensionUnitsOpt->SetSelection( units == MILLIMETRES ? 2 : useMils ? 1 : 0 ); } if( m_item->Type() == PCB_MODULE_TEXT_T && m_modText ) { MODULE* module = dynamic_cast<MODULE*>( m_modText->GetParent() ); wxString msg; if( module ) { msg.Printf( _("Footprint %s (%s), %s, rotated %.1f deg"), module->GetReference(), module->GetValue(), module->IsFlipped() ? _( "back side (mirrored)" ) : _( "front side" ), module->GetOrientation() / 10.0 ); } m_statusLine->SetLabel( msg ); } else { m_statusLine->Show( false ); } if( m_LayerSelectionCtrl->SetLayerSelection( m_item->GetLayer() ) < 0 ) { wxMessageBox( _( "This item was on a non-existing or forbidden layer.\n" "It has been moved to the first allowed layer." ) ); m_LayerSelectionCtrl->SetSelection( 0 ); } m_textWidth.SetValue( m_edaText->GetTextSize().x ); m_textHeight.SetValue( m_edaText->GetTextSize().y ); m_thickness.SetValue( m_edaText->GetThickness() ); m_posX.SetValue( m_edaText->GetTextPos().x ); m_posY.SetValue( m_edaText->GetTextPos().y ); m_Visible->SetValue( m_edaText->IsVisible() ); m_Italic->SetValue( m_edaText->IsItalic() ); EDA_TEXT_HJUSTIFY_T hJustify = m_edaText->GetHorizJustify(); m_JustifyChoice->SetSelection( (int) hJustify + 1 ); m_OrientValue = m_edaText->GetTextAngleDegrees(); m_Mirrored->SetValue( m_edaText->IsMirrored() ); if( m_modText ) m_KeepUpright->SetValue( m_modText->IsKeepUpright() ); return DIALOG_TEXT_PROPERTIES_BASE::TransferDataToWindow(); }