X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2b5f62a0b2db198609b45dec622a018dae37008e..ba763a45d85d8b70326da65895b7753f86fc3ea3:/src/gtk1/frame.cpp diff --git a/src/gtk1/frame.cpp b/src/gtk1/frame.cpp index 7e1ed2b2ba..afe3ebd900 100644 --- a/src/gtk1/frame.cpp +++ b/src/gtk1/frame.cpp @@ -15,10 +15,13 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "frame.h" #endif +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + #include "wx/defs.h" #include "wx/dialog.h" @@ -147,7 +150,7 @@ static void gtk_toolbar_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidge /* Callback for wxFrame. This very strange beast has to be used because * C++ has no virtual methods in a constructor. We have to emulate a - * virtual function here as wxWindows requires different ways to insert + * virtual function here as wxWidgets requires different ways to insert * a child in container classes. */ static void wxInsertChildInFrame( wxFrame* parent, wxWindow* child ) @@ -508,7 +511,7 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), void wxFrame::OnInternalIdle() { - wxTopLevelWindow::OnInternalIdle(); + wxFrameBase::OnInternalIdle(); #if wxUSE_MENUS_NATIVE if (m_frameMenuBar) m_frameMenuBar->OnInternalIdle(); @@ -517,7 +520,20 @@ void wxFrame::OnInternalIdle() if (m_frameToolBar) m_frameToolBar->OnInternalIdle(); #endif #if wxUSE_STATUSBAR - if (m_frameStatusBar) m_frameStatusBar->OnInternalIdle(); + if (m_frameStatusBar) + { + m_frameStatusBar->OnInternalIdle(); + + // There may be controls in the status bar that + // need to be updated + for ( wxWindowList::compatibility_iterator node = m_frameStatusBar->GetChildren().GetFirst(); + node; + node = node->GetNext() ) + { + wxWindow *child = node->GetData(); + child->OnInternalIdle(); + } + } #endif } @@ -578,7 +594,7 @@ void wxFrame::AttachMenuBar( wxMenuBar *menuBar ) GTK_SIGNAL_FUNC(gtk_menu_detached_callback), (gpointer)this ); } - m_frameMenuBar->Show( TRUE ); + gtk_widget_show( m_frameMenuBar->m_widget ); UpdateMenuBarSize(); } @@ -672,6 +688,16 @@ wxStatusBar* wxFrame::CreateStatusBar(int number, return wxFrameBase::CreateStatusBar( number, style, id, name ); } +void wxFrame::SetStatusBar(wxStatusBar *statbar) +{ + bool hadStatBar = m_frameStatusBar != NULL; + + wxFrameBase::SetStatusBar(statbar); + + if (hadStatBar && !m_frameStatusBar) + GtkUpdateSize(); +} + void wxFrame::PositionStatusBar() { if ( !m_frameStatusBar )