Added wxTaskBarIcon::PopupMenu()

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1169 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
1998-12-11 05:56:40 +00:00
parent 5de5db0eb1
commit 69ecd30f31
4 changed files with 113 additions and 34 deletions

View File

@@ -48,13 +48,13 @@ UINT wxTaskBarIcon::sm_taskbarMsg = 0;
#if !USE_SHARED_LIBRARY
BEGIN_EVENT_TABLE(wxTaskBarIcon, wxEvtHandler)
EVT_TASKBAR_MOVE (wxTaskBarIcon::OnMouseMove)
EVT_TASKBAR_LEFT_DOWN (wxTaskBarIcon::OnLButtonDown)
EVT_TASKBAR_LEFT_UP (wxTaskBarIcon::OnLButtonUp)
EVT_TASKBAR_RIGHT_DOWN (wxTaskBarIcon::OnRButtonDown)
EVT_TASKBAR_RIGHT_UP (wxTaskBarIcon::OnRButtonUp)
EVT_TASKBAR_LEFT_DCLICK (wxTaskBarIcon::OnLButtonDClick)
EVT_TASKBAR_RIGHT_DCLICK (wxTaskBarIcon::OnRButtonDClick)
EVT_TASKBAR_MOVE (wxTaskBarIcon::_OnMouseMove)
EVT_TASKBAR_LEFT_DOWN (wxTaskBarIcon::_OnLButtonDown)
EVT_TASKBAR_LEFT_UP (wxTaskBarIcon::_OnLButtonUp)
EVT_TASKBAR_RIGHT_DOWN (wxTaskBarIcon::_OnRButtonDown)
EVT_TASKBAR_RIGHT_UP (wxTaskBarIcon::_OnRButtonUp)
EVT_TASKBAR_LEFT_DCLICK (wxTaskBarIcon::_OnLButtonDClick)
EVT_TASKBAR_RIGHT_DCLICK (wxTaskBarIcon::_OnRButtonDClick)
END_EVENT_TABLE()
@@ -144,6 +144,25 @@ bool wxTaskBarIcon::RemoveIcon(void)
return (Shell_NotifyIcon(NIM_DELETE, & notifyData) != 0);
}
bool wxTaskBarIcon::PopupMenu(wxMenu *menu) //, int x, int y);
{
bool rval = FALSE;
wxWindow* win;
int x, y;
wxGetMousePosition(&x, &y);
// is wxFrame the best window type to use???
win = new wxFrame(NULL, -1, "", wxPoint(x,y), wxSize(-1,-1), 0);
win->PushEventHandler(this);
rval = win->PopupMenu(menu, 0, 0);
win->PopEventHandler(FALSE);
delete win;
return rval;
}
// Overridables
void wxTaskBarIcon::OnMouseMove(wxEvent&)
{
@@ -173,6 +192,15 @@ void wxTaskBarIcon::OnRButtonDClick(wxEvent&)
{
}
void wxTaskBarIcon::_OnMouseMove(wxEvent& e) { OnMouseMove(e); }
void wxTaskBarIcon::_OnLButtonDown(wxEvent& e) { OnLButtonDown(e); }
void wxTaskBarIcon::_OnLButtonUp(wxEvent& e) { OnLButtonUp(e); }
void wxTaskBarIcon::_OnRButtonDown(wxEvent& e) { OnRButtonDown(e); }
void wxTaskBarIcon::_OnRButtonUp(wxEvent& e) { OnRButtonUp(e); }
void wxTaskBarIcon::_OnLButtonDClick(wxEvent& e) { OnLButtonDClick(e); }
void wxTaskBarIcon::_OnRButtonDClick(wxEvent& e) { OnRButtonDClick(e); }
wxTaskBarIcon* wxTaskBarIcon::FindObjectForHWND(WXHWND hWnd)
{
wxNode*node = sm_taskBarIcons.First();