X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bbcd40851cc443fd61194184df381622de8fca50..cb0b7b7d811356f729315fc14c7e0d311f43384d:/src/common/menucmn.cpp diff --git a/src/common/menucmn.cpp b/src/common/menucmn.cpp index a423b41f9b..edf51cab54 100644 --- a/src/common/menucmn.cpp +++ b/src/common/menucmn.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: common/menucmn.cpp +// Name: src/common/menucmn.cpp // Purpose: wxMenu and wxMenuBar methods common to all ports // Author: Vadim Zeitlin // Modified by: @@ -17,10 +17,6 @@ // headers // ---------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "menubase.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -44,8 +40,8 @@ #include "wx/listimpl.cpp" -WX_DEFINE_LIST(wxMenuList); -WX_DEFINE_LIST(wxMenuItemList); +WX_DEFINE_LIST(wxMenuList) +WX_DEFINE_LIST(wxMenuItemList) // ============================================================================ // implementation @@ -193,7 +189,7 @@ wxAcceleratorEntry *wxGetAccelFromString(const wxString& label) keyCode = WXK_HOME; else if ( current == wxT("END") ) keyCode = WXK_END; - else if ( current == wxT("SPACE") ) + else if ( current == wxT("SPACE") || current == _("SPACE") ) keyCode = WXK_SPACE; else if ( current == wxT("TAB") ) keyCode = WXK_TAB; @@ -219,8 +215,6 @@ wxAcceleratorEntry *wxGetAccelFromString(const wxString& label) keyCode = WXK_SNAPSHOT; else if ( current == wxT("HELP") ) keyCode = WXK_HELP; - else if ( current == wxT("HELP") ) - keyCode = WXK_HELP; else if ( current == wxT("ADD") ) keyCode = WXK_ADD; else if ( current == wxT("SEPARATOR") ) @@ -289,14 +283,14 @@ wxAcceleratorEntry *wxGetAccelFromString(const wxString& label) keyCode = WXK_WINDOWS_LEFT; else if ( current == wxT("WINDOWS_RIGHT") ) keyCode = WXK_WINDOWS_RIGHT; - else if ( current == wxT("WINDOWS_MENU") ) + else if ( current == wxT("WINDOWS_MENU") ) keyCode = WXK_WINDOWS_MENU; else if ( current == wxT("COMMAND") ) keyCode = WXK_COMMAND; - else if ( current.Left(3) == wxT("KP_") && wxIsdigit(current[3U]) ) { - keyCode = WXK_NUMPAD0 + wxAtoi(current.c_str() + 3); } - else if ( current.Left(7) == wxT("SPECIAL") && wxIsdigit(current[7U]) ) { - keyCode = WXK_SPECIAL1 + wxAtoi(current.c_str() + 7) - 1; } + else if ( current.Left(3) == wxT("KP_") && wxIsdigit(current[3U]) ) + keyCode = WXK_NUMPAD0 + wxAtoi(current.c_str() + 3); + else if ( current.Left(7) == wxT("SPECIAL") && wxIsdigit(current[7U]) ) + keyCode = WXK_SPECIAL1 + wxAtoi(current.c_str() + 7) - 1; else { wxLogDebug(wxT("Unrecognized accel key '%s', accel string ignored."), @@ -690,7 +684,7 @@ bool wxMenuBase::SendEvent(int id, int checked) bool processed = false; // Try the menu's event handler - if ( !processed ) + // if ( !processed ) { wxEvtHandler *handler = GetEventHandler(); if ( handler ) @@ -1064,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