From 4ad507b4e963b17d37458b51722b442261b45bcd Mon Sep 17 00:00:00 2001 From: Dick Hollenbeck Date: Sun, 22 Jan 2012 22:45:57 -0600 Subject: [PATCH] dialog_page_settings needed right border space, retain last dialog size and position --- common/dialogs/dialog_page_settings.cpp | 33 ++++++++++++++++++++ common/dialogs/dialog_page_settings.h | 11 +++++++ common/dialogs/dialog_page_settings_base.cpp | 2 +- common/dialogs/dialog_page_settings_base.fbp | 2 +- 4 files changed, 46 insertions(+), 2 deletions(-) diff --git a/common/dialogs/dialog_page_settings.cpp b/common/dialogs/dialog_page_settings.cpp index 646de5da98..00dd68bc0a 100644 --- a/common/dialogs/dialog_page_settings.cpp +++ b/common/dialogs/dialog_page_settings.cpp @@ -26,6 +26,10 @@ #include +// dialog should remember its previous screen position and size +wxPoint DIALOG_PAGES_SETTINGS::s_LastPos( -1, -1 ); +wxSize DIALOG_PAGES_SETTINGS::s_LastSize; + void EDA_DRAW_FRAME::Process_PageSettings( wxCommandEvent& event ) { @@ -163,6 +167,35 @@ void DIALOG_PAGES_SETTINGS::initDialog() } +bool DIALOG_PAGES_SETTINGS::Show( bool show ) +{ + bool ret; + + if( show ) + { + ret = DIALOG_PAGES_SETTINGS_BASE::Show( show ); + + if( s_LastPos.x != -1 ) + { + SetSize( s_LastPos.x, s_LastPos.y, s_LastSize.x, s_LastSize.y, 0 ); + } + else + { + // Do nothing: last position not yet saved. + } + } + else + { + // Save the dialog's position before hiding + s_LastPos = GetPosition(); + s_LastSize = GetSize(); + ret = DIALOG_PAGES_SETTINGS_BASE::Show( show ); + } + + return ret; +} + + void DIALOG_PAGES_SETTINGS::OnCloseWindow( wxCloseEvent& event ) { EndModal( m_modified ); diff --git a/common/dialogs/dialog_page_settings.h b/common/dialogs/dialog_page_settings.h index efd07e6aea..08439556df 100644 --- a/common/dialogs/dialog_page_settings.h +++ b/common/dialogs/dialog_page_settings.h @@ -19,10 +19,21 @@ private: bool m_modified; PAGE_INFO m_user_size; ///< instantiated just to get the size + static wxSize s_LastSize; ///< last position and size + static wxPoint s_LastPos; + public: DIALOG_PAGES_SETTINGS( EDA_DRAW_FRAME* parent ); ~DIALOG_PAGES_SETTINGS(); + /** + * Function Show + * overloads the wxDialog::Show() function so it can position the + * dialog at its remembered size and position. + */ + bool Show( bool show ); + + private: /// Initialises member variables void initDialog(); diff --git a/common/dialogs/dialog_page_settings_base.cpp b/common/dialogs/dialog_page_settings_base.cpp index 2540bde582..2bce494be9 100644 --- a/common/dialogs/dialog_page_settings_base.cpp +++ b/common/dialogs/dialog_page_settings_base.cpp @@ -201,7 +201,7 @@ DIALOG_PAGES_SETTINGS_BASE::DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWind RightColumnSizer->Add( Comment4Sizer, 1, wxEXPAND, 5 ); - bUpperSizerH->Add( RightColumnSizer, 1, wxEXPAND, 5 ); + bUpperSizerH->Add( RightColumnSizer, 1, wxALL|wxEXPAND, 5 ); bMainSizer->Add( bUpperSizerH, 1, wxEXPAND, 5 ); diff --git a/common/dialogs/dialog_page_settings_base.fbp b/common/dialogs/dialog_page_settings_base.fbp index 60fbdf0bf3..b491921113 100644 --- a/common/dialogs/dialog_page_settings_base.fbp +++ b/common/dialogs/dialog_page_settings_base.fbp @@ -746,7 +746,7 @@ 5 - wxEXPAND + wxALL|wxEXPAND 1 1