added EVT_MENU_OPEN and EVT_MENU_CLOSE events

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14376 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2002-02-23 23:16:32 +00:00
parent 7ab2c081d0
commit ccef86c75d
8 changed files with 100 additions and 37 deletions

View File

@@ -763,7 +763,17 @@ bool wxFrame::HandleMenuSelect(WXWORD nItem, WXWORD flags, WXHMENU hMenu)
}
wxMenuEvent event(wxEVT_MENU_HIGHLIGHT, item);
event.SetEventObject( this );
event.SetEventObject(this);
return GetEventHandler()->ProcessEvent(event);
}
bool wxFrame::HandleMenuLoop(const wxEventType& evtType, WXWORD isPopup)
{
// we don't have the menu id here, so we use the id to specify if the event
// was from a popup menu or a normal one
wxMenuEvent event(evtType, isPopup ? -1 : 0);
event.SetEventObject(this);
return GetEventHandler()->ProcessEvent(event);
}
@@ -785,6 +795,10 @@ long wxFrame::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
processed = !Close();
break;
case WM_SIZE:
processed = HandleSize(LOWORD(lParam), HIWORD(lParam), wParam);
break;
case WM_COMMAND:
{
WORD id, cmd;
@@ -796,6 +810,10 @@ long wxFrame::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
}
break;
case WM_PAINT:
processed = HandlePaint();
break;
#ifndef __WXMICROWIN__
case WM_MENUSELECT:
{
@@ -806,13 +824,17 @@ long wxFrame::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
processed = HandleMenuSelect(item, flags, hmenu);
}
break;
#endif
case WM_PAINT:
processed = HandlePaint();
#ifndef __WIN16__
case WM_ENTERMENULOOP:
processed = HandleMenuLoop(wxEVT_MENU_OPEN, wParam);
break;
#ifndef __WXMICROWIN__
case WM_EXITMENULOOP:
processed = HandleMenuLoop(wxEVT_MENU_CLOSE, wParam);
break;
#endif // __WIN16__
case WM_QUERYDRAGICON:
{
HICON hIcon = m_icon.Ok() ? GetHiconOf(m_icon)
@@ -821,11 +843,7 @@ long wxFrame::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
processed = rc != 0;
}
break;
#endif
case WM_SIZE:
processed = HandleSize(LOWORD(lParam), HIWORD(lParam), wParam);
break;
#endif // !__WXMICROWIN__
}
if ( !processed )