]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/framecmn.cpp
applied patch 432814: saving BMP in 1, 4 and 8 bpp
[wxWidgets.git] / src / common / framecmn.cpp
index 714400961b79e4c75d29b2b904ce625f4248fe60..318b662f28f77703de453322573db475a7c858d4 100644 (file)
@@ -321,6 +321,13 @@ bool wxFrameBase::SendIconizeEvent(bool iconized)
     return GetEventHandler()->ProcessEvent(event);
 }
 
+void wxFrameBase::OnIdle(wxIdleEvent& WXUNUSED(event) )
+{
+#if wxUSE_MENUS
+    DoMenuUpdates();
+#endif // wxUSE_MENUS
+}
+
 // ----------------------------------------------------------------------------
 // status bar stuff
 // ----------------------------------------------------------------------------
@@ -385,6 +392,7 @@ void wxFrameBase::SetStatusWidths(int n, const int widths_field[] )
 
 bool wxFrameBase::ShowMenuHelp(wxStatusBar *statbar, int menuId)
 {
+#if wxUSE_MENUS
     if ( !statbar )
         return FALSE;
 
@@ -409,6 +417,9 @@ bool wxFrameBase::ShowMenuHelp(wxStatusBar *statbar, int menuId)
     statbar->SetStatusText(helpString);
 
     return !helpString.IsEmpty();
+#else // !wxUSE_MENUS
+    return FALSE;
+#endif // wxUSE_MENUS/!wxUSE_MENUS
 }
 
 #endif // wxUSE_STATUSBAR
@@ -445,16 +456,9 @@ wxToolBar* wxFrameBase::OnCreateToolBar(long style,
 #endif // wxUSE_TOOLBAR
 
 // ----------------------------------------------------------------------------
-// Menu UI updating
+// menus
 // ----------------------------------------------------------------------------
 
-void wxFrameBase::OnIdle(wxIdleEvent& WXUNUSED(event) )
-{
-#if wxUSE_MENUS
-    DoMenuUpdates();
-#endif // wxUSE_MENUS
-}
-
 #if wxUSE_MENUS
 
 // update all menus
@@ -506,4 +510,35 @@ void wxFrameBase::DoMenuUpdates(wxMenu* menu, wxWindow* focusWin)
     }
 }
 
+void wxFrameBase::DetachMenuBar()
+{
+    if ( m_frameMenuBar )
+    {
+        m_frameMenuBar->Detach();
+        m_frameMenuBar = NULL;
+    }
+}
+
+void wxFrameBase::AttachMenuBar(wxMenuBar *menubar)
+{
+    if ( menubar )
+    {
+        m_frameMenuBar = menubar;
+        menubar->Attach((wxFrame *)this);
+    }
+}
+
+void wxFrameBase::SetMenuBar(wxMenuBar *menubar)
+{
+    if ( menubar == GetMenuBar() )
+    {
+        // nothing to do
+        return;
+    }
+
+    DetachMenuBar();
+
+    AttachMenuBar(menubar);
+}
+
 #endif // wxUSE_MENUS