]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/framecmn.cpp
added animate contrib
[wxWidgets.git] / src / common / framecmn.cpp
index 87911b477f00db9c7ac20443988bf7888a0586d7..7e64059805190a6de2d7b0c20da236d4018bc723 100644 (file)
 // ----------------------------------------------------------------------------
 
 BEGIN_EVENT_TABLE(wxFrameBase, wxTopLevelWindow)
+#if wxUSE_MENUS && wxUSE_IDLEMENUUPDATES
     EVT_IDLE(wxFrameBase::OnIdle)
+#endif
+#if wxUSE_MENUS && !wxUSE_IDLEMENUUPDATES
+    EVT_MENU_OPEN(wxFrameBase::OnMenuOpen)
+#endif
     EVT_MENU_HIGHLIGHT_ALL(wxFrameBase::OnMenuHighlight)
 END_EVENT_TABLE()
 
@@ -219,9 +224,17 @@ void wxFrameBase::OnMenuHighlight(wxMenuEvent& event)
 
 void wxFrameBase::OnIdle(wxIdleEvent& WXUNUSED(event) )
 {
-#if wxUSE_MENUS
+#if wxUSE_MENUS && wxUSE_IDLEMENUUPDATES
+    if (wxUpdateUIEvent::CanUpdate())
+        DoMenuUpdates();
+#endif
+}
+
+void wxFrameBase::OnMenuOpen(wxMenuEvent& WXUNUSED(event))
+{
+#if wxUSE_MENUS && !wxUSE_IDLEMENUUPDATES
     DoMenuUpdates();
-#endif // wxUSE_MENUS
+#endif
 }
 
 // ----------------------------------------------------------------------------
@@ -289,18 +302,6 @@ void wxFrameBase::PopStatusText(int number)
     m_frameStatusBar->PopStatusText(number);
 }
 
-void wxFrameBase::DoGiveHelp(const wxString& text, bool show)
-{
-#if wxUSE_STATUSBAR
-    if ( m_statusBarPane < 0 ) return;
-    wxStatusBar* statbar = GetStatusBar();
-    if ( !statbar ) return;
-
-    wxString help = show ? text : wxString();
-    statbar->SetStatusText( help, m_statusBarPane );
-#endif // wxUSE_STATUSBAR
-}
-
 bool wxFrameBase::ShowMenuHelp(wxStatusBar *WXUNUSED(statbar), int menuId)
 {
 #if wxUSE_MENUS
@@ -331,6 +332,19 @@ bool wxFrameBase::ShowMenuHelp(wxStatusBar *WXUNUSED(statbar), int menuId)
 
 #endif // wxUSE_STATUSBAR
 
+void wxFrameBase::DoGiveHelp(const wxString& text, bool show)
+{
+#if wxUSE_STATUSBAR
+    if ( m_statusBarPane < 0 ) return;
+    wxStatusBar* statbar = GetStatusBar();
+    if ( !statbar ) return;
+
+    wxString help = show ? text : wxString();
+    statbar->SetStatusText( help, m_statusBarPane );
+#endif // wxUSE_STATUSBAR
+}
+
+
 // ----------------------------------------------------------------------------
 // toolbar stuff
 // ----------------------------------------------------------------------------
@@ -411,7 +425,7 @@ void wxFrameBase::DoMenuUpdates(wxMenu* menu, wxWindow* focusWin)
             }
 
             if (item->GetSubMenu())
-                DoMenuUpdates(item->GetSubMenu(), (wxWindow*) NULL);
+                DoMenuUpdates(item->GetSubMenu(), focusWin);
         }
         node = node->GetNext();
     }