Refactor: extract menu event handling logic from wxMenu::SendEvent().
Make this logic available for reuse with the events of different kind, e.g. wxMenuEvent in the upcoming commit. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78228 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -388,6 +388,12 @@ protected:
|
||||
|
||||
static bool ms_locked;
|
||||
|
||||
|
||||
private:
|
||||
// Helper of SendEvent(): sends the event to its intended recipients,
|
||||
// returns true if it was processed.
|
||||
static bool DoProcessEvent(wxMenuBase* menu, wxEvent& event, wxWindow* win);
|
||||
|
||||
wxDECLARE_NO_COPY_CLASS(wxMenuBase);
|
||||
};
|
||||
|
||||
|
@@ -641,14 +641,20 @@ void wxMenuBase::UpdateUI(wxEvtHandler* source)
|
||||
bool wxMenuBase::SendEvent(int itemid, int checked)
|
||||
{
|
||||
wxCommandEvent event(wxEVT_MENU, itemid);
|
||||
event.SetEventObject(this);
|
||||
event.SetInt(checked);
|
||||
|
||||
wxWindow* const win = GetWindow();
|
||||
wxMenuBar* const mb = GetMenuBar();
|
||||
return DoProcessEvent(this, event, GetWindow());
|
||||
}
|
||||
|
||||
/* static */
|
||||
bool wxMenuBase::DoProcessEvent(wxMenuBase* menu, wxEvent& event, wxWindow* win)
|
||||
{
|
||||
event.SetEventObject(menu);
|
||||
|
||||
wxMenuBar* const mb = menu->GetMenuBar();
|
||||
|
||||
// Try the menu's event handler first
|
||||
wxEvtHandler *handler = GetEventHandler();
|
||||
wxEvtHandler *handler = menu->GetEventHandler();
|
||||
if ( handler )
|
||||
{
|
||||
// Indicate to the event processing code that we're going to pass this
|
||||
|
Reference in New Issue
Block a user