X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3b257996a22fafa532f805ff58eda54eccf2d158..fa3d4aaf0fdffa51372d15f17862cb7081687107:/src/common/framecmn.cpp diff --git a/src/common/framecmn.cpp b/src/common/framecmn.cpp index bbd09bf8b4..206c959dfb 100644 --- a/src/common/framecmn.cpp +++ b/src/common/framecmn.cpp @@ -170,56 +170,49 @@ wxPoint wxFrameBase::GetClientAreaOrigin() const return pt; } - -void wxFrameBase::SendSizeEvent() -{ - wxSizeEvent event( GetSize(), GetId() ); - event.SetEventObject( this ); - GetEventHandler()->AddPendingEvent( event ); -} - - // ---------------------------------------------------------------------------- // misc // ---------------------------------------------------------------------------- +#if wxUSE_MENUS + bool wxFrameBase::ProcessCommand(int id) { -#if wxUSE_MENUS wxMenuBar *bar = GetMenuBar(); if ( !bar ) return false; - wxCommandEvent commandEvent(wxEVT_COMMAND_MENU_SELECTED, id); + wxMenuItem *item = bar->FindItem(id); + if ( !item ) + return false; + + return ProcessCommand(item); +} + +bool wxFrameBase::ProcessCommand(wxMenuItem *item) +{ + wxCommandEvent commandEvent(wxEVT_COMMAND_MENU_SELECTED, item->GetId()); commandEvent.SetEventObject(this); - wxMenuItem *item = bar->FindItem(id); - if (item) - { - if (!item->IsEnabled()) - return true; + if (!item->IsEnabled()) + return true; - if ((item->GetKind() == wxITEM_RADIO) && item->IsChecked() ) - return true; + if ((item->GetKind() == wxITEM_RADIO) && item->IsChecked() ) + return true; - if (item->IsCheckable()) - { - item->Toggle(); + if (item->IsCheckable()) + { + item->Toggle(); - // use the new value - commandEvent.SetInt(item->IsChecked()); - } + // use the new value + commandEvent.SetInt(item->IsChecked()); } - GetEventHandler()->ProcessEvent(commandEvent); - return true; -#else // !wxUSE_MENUS - wxUnusedVar(id); - - return false; -#endif // wxUSE_MENUS/!wxUSE_MENUS + return HandleWindowEvent(commandEvent); } +#endif // wxUSE_MENUS + // Do the UI update processing for this window. This is // provided for the application to call if it wants to // force a UI update, particularly for the menus and toolbar. @@ -235,14 +228,12 @@ void wxFrameBase::UpdateWindowUI(long flags) #if wxUSE_MENUS if (GetMenuBar()) { - if ((flags & wxUPDATE_UI_FROMIDLE) && !wxUSE_IDLEMENUUPDATES) - { - // If coming from an idle event, we only - // want to update the menus if we're - // in the wxUSE_IDLEMENUUPDATES configuration: - // so if we're not, do nothing - } - else + // If coming from an idle event, we only want to update the menus if + // we're in the wxUSE_IDLEMENUUPDATES configuration, otherwise they + // will be update when the menu is opened later +#if !wxUSE_IDLEMENUUPDATES + if ( !(flags & wxUPDATE_UI_FROMIDLE) ) +#endif // wxUSE_IDLEMENUUPDATES DoMenuUpdates(); } #endif // wxUSE_MENUS @@ -261,15 +252,14 @@ void wxFrameBase::OnMenuHighlight(wxMenuEvent& event) #endif // wxUSE_STATUSBAR } -#if !wxUSE_IDLEMENUUPDATES void wxFrameBase::OnMenuOpen(wxMenuEvent& event) -#else -void wxFrameBase::OnMenuOpen(wxMenuEvent& WXUNUSED(event)) -#endif { -#if !wxUSE_IDLEMENUUPDATES +#if wxUSE_IDLEMENUUPDATES + wxUnusedVar(event); +#else // !wxUSE_IDLEMENUUPDATES + // as we didn't update the menus from idle time, do it now DoMenuUpdates(event.GetMenu()); -#endif // !wxUSE_IDLEMENUUPDATES +#endif // wxUSE_IDLEMENUUPDATES/!wxUSE_IDLEMENUUPDATES } void wxFrameBase::OnMenuClose(wxMenuEvent& WXUNUSED(event)) @@ -361,7 +351,7 @@ bool wxFrameBase::ShowMenuHelp(int menuId) if ( menuId != wxID_SEPARATOR && menuId != -3 /* wxID_TITLE */ ) { const wxMenuItem * const item = FindItemInMenuBar(menuId); - if ( item ) + if ( item && !item->IsSeparator() ) helpString = item->GetHelp(); // notice that it's ok if we don't find the item because it might