diff --git a/pcbnew/dialogs/dialog_pns_diff_pair_dimensions.cpp b/pcbnew/dialogs/dialog_pns_diff_pair_dimensions.cpp index dde772d0b8..21744682c1 100644 --- a/pcbnew/dialogs/dialog_pns_diff_pair_dimensions.cpp +++ b/pcbnew/dialogs/dialog_pns_diff_pair_dimensions.cpp @@ -34,53 +34,53 @@ DIALOG_PNS_DIFF_PAIR_DIMENSIONS::DIALOG_PNS_DIFF_PAIR_DIMENSIONS( wxWindow* aPar m_viaGap( this, m_viaGapText, m_viaGapUnit ), m_sizes( aSizes ) { - m_traceWidth.SetValue( aSizes.DiffPairWidth() ); - m_traceGap.SetValue( aSizes.DiffPairGap() ); - m_viaGap.SetValue( aSizes.DiffPairViaGap() ); - m_viaTraceGapEqual->SetValue( m_sizes.DiffPairViaGapSameAsTraceGap() ); - - updateCheckbox(); - Layout(); GetSizer()->SetSizeHints( this ); Centre(); + + m_stdButtonsOK->SetDefault(); +} + + +bool DIALOG_PNS_DIFF_PAIR_DIMENSIONS::TransferDataFromWindow() +{ + if( !wxDialog::TransferDataToWindow() ) + return false; + + // Save widgets' values to settings + m_sizes.SetDiffPairGap( m_traceGap.GetValue() ); + m_sizes.SetDiffPairViaGap( m_viaGap.GetValue() ); + m_sizes.SetDiffPairWidth( m_traceWidth.GetValue() ); + + return true; +} + + +bool DIALOG_PNS_DIFF_PAIR_DIMENSIONS::TransferDataToWindow() +{ + if( !wxDialog::TransferDataFromWindow() ) + return false; + + m_traceWidth.SetValue( m_sizes.DiffPairWidth() ); + m_traceGap.SetValue( m_sizes.DiffPairGap() ); + m_viaGap.SetValue( m_sizes.DiffPairViaGap() ); + m_viaTraceGapEqual->SetValue( m_sizes.DiffPairViaGapSameAsTraceGap() ); + updateCheckbox(); + + return true; } void DIALOG_PNS_DIFF_PAIR_DIMENSIONS::updateCheckbox() { - if( m_viaTraceGapEqual->GetValue() ) - { - m_sizes.SetDiffPairViaGapSameAsTraceGap( true ); - m_viaGapText->Disable(); - m_viaGapLabel->Disable(); - m_viaGapUnit->Disable(); - } - else - { - m_sizes.SetDiffPairViaGapSameAsTraceGap( false ); - m_viaGapText->Enable(); - m_viaGapLabel->Enable(); - m_viaGapUnit->Enable(); - } -} - - -void DIALOG_PNS_DIFF_PAIR_DIMENSIONS::OnOkClick( wxCommandEvent& aEvent ) -{ - // Save widgets' values to settings - m_sizes.SetDiffPairGap ( m_traceGap.GetValue() ); - m_sizes.SetDiffPairViaGap ( m_viaGap.GetValue() ); - m_sizes.SetDiffPairWidth ( m_traceWidth.GetValue() ); - - // todo: verify against design rules - EndModal( wxID_OK ); + m_sizes.SetDiffPairViaGapSameAsTraceGap( m_viaTraceGapEqual->GetValue() ); + m_viaGapText->Enable( !m_viaTraceGapEqual->GetValue() ); + m_viaGapLabel->Enable( !m_viaTraceGapEqual->GetValue() ); + m_viaGapUnit->Enable( !m_viaTraceGapEqual->GetValue() ); } void DIALOG_PNS_DIFF_PAIR_DIMENSIONS::OnViaTraceGapEqualCheck( wxCommandEvent& event ) { - event.Skip(); updateCheckbox(); } - diff --git a/pcbnew/dialogs/dialog_pns_diff_pair_dimensions.h b/pcbnew/dialogs/dialog_pns_diff_pair_dimensions.h index 946434226a..b0d0ee1f02 100644 --- a/pcbnew/dialogs/dialog_pns_diff_pair_dimensions.h +++ b/pcbnew/dialogs/dialog_pns_diff_pair_dimensions.h @@ -41,10 +41,12 @@ class DIALOG_PNS_DIFF_PAIR_DIMENSIONS : public DIALOG_PNS_DIFF_PAIR_DIMENSIONS_B public: DIALOG_PNS_DIFF_PAIR_DIMENSIONS( wxWindow* aParent, PNS::SIZES_SETTINGS& aSizes ); + bool TransferDataFromWindow() override; + bool TransferDataToWindow() override; + private: void updateCheckbox(); - virtual void OnOkClick( wxCommandEvent& aEvent ) override; virtual void OnViaTraceGapEqualCheck( wxCommandEvent& event ) override; UNIT_BINDER m_traceWidth; diff --git a/pcbnew/dialogs/dialog_pns_diff_pair_dimensions_base.cpp b/pcbnew/dialogs/dialog_pns_diff_pair_dimensions_base.cpp index 09a5ebff15..e8eff1b2fa 100644 --- a/pcbnew/dialogs/dialog_pns_diff_pair_dimensions_base.cpp +++ b/pcbnew/dialogs/dialog_pns_diff_pair_dimensions_base.cpp @@ -1,8 +1,8 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jan 2 2018) +// C++ code generated with wxFormBuilder (version Jul 17 2016) // http://www.wxformbuilder.org/ // -// PLEASE DO *NOT* EDIT THIS FILE! +// PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "widgets/text_ctrl_eval.h" @@ -92,15 +92,11 @@ DIALOG_PNS_DIFF_PAIR_DIMENSIONS_BASE::DIALOG_PNS_DIFF_PAIR_DIMENSIONS_BASE( wxWi // Connect Events m_viaTraceGapEqual->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PNS_DIFF_PAIR_DIMENSIONS_BASE::OnViaTraceGapEqualCheck ), NULL, this ); - m_stdButtonsCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PNS_DIFF_PAIR_DIMENSIONS_BASE::OnCancelClick ), NULL, this ); - m_stdButtonsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PNS_DIFF_PAIR_DIMENSIONS_BASE::OnOkClick ), NULL, this ); } DIALOG_PNS_DIFF_PAIR_DIMENSIONS_BASE::~DIALOG_PNS_DIFF_PAIR_DIMENSIONS_BASE() { // Disconnect Events m_viaTraceGapEqual->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PNS_DIFF_PAIR_DIMENSIONS_BASE::OnViaTraceGapEqualCheck ), NULL, this ); - m_stdButtonsCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PNS_DIFF_PAIR_DIMENSIONS_BASE::OnCancelClick ), NULL, this ); - m_stdButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PNS_DIFF_PAIR_DIMENSIONS_BASE::OnOkClick ), NULL, this ); } diff --git a/pcbnew/dialogs/dialog_pns_diff_pair_dimensions_base.fbp b/pcbnew/dialogs/dialog_pns_diff_pair_dimensions_base.fbp index 55df80d650..1105415299 100644 --- a/pcbnew/dialogs/dialog_pns_diff_pair_dimensions_base.fbp +++ b/pcbnew/dialogs/dialog_pns_diff_pair_dimensions_base.fbp @@ -1078,11 +1078,11 @@ m_stdButtons protected - OnCancelClick + - OnOkClick + diff --git a/pcbnew/dialogs/dialog_pns_diff_pair_dimensions_base.h b/pcbnew/dialogs/dialog_pns_diff_pair_dimensions_base.h index 60dc4a6e70..e4f2921624 100644 --- a/pcbnew/dialogs/dialog_pns_diff_pair_dimensions_base.h +++ b/pcbnew/dialogs/dialog_pns_diff_pair_dimensions_base.h @@ -1,8 +1,8 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jan 2 2018) +// C++ code generated with wxFormBuilder (version Jul 17 2016) // http://www.wxformbuilder.org/ // -// PLEASE DO *NOT* EDIT THIS FILE! +// PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __DIALOG_PNS_DIFF_PAIR_DIMENSIONS_BASE_H__ @@ -11,6 +11,7 @@ #include #include #include +class DIALOG_SHIM; class TEXT_CTRL_EVAL; #include "dialog_shim.h" @@ -55,8 +56,6 @@ class DIALOG_PNS_DIFF_PAIR_DIMENSIONS_BASE : public DIALOG_SHIM // Virtual event handlers, overide them in your derived class virtual void OnViaTraceGapEqualCheck( wxCommandEvent& event ) { event.Skip(); } - virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } - virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } public: diff --git a/pcbnew/dialogs/dialog_track_via_size.cpp b/pcbnew/dialogs/dialog_track_via_size.cpp index 2424071edb..abb42470a5 100644 --- a/pcbnew/dialogs/dialog_track_via_size.cpp +++ b/pcbnew/dialogs/dialog_track_via_size.cpp @@ -37,20 +37,41 @@ DIALOG_TRACK_VIA_SIZE::DIALOG_TRACK_VIA_SIZE( wxWindow* aParent, BOARD_DESIGN_SE m_viaDrill( aParent, m_viaDrillText, m_viaDrillLabel ), m_settings( aSettings ) { + m_stdButtonsOK->SetDefault(); + + // Now all widgets have the size fixed, call FinishDialogSettings + FinishDialogSettings(); +} + + +bool DIALOG_TRACK_VIA_SIZE::TransferDataFromWindow() +{ + if( !wxDialog::TransferDataFromWindow() ) + return false; + + if( !check() ) + return false; + + // Store dialog values to the router settings + m_settings.SetCustomTrackWidth( m_trackWidth.GetValue() ); + m_settings.SetCustomViaSize( m_viaDiameter.GetValue() ); + m_settings.SetCustomViaDrill( m_viaDrill.GetValue() ); + + return true; +} + + +bool DIALOG_TRACK_VIA_SIZE::TransferDataToWindow() +{ + if( !wxDialog::TransferDataToWindow() ) + return false; + // Load router settings to dialog fields m_trackWidth.SetValue( m_settings.GetCustomTrackWidth() ); m_viaDiameter.SetValue( m_settings.GetCustomViaSize() ); m_viaDrill.SetValue( m_settings.GetCustomViaDrill() ); - m_trackWidthText->SetFocus(); - m_trackWidthText->SetSelection( -1, -1 ); - m_stdButtonsOK->SetDefault(); - - // Now all widgets have the size fixed, call FinishDialogSettings - FinishDialogSettings(); - - // Pressing ENTER when any of the text input fields is active applies changes - Connect( wxEVT_TEXT_ENTER, wxCommandEventHandler( DIALOG_TRACK_VIA_SIZE::onOkClick ), NULL, this ); + return true; } @@ -86,28 +107,3 @@ bool DIALOG_TRACK_VIA_SIZE::check() return true; } - - -void DIALOG_TRACK_VIA_SIZE::onClose( wxCloseEvent& aEvent ) -{ - EndModal( 0 ); -} - - -void DIALOG_TRACK_VIA_SIZE::onOkClick( wxCommandEvent& aEvent ) -{ - if( check() ) - { - // Store dialog values to the router settings - m_settings.SetCustomTrackWidth( m_trackWidth.GetValue() ); - m_settings.SetCustomViaSize( m_viaDiameter.GetValue() ); - m_settings.SetCustomViaDrill( m_viaDrill.GetValue() ); - EndModal( 1 ); - } -} - - -void DIALOG_TRACK_VIA_SIZE::onCancelClick( wxCommandEvent& aEvent ) -{ - EndModal( 0 ); -} diff --git a/pcbnew/dialogs/dialog_track_via_size.h b/pcbnew/dialogs/dialog_track_via_size.h index 79e60850b5..5ccdb69837 100644 --- a/pcbnew/dialogs/dialog_track_via_size.h +++ b/pcbnew/dialogs/dialog_track_via_size.h @@ -38,6 +38,9 @@ public: /** Constructor */ DIALOG_TRACK_VIA_SIZE( wxWindow* aParent, BOARD_DESIGN_SETTINGS& aSettings ); + bool TransferDataFromWindow() override; + bool TransferDataToWindow() override; + protected: UNIT_BINDER m_trackWidth; UNIT_BINDER m_viaDiameter; @@ -48,11 +51,6 @@ protected: ///> Checks if values given in the dialog are sensible. bool check(); - - // Handlers for DIALOG_TRACK_VIA_SIZE_BASE events. - void onClose( wxCloseEvent& aEvent ) override; - void onOkClick( wxCommandEvent& aEvent ) override; - void onCancelClick( wxCommandEvent& aEvent ) override; }; #endif // __dialog_track_via_size__ diff --git a/pcbnew/dialogs/dialog_track_via_size_base.cpp b/pcbnew/dialogs/dialog_track_via_size_base.cpp index 5f45fa36f6..394a8587da 100644 --- a/pcbnew/dialogs/dialog_track_via_size_base.cpp +++ b/pcbnew/dialogs/dialog_track_via_size_base.cpp @@ -1,8 +1,8 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Nov 22 2017) +// C++ code generated with wxFormBuilder (version Jul 17 2016) // http://www.wxformbuilder.org/ // -// PLEASE DO *NOT* EDIT THIS FILE! +// PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "widgets/text_ctrl_eval.h" @@ -78,18 +78,8 @@ DIALOG_TRACK_VIA_SIZE_BASE::DIALOG_TRACK_VIA_SIZE_BASE( wxWindow* parent, wxWind bSizes->Fit( this ); this->Centre( wxBOTH ); - - // Connect Events - this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_TRACK_VIA_SIZE_BASE::onClose ) ); - m_stdButtonsCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_TRACK_VIA_SIZE_BASE::onCancelClick ), NULL, this ); - m_stdButtonsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_TRACK_VIA_SIZE_BASE::onOkClick ), NULL, this ); } DIALOG_TRACK_VIA_SIZE_BASE::~DIALOG_TRACK_VIA_SIZE_BASE() { - // Disconnect Events - this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_TRACK_VIA_SIZE_BASE::onClose ) ); - m_stdButtonsCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_TRACK_VIA_SIZE_BASE::onCancelClick ), NULL, this ); - m_stdButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_TRACK_VIA_SIZE_BASE::onOkClick ), NULL, this ); - } diff --git a/pcbnew/dialogs/dialog_track_via_size_base.fbp b/pcbnew/dialogs/dialog_track_via_size_base.fbp index 7a36f859d8..5ae2e660f3 100644 --- a/pcbnew/dialogs/dialog_track_via_size_base.fbp +++ b/pcbnew/dialogs/dialog_track_via_size_base.fbp @@ -61,7 +61,7 @@ - onClose + @@ -980,11 +980,11 @@ m_stdButtons protected - onCancelClick + - onOkClick + diff --git a/pcbnew/dialogs/dialog_track_via_size_base.h b/pcbnew/dialogs/dialog_track_via_size_base.h index 0fe6b41d10..65a2581645 100644 --- a/pcbnew/dialogs/dialog_track_via_size_base.h +++ b/pcbnew/dialogs/dialog_track_via_size_base.h @@ -1,8 +1,8 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Nov 22 2017) +// C++ code generated with wxFormBuilder (version Jul 17 2016) // http://www.wxformbuilder.org/ // -// PLEASE DO *NOT* EDIT THIS FILE! +// PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __DIALOG_TRACK_VIA_SIZE_BASE_H__ @@ -11,6 +11,7 @@ #include #include #include +class DIALOG_SHIM; class TEXT_CTRL_EVAL; #include "dialog_shim.h" @@ -50,12 +51,6 @@ class DIALOG_TRACK_VIA_SIZE_BASE : public DIALOG_SHIM wxStdDialogButtonSizer* m_stdButtons; wxButton* m_stdButtonsOK; wxButton* m_stdButtonsCancel; - - // Virtual event handlers, overide them in your derived class - virtual void onClose( wxCloseEvent& event ) { event.Skip(); } - virtual void onCancelClick( wxCommandEvent& event ) { event.Skip(); } - virtual void onOkClick( wxCommandEvent& event ) { event.Skip(); } - public: