#include "wx/frame.h"
#include "wx/menu.h"
+#include "wx/menuitem.h"
-// wxGTK is a special case because it doesn't use the generic wxMenuItem
-// class, but it's own (already defined in wx/menu.h) one
#ifndef __WXGTK__
- #include "wx/menuitem.h"
-#endif //WXGTK
-
void wxFrame::OnIdle(wxIdleEvent& WXUNUSED(event) )
{
DoMenuUpdates();
}
+#endif
// update all menus
void wxFrame::DoMenuUpdates()
{
wxMenuBar* bar = GetMenuBar();
+
if ( bar != NULL ) {
int nCount = bar->GetMenuCount();
for (int n = 0; n < nCount; n++)
- DoMenuUpdates(bar->GetMenu(n));
+ DoMenuUpdates(bar->GetMenu(n), (wxWindow*) NULL);
}
}
// update a menu and all submenus recursively
-void wxFrame::DoMenuUpdates(wxMenu* menu)
+void wxFrame::DoMenuUpdates(wxMenu* menu, wxWindow* WXUNUSED(focusWin))
{
+ wxEvtHandler* evtHandler = GetEventHandler();
wxNode* node = menu->GetItems().First();
while (node)
{
wxUpdateUIEvent event(id);
event.SetEventObject( this );
- if (GetEventHandler()->ProcessEvent(event))
+ if (evtHandler->ProcessEvent(event))
{
if (event.GetSetText())
menu->SetLabel(id, event.GetText());
}
if (item->GetSubMenu())
- DoMenuUpdates(item->GetSubMenu());
+ DoMenuUpdates(item->GetSubMenu(), (wxWindow*) NULL);
}
node = node->Next();
}