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

@@ -88,13 +88,27 @@ protected:
void OnGetLabelMenu(wxCommandEvent& event);
void OnSetLabelMenu(wxCommandEvent& event);
void OnRightUp(wxMouseEvent& event);
#ifdef __WXMSW__
void OnContextMenu(wxContextMenuEvent& event)
{ ShowContextMenu(ScreenToClient(event.GetPosition())); }
#else
void OnRightUp(wxMouseEvent& event)
{ ShowContextMenu(event.GetPosition()); }
#endif
void OnMenuOpen(wxMenuEvent& event)
{ LogMenuOpenOrClose(event, _T("opened")); }
void OnMenuClose(wxMenuEvent& event)
{ LogMenuOpenOrClose(event, _T("closed")); }
void OnUpdateCheckMenuItemUI(wxUpdateUIEvent& event);
void OnSize(wxSizeEvent& event);
private:
void LogMenuOpenOrClose(const wxMenuEvent& event, const wxChar *what);
void ShowContextMenu(const wxPoint& pos);
wxMenu *CreateDummyMenu(wxString *title);
wxMenuItem *GetLastMenuItem() const;
@@ -208,7 +222,14 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_UPDATE_UI(Menu_Menu_Check, MyFrame::OnUpdateCheckMenuItemUI)
#ifdef __WXMSW__
EVT_CONTEXT_MENU(MyFrame::OnContextMenu)
#else
EVT_RIGHT_UP(MyFrame::OnRightUp)
#endif
EVT_MENU_OPEN(MyFrame::OnMenuOpen)
EVT_MENU_CLOSE(MyFrame::OnMenuClose)
EVT_SIZE(MyFrame::OnSize)
END_EVENT_TABLE()
@@ -703,7 +724,7 @@ void MyFrame::OnGetMenuItemInfo(wxCommandEvent& WXUNUSED(event))
}
}
void MyFrame::OnRightUp(wxMouseEvent &event)
void MyFrame::ShowContextMenu(const wxPoint& pos)
{
wxMenu menu("Test popup");
@@ -719,7 +740,7 @@ void MyFrame::OnRightUp(wxMouseEvent &event)
menu.Check(Menu_Popup_ToBeChecked, TRUE);
menu.Enable(Menu_Popup_ToBeGreyed, FALSE);
PopupMenu(&menu, event.GetX(), event.GetY());
PopupMenu(&menu, pos.x, pos.y);
// test for destroying items in popup menus
#if 0 // doesn't work in wxGTK!
@@ -729,6 +750,12 @@ void MyFrame::OnRightUp(wxMouseEvent &event)
#endif // 0
}
void MyFrame::LogMenuOpenOrClose(const wxMenuEvent& event, const wxChar *what)
{
wxLogStatus(this, _T("A %smenu has been %s."),
event.IsPopup() ? _T("popup ") : _T(""), what);
}
void MyFrame::OnSize(wxSizeEvent& event)
{
if ( !m_textctrl )