From: Vadim Zeitlin Date: Fri, 1 Oct 2004 01:49:45 +0000 (+0000) Subject: relayout frame contents when tool/statusbar is shown/hidden X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/a4f01f0592c03e1847a2135e188ed25232077225?ds=inline relayout frame contents when tool/statusbar is shown/hidden git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29580 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/frame.h b/include/wx/frame.h index 053f50f07d..f58e43d45d 100644 --- a/include/wx/frame.h +++ b/include/wx/frame.h @@ -112,8 +112,7 @@ public: virtual wxStatusBar *GetStatusBar() const { return m_frameStatusBar; } // sets the main status bar - void SetStatusBar(wxStatusBar *statBar) - { m_frameStatusBar = statBar; PositionStatusBar(); } + virtual void SetStatusBar(wxStatusBar *statBar); // forward these to status bar virtual void SetStatusText(const wxString &text, int number = 0); @@ -141,7 +140,7 @@ public: // get/set the main toolbar virtual wxToolBar *GetToolBar() const { return m_frameToolBar; } - virtual void SetToolBar(wxToolBar *toolbar) { m_frameToolBar = toolbar; } + virtual void SetToolBar(wxToolBar *toolbar); #endif // wxUSE_TOOLBAR // implementation only from now on diff --git a/src/common/framecmn.cpp b/src/common/framecmn.cpp index 2e47154b2d..bdd5dc26d1 100644 --- a/src/common/framecmn.cpp +++ b/src/common/framecmn.cpp @@ -309,9 +309,7 @@ wxStatusBar* wxFrameBase::CreateStatusBar(int number, wxCHECK_MSG( !m_frameStatusBar, (wxStatusBar *)NULL, wxT("recreating status bar in wxFrame") ); - m_frameStatusBar = OnCreateStatusBar( number, style, id, name ); - if ( m_frameStatusBar ) - PositionStatusBar(); + SetStatusBar(OnCreateStatusBar(number, style, id, name)); return m_frameStatusBar; } @@ -386,6 +384,19 @@ bool wxFrameBase::ShowMenuHelp(wxStatusBar *WXUNUSED(statbar), int menuId) #endif // wxUSE_MENUS/!wxUSE_MENUS } +void wxFrameBase::SetStatusBar(wxStatusBar *statBar) +{ + bool hadBar = m_frameStatusBar != NULL; + m_frameStatusBar = statBar; + + if ( (m_frameStatusBar != NULL) != hadBar ) + { + PositionStatusBar(); + + DoLayout(); + } +} + #endif // wxUSE_STATUSBAR void wxFrameBase::DoGiveHelp(const wxString& text, bool show) @@ -460,7 +471,7 @@ wxToolBar* wxFrameBase::CreateToolBar(long style, style = wxBORDER_NONE | wxTB_HORIZONTAL | wxTB_FLAT; } - m_frameToolBar = OnCreateToolBar(style, id, name); + SetToolBar(OnCreateToolBar(style, id, name)); return m_frameToolBar; } @@ -474,6 +485,19 @@ wxToolBar* wxFrameBase::OnCreateToolBar(long style, style, name); } +void wxFrameBase::SetToolBar(wxToolBar *toolbar) +{ + bool hadBar = m_frameToolBar != NULL; + m_frameToolBar = toolbar; + + if ( (m_frameToolBar != NULL) != hadBar ) + { + PositionToolBar(); + + DoLayout(); + } +} + #endif // wxUSE_TOOLBAR // ----------------------------------------------------------------------------