minor refactoring of menu UpdateUI handling
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36296 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
0b04c4e0bd
commit
4d53859584
@ -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;
|
||||
|
@ -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)
|
||||
menu->UpdateUI(source);
|
||||
else if ( bar != NULL )
|
||||
{
|
||||
int nCount = bar->GetMenuCount();
|
||||
for (int n = 0; n < nCount; n++)
|
||||
bar->GetMenu(n)->UpdateUI(source);
|
||||
wxEvtHandler* source = GetEventHandler();
|
||||
menu->UpdateUI(source);
|
||||
}
|
||||
else
|
||||
{
|
||||
wxMenuBar* bar = GetMenuBar();
|
||||
if (bar != NULL)
|
||||
bar->UpdateMenus();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user