void DIALOG_CREATE_ARRAY::OnParameterChanged( wxCommandEvent& event ) { const wxObject* evObj = event.GetEventObject(); // some controls result in a change of enablement if( evObj == m_radioBoxGridNumberingScheme || evObj == m_checkBoxGridRestartNumbering ) { setControlEnablement(); } if( evObj == m_entryCentreX || evObj == m_entryCentreY ) { calculateCircularArrayProperties(); } }
DIALOG_CREATE_ARRAY::DIALOG_CREATE_ARRAY( PCB_BASE_FRAME* aParent, wxPoint aOrigPos, ARRAY_OPTIONS** aSettings ) : DIALOG_CREATE_ARRAY_BASE( aParent ), CONFIG_SAVE_RESTORE_WINDOW( m_options.m_optionsSet ), m_settings( aSettings ), m_originalItemPosition( aOrigPos ) { // Set up numbering scheme drop downs // // character set // NOTE: do not change the order of this relative to the ARRAY_NUMBERING_TYPE_T enum const wxString charSetDescriptions[] = { _( "Numerals (0,1,2,...,9,10)" ), _( "Hexadecimal (0,1,...,F,10,...)" ), _( "Alphabet, minus IOSQXZ" ), _( "Alphabet, full 26 characters" ) }; m_choicePriAxisNumbering->Set( DIM( charSetDescriptions ), charSetDescriptions ); m_choiceSecAxisNumbering->Set( DIM( charSetDescriptions ), charSetDescriptions ); m_choiceCircNumberingType->Set( DIM( charSetDescriptions ), charSetDescriptions );; m_choicePriAxisNumbering->SetSelection( 0 ); m_choiceSecAxisNumbering->SetSelection( 0 ); m_choiceCircNumberingType->SetSelection( 0 ); Add( m_entryNx, m_options.m_gridNx ); Add( m_entryNy, m_options.m_gridNy ); Add( m_entryDx, m_options.m_gridDx ); Add( m_entryDy, m_options.m_gridDy ); Add( m_entryOffsetX, m_options.m_gridOffsetX ); Add( m_entryOffsetY, m_options.m_gridOffsetY ); Add( m_entryStagger, m_options.m_gridStagger ); Add( m_radioBoxGridStaggerType, m_options.m_gridStaggerType ); Add( m_radioBoxGridNumberingAxis, m_options.m_gridNumberingAxis ); Add( m_checkBoxGridReverseNumbering, m_options.m_gridNumberingReverseAlternate ); Add( m_entryCentreX, m_options.m_circCentreX ); Add( m_entryCentreY, m_options.m_circCentreY ); Add( m_entryCircAngle, m_options.m_circAngle ); Add( m_entryCircCount, m_options.m_circCount ); Add( m_entryRotateItemsCb, m_options.m_circRotate ); Add( m_entryCircNumberingStart, m_options.m_circNumberingOffset ); Add( m_gridTypeNotebook, m_options.m_arrayTypeTab ); Add( m_radioBoxGridNumberingScheme, m_options.m_grid2dArrayNumbering ); Add( m_choicePriAxisNumbering, m_options.m_gridPriAxisNumScheme ); Add( m_choiceSecAxisNumbering, m_options.m_gridSecAxisNumScheme ); Add( m_entryGridPriNumberingOffset, m_options.m_gridPriNumberingOffset ); Add( m_entryGridSecNumberingOffset, m_options.m_gridSecNumberingOffset ); RestoreConfigToControls(); // Load units into labels { const wxString lengthUnit = GetAbbreviatedUnitsLabel( g_UserUnit ); m_unitLabelCentreX->SetLabelText( lengthUnit ); m_unitLabelCentreY->SetLabelText( lengthUnit ); m_unitLabelDx->SetLabelText( lengthUnit ); m_unitLabelDy->SetLabelText( lengthUnit ); m_unitLabelOffsetX->SetLabelText( lengthUnit ); m_unitLabelOffsetY->SetLabelText( lengthUnit ); } // Run the callbacks once to process the dialog contents setControlEnablement(); calculateCircularArrayProperties(); Fit(); }
void DIALOG_CREATE_ARRAY::OnParameterChanged( wxCommandEvent& event ) { setControlEnablement(); calculateCircularArrayProperties(); }
DIALOG_CREATE_ARRAY::DIALOG_CREATE_ARRAY( PCB_BASE_FRAME* aParent, bool enableNumbering, wxPoint aOrigPos ) : DIALOG_CREATE_ARRAY_BASE( aParent ), m_settings( NULL ), m_hSpacing( aParent, m_labelDx, m_entryDx, m_unitLabelDx ), m_vSpacing( aParent, m_labelDy, m_entryDy, m_unitLabelDy ), m_hOffset( aParent, m_labelOffsetX, m_entryOffsetX, m_unitLabelOffsetX ), m_vOffset( aParent, m_labelOffsetY, m_entryOffsetY, m_unitLabelOffsetY ), m_hCentre( aParent, m_labelCentreX, m_entryCentreX, m_unitLabelCentreX ), m_vCentre( aParent, m_labelCentreY, m_entryCentreY, m_unitLabelCentreY ), m_circRadius( aParent, m_labelCircRadius, m_valueCircRadius, m_unitLabelCircRadius ), m_circAngle( aParent, m_labelCircAngle, m_entryCircAngle, m_unitLabelCircAngle ), m_cfg_persister( saved_array_options.m_optionsSet ), m_originalItemPosition( aOrigPos ), m_numberingEnabled( enableNumbering ) { // Set up numbering scheme drop downs // // character set // NOTE: do not change the order of this relative to the NUMBERING_TYPE_T enum const wxString charSetDescriptions[] = { _( "Numerals (0,1,2,...,9,10)" ), _( "Hexadecimal (0,1,...,F,10,...)" ), _( "Alphabet, minus IOSQXZ" ), _( "Alphabet, full 26 characters" ) }; m_choicePriAxisNumbering->Set( arrayDim( charSetDescriptions ), charSetDescriptions ); m_choiceSecAxisNumbering->Set( arrayDim( charSetDescriptions ), charSetDescriptions ); m_choicePriAxisNumbering->SetSelection( 0 ); m_choiceSecAxisNumbering->SetSelection( 0 ); m_circAngle.SetUnits( EDA_UNITS_T::DEGREES ); // bind grid options to persister m_cfg_persister.Add( *m_entryNx, saved_array_options.m_gridNx ); m_cfg_persister.Add( *m_entryNy, saved_array_options.m_gridNy ); m_cfg_persister.Add( m_hSpacing, saved_array_options.m_gridDx ); m_cfg_persister.Add( m_vSpacing, saved_array_options.m_gridDy ); m_cfg_persister.Add( m_hOffset, saved_array_options.m_gridOffsetX ); m_cfg_persister.Add( m_vOffset, saved_array_options.m_gridOffsetY ); m_cfg_persister.Add( *m_entryStagger, saved_array_options.m_gridStagger ); m_cfg_persister.Add( *m_radioBoxGridStaggerType, saved_array_options.m_gridStaggerType ); m_cfg_persister.Add( *m_radioBoxGridNumberingAxis, saved_array_options.m_gridNumberingAxis ); m_cfg_persister.Add( *m_checkBoxGridReverseNumbering, saved_array_options.m_gridNumberingReverseAlternate ); m_cfg_persister.Add( *m_rbGridStartNumberingOpt, saved_array_options.m_gridNumberingStartSet ); m_cfg_persister.Add( *m_radioBoxGridNumberingScheme, saved_array_options.m_grid2dArrayNumbering ); m_cfg_persister.Add( *m_choicePriAxisNumbering, saved_array_options.m_gridPriAxisNumScheme ); m_cfg_persister.Add( *m_choiceSecAxisNumbering, saved_array_options.m_gridSecAxisNumScheme ); m_cfg_persister.Add( *m_entryGridPriNumberingOffset, saved_array_options.m_gridPriNumberingOffset ); m_cfg_persister.Add( *m_entryGridSecNumberingOffset, saved_array_options.m_gridSecNumberingOffset ); // bind circular options to persister m_cfg_persister.Add( m_hCentre, saved_array_options.m_circCentreX ); m_cfg_persister.Add( m_vCentre, saved_array_options.m_circCentreY ); m_cfg_persister.Add( m_circAngle, saved_array_options.m_circAngle ); m_cfg_persister.Add( *m_entryCircCount, saved_array_options.m_circCount ); m_cfg_persister.Add( *m_entryRotateItemsCb, saved_array_options.m_circRotate ); m_cfg_persister.Add( *m_rbCircStartNumberingOpt, saved_array_options.m_circNumberingStartSet ); m_cfg_persister.Add( *m_entryCircNumberingStart, saved_array_options.m_circNumberingOffset ); m_cfg_persister.Add( *m_gridTypeNotebook, saved_array_options.m_arrayTypeTab ); m_cfg_persister.RestoreConfigToControls(); // Run the callbacks once to process the dialog contents setControlEnablement(); calculateCircularArrayProperties(); m_stdButtonsOK->SetDefault(); Fit(); SetMinSize( GetSize() ); }