]> git.saurik.com Git - wxWidgets.git/commitdiff
minor refactoring of menu UpdateUI handling
authorDavid Surovell <davids@osafoundation.org>
Wed, 30 Nov 2005 07:59:38 +0000 (07:59 +0000)
committerDavid Surovell <davids@osafoundation.org>
Wed, 30 Nov 2005 07:59:38 +0000 (07:59 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36296 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/menu.h
src/common/framecmn.cpp
src/common/menucmn.cpp

index 624e2669efacf1d250ec6deb69a34e19b32cbbd3..5e31cede132774c4921df014c6610dd24d864930 100644 (file)
@@ -476,6 +476,9 @@ public:
     // don't want menu bars to accept the focus by tabbing to them
     virtual bool AcceptsFocusFromKeyboard() const { return false; }
 
+    // update all menu item states in all menus
+    virtual void UpdateMenus();
+
 protected:
     // the list of all our menus
     wxMenuList m_menus;
index 3137700a8875b5f0f66d598fe3cb7296f1760f49..923fb49e2df6ea42f1cd600dd4fc1e53ff133710 100644 (file)
@@ -523,16 +523,16 @@ void wxFrameBase::SetToolBar(wxToolBar *toolbar)
 // update all menus
 void wxFrameBase::DoMenuUpdates(wxMenu* menu)
 {
-    wxEvtHandler* source = GetEventHandler();
-    wxMenuBar* bar = GetMenuBar();
-
     if (menu)
+    {
+        wxEvtHandler* source = GetEventHandler();
         menu->UpdateUI(source);
-    else if ( bar != NULL )
+    }
+    else
     {
-        int nCount = bar->GetMenuCount();
-        for (int n = 0; n < nCount; n++)
-            bar->GetMenu(n)->UpdateUI(source);
+        wxMenuBar* bar = GetMenuBar();
+        if (bar != NULL)
+            bar->UpdateMenus();
     }
 }
 
index 2437f07e4b13dd65d2737200e568a10d5c22786c..edf51cab54367c1947d7253eac012983dcfb74ba 100644 (file)
@@ -1058,4 +1058,21 @@ wxString wxMenuBarBase::GetHelpString(int id) const
     return item->GetHelp();
 }
 
+void wxMenuBarBase::UpdateMenus( void )
+{
+    wxEvtHandler* source;
+    wxMenu* menu;
+    int nCount = GetMenuCount();
+    for (int n = 0; n < nCount; n++)
+    {
+        menu = GetMenu( n );
+        if (menu != NULL)
+        {
+            source = menu->GetEventHandler();
+            if (source != NULL)
+                menu->UpdateUI( source );
+        }
+    }
+}
+
 #endif // wxUSE_MENUS