From ef3553c086d8848392b115d6dccb594098382de9 Mon Sep 17 00:00:00 2001 From: John Beard Date: Tue, 14 Mar 2017 00:13:04 +0800 Subject: [PATCH] Use TransferData* methods for DIALOG_DISPLAY_OPTIONS Replaces the existing manual evdent handling, in line with UI Guidelines. Also remove the wxStaticLine, which is not a standard dialog element. --- pcbnew/dialogs/dialog_display_options.cpp | 40 ++++----- pcbnew/dialogs/dialog_display_options.h | 17 ++-- .../dialogs/dialog_display_options_base.cpp | 13 +-- .../dialogs/dialog_display_options_base.fbp | 89 +------------------ pcbnew/dialogs/dialog_display_options_base.h | 7 -- 5 files changed, 29 insertions(+), 137 deletions(-) diff --git a/pcbnew/dialogs/dialog_display_options.cpp b/pcbnew/dialogs/dialog_display_options.cpp index 4837f30b69..9a91864241 100644 --- a/pcbnew/dialogs/dialog_display_options.cpp +++ b/pcbnew/dialogs/dialog_display_options.cpp @@ -64,17 +64,15 @@ void PCB_EDIT_FRAME::InstallDisplayOptionsDialog( wxCommandEvent& aEvent ) DIALOG_DISPLAY_OPTIONS::DIALOG_DISPLAY_OPTIONS( PCB_EDIT_FRAME* parent ) : - DIALOG_DISPLAY_OPTIONS_BASE( parent ) + DIALOG_DISPLAY_OPTIONS_BASE( parent ), + m_parent( parent ) { - m_Parent = parent; - - KIGFX::GAL_DISPLAY_OPTIONS& galOptions = m_Parent->GetGalDisplayOptions(); + KIGFX::GAL_DISPLAY_OPTIONS& galOptions = m_parent->GetGalDisplayOptions(); m_galOptsPanel = new GAL_OPTIONS_PANEL( this, galOptions ); sLeftSizer->Add( m_galOptsPanel, 1, wxEXPAND, 0 ); - // load settings into controls - init(); + SetFocus(); m_sdbSizerOK->SetDefault(); @@ -83,11 +81,9 @@ DIALOG_DISPLAY_OPTIONS::DIALOG_DISPLAY_OPTIONS( PCB_EDIT_FRAME* parent ) : } -void DIALOG_DISPLAY_OPTIONS::init() +bool DIALOG_DISPLAY_OPTIONS::TransferDataToWindow() { - SetFocus(); - - const DISPLAY_OPTIONS* displ_opts = (DISPLAY_OPTIONS*)m_Parent->GetDisplayOptions(); + const DISPLAY_OPTIONS* displ_opts = (DISPLAY_OPTIONS*) m_parent->GetDisplayOptions(); m_OptDisplayTracks->SetValue( displ_opts->m_DisplayPcbTrackFill == SKETCH ); @@ -97,34 +93,30 @@ void DIALOG_DISPLAY_OPTIONS::init() m_OptDisplayPads->SetValue( displ_opts->m_DisplayPadFill == SKETCH ); m_OptDisplayVias->SetValue( displ_opts->m_DisplayViaFill == SKETCH ); - m_Show_Page_Limits->SetValue( m_Parent->ShowPageLimits() ); + m_Show_Page_Limits->SetValue( m_parent->ShowPageLimits() ); m_OptDisplayModTexts->SetValue( displ_opts->m_DisplayModTextFill == SKETCH ); m_OptDisplayModOutlines->SetValue( displ_opts->m_DisplayModEdgeFill == SKETCH ); m_OptDisplayPadClearence->SetValue( displ_opts->m_DisplayPadIsol ); m_OptDisplayPadNumber->SetValue( displ_opts->m_DisplayPadNum ); - m_OptDisplayPadNoConn->SetValue( m_Parent->IsElementVisible( PCB_VISIBLE( NO_CONNECTS_VISIBLE ) ) ); + m_OptDisplayPadNoConn->SetValue( m_parent->IsElementVisible( PCB_VISIBLE( NO_CONNECTS_VISIBLE ) ) ); m_OptDisplayDrawings->SetValue( displ_opts->m_DisplayDrawItemsFill == SKETCH ); m_ShowNetNamesOption->SetSelection( displ_opts->m_DisplayNetNamesMode ); m_galOptsPanel->TransferDataToWindow(); -} - -void DIALOG_DISPLAY_OPTIONS::OnCancelClick( wxCommandEvent& event ) -{ - EndModal( 0 ); + return true; } /* * Update variables with new options */ -void DIALOG_DISPLAY_OPTIONS::OnOkClick( wxCommandEvent& event ) +bool DIALOG_DISPLAY_OPTIONS::TransferDataFromWindow() { - DISPLAY_OPTIONS* displ_opts = (DISPLAY_OPTIONS*)m_Parent->GetDisplayOptions(); + DISPLAY_OPTIONS* displ_opts = (DISPLAY_OPTIONS*) m_parent->GetDisplayOptions(); - m_Parent->SetShowPageLimits( m_Show_Page_Limits->GetValue() ); + m_parent->SetShowPageLimits( m_Show_Page_Limits->GetValue() ); displ_opts->m_DisplayPcbTrackFill = not m_OptDisplayTracks->GetValue(); @@ -141,7 +133,7 @@ void DIALOG_DISPLAY_OPTIONS::OnOkClick( wxCommandEvent& event ) displ_opts->m_DisplayPadNum = m_OptDisplayPadNumber->GetValue(); - m_Parent->SetElementVisibility( PCB_VISIBLE( NO_CONNECTS_VISIBLE ), + m_parent->SetElementVisibility( PCB_VISIBLE( NO_CONNECTS_VISIBLE ), m_OptDisplayPadNoConn->GetValue() ); displ_opts->m_DisplayDrawItemsFill = not m_OptDisplayDrawings->GetValue(); @@ -150,7 +142,7 @@ void DIALOG_DISPLAY_OPTIONS::OnOkClick( wxCommandEvent& event ) m_galOptsPanel->TransferDataFromWindow(); // Apply changes to the GAL - KIGFX::VIEW* view = m_Parent->GetGalCanvas()->GetView(); + KIGFX::VIEW* view = m_parent->GetGalCanvas()->GetView(); KIGFX::PCB_PAINTER* painter = static_cast( view->GetPainter() ); KIGFX::PCB_RENDER_SETTINGS* settings = static_cast( painter->GetSettings() ); @@ -158,7 +150,7 @@ void DIALOG_DISPLAY_OPTIONS::OnOkClick( wxCommandEvent& event ) view->RecacheAllItems(); view->MarkTargetDirty( KIGFX::TARGET_NONCACHED ); - m_Parent->GetCanvas()->Refresh(); + m_parent->GetCanvas()->Refresh(); - EndModal( 1 ); + return true; } diff --git a/pcbnew/dialogs/dialog_display_options.h b/pcbnew/dialogs/dialog_display_options.h index ec67f345e4..b31f2561b2 100644 --- a/pcbnew/dialogs/dialog_display_options.h +++ b/pcbnew/dialogs/dialog_display_options.h @@ -31,17 +31,16 @@ class GAL_OPTIONS_PANEL; class DIALOG_DISPLAY_OPTIONS : public DIALOG_DISPLAY_OPTIONS_BASE { -private: - PCB_EDIT_FRAME* m_Parent; - - GAL_OPTIONS_PANEL* m_galOptsPanel; - - void init(); - public: DIALOG_DISPLAY_OPTIONS( PCB_EDIT_FRAME* parent ); ~DIALOG_DISPLAY_OPTIONS() {}; - void OnOkClick( wxCommandEvent& event ) override; - void OnCancelClick( wxCommandEvent& event ) override; + + bool TransferDataFromWindow() override; + bool TransferDataToWindow() override; + +private: + PCB_EDIT_FRAME* m_parent; + + GAL_OPTIONS_PANEL* m_galOptsPanel; }; diff --git a/pcbnew/dialogs/dialog_display_options_base.cpp b/pcbnew/dialogs/dialog_display_options_base.cpp index 969a3044d3..3dfea20031 100644 --- a/pcbnew/dialogs/dialog_display_options_base.cpp +++ b/pcbnew/dialogs/dialog_display_options_base.cpp @@ -104,14 +104,11 @@ DIALOG_DISPLAY_OPTIONS_BASE::DIALOG_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWi sRightSizer->Add( s_otherSizer, 1, wxEXPAND|wxALL, 5 ); - bupperSizer->Add( sRightSizer, 0, 0, 5 ); + bupperSizer->Add( sRightSizer, 0, wxEXPAND, 5 ); bMainSizer->Add( bupperSizer, 1, wxEXPAND, 5 ); - m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - bMainSizer->Add( m_staticline1, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 ); - m_sdbSizer = new wxStdDialogButtonSizer(); m_sdbSizerOK = new wxButton( this, wxID_OK ); m_sdbSizer->AddButton( m_sdbSizerOK ); @@ -125,16 +122,8 @@ DIALOG_DISPLAY_OPTIONS_BASE::DIALOG_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWi this->SetSizer( bMainSizer ); this->Layout(); bMainSizer->Fit( this ); - - // Connect Events - m_sdbSizerCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DISPLAY_OPTIONS_BASE::OnCancelClick ), NULL, this ); - m_sdbSizerOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DISPLAY_OPTIONS_BASE::OnOkClick ), NULL, this ); } DIALOG_DISPLAY_OPTIONS_BASE::~DIALOG_DISPLAY_OPTIONS_BASE() { - // Disconnect Events - m_sdbSizerCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DISPLAY_OPTIONS_BASE::OnCancelClick ), NULL, this ); - m_sdbSizerOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DISPLAY_OPTIONS_BASE::OnOkClick ), NULL, this ); - } diff --git a/pcbnew/dialogs/dialog_display_options_base.fbp b/pcbnew/dialogs/dialog_display_options_base.fbp index 26b322891c..4e5dcf3049 100644 --- a/pcbnew/dialogs/dialog_display_options_base.fbp +++ b/pcbnew/dialogs/dialog_display_options_base.fbp @@ -499,9 +499,9 @@ - + 5 - + wxEXPAND 0 @@ -1246,87 +1246,6 @@ - - 5 - wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT|wxTOP - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_staticline1 - 1 - - - protected - 1 - - Resizable - 1 - - wxLI_HORIZONTAL - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT @@ -1344,11 +1263,11 @@ m_sdbSizer protected - OnCancelClick + - OnOkClick + diff --git a/pcbnew/dialogs/dialog_display_options_base.h b/pcbnew/dialogs/dialog_display_options_base.h index 01b9921c1d..7bc54919f7 100644 --- a/pcbnew/dialogs/dialog_display_options_base.h +++ b/pcbnew/dialogs/dialog_display_options_base.h @@ -23,7 +23,6 @@ class DIALOG_SHIM; #include #include #include -#include #include #include @@ -56,15 +55,9 @@ class DIALOG_DISPLAY_OPTIONS_BASE : public DIALOG_SHIM wxCheckBox* m_OptDisplayPadNoConn; wxCheckBox* m_OptDisplayDrawings; wxCheckBox* m_Show_Page_Limits; - wxStaticLine* m_staticline1; wxStdDialogButtonSizer* m_sdbSizer; wxButton* m_sdbSizerOK; wxButton* m_sdbSizerCancel; - - // Virtual event handlers, overide them in your derived class - virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } - virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } - public: