diff --git a/clientgui/msw/taskbarex.cpp b/clientgui/msw/taskbarex.cpp index b662d8ce89..01186cf7d3 100644 --- a/clientgui/msw/taskbarex.cpp +++ b/clientgui/msw/taskbarex.cpp @@ -20,13 +20,20 @@ LRESULT APIENTRY wxTaskBarIconExWindowProc( HWND hWnd, unsigned msg, UINT wParam, LONG lParam ); wxChar *wxTaskBarExWindowClass = (wxChar*) wxT("wxTaskBarExWindowClass"); +const UINT WM_TASKBARCREATED = ::RegisterWindowMessage(_T("TaskbarCreated")); wxList wxTaskBarIconEx::sm_taskBarIcons; bool wxTaskBarIconEx::sm_registeredClass = FALSE; UINT wxTaskBarIconEx::sm_taskbarMsg = 0; +DEFINE_EVENT_TYPE( wxEVT_TASKBAR_CREATED ) DEFINE_EVENT_TYPE( wxEVT_TASKBAR_CONTEXT_MENU ) - +DEFINE_EVENT_TYPE( wxEVT_TASKBAR_SELECT ) +DEFINE_EVENT_TYPE( wxEVT_TASKBAR_KEY_SELECT ) +DEFINE_EVENT_TYPE( wxEVT_TASKBAR_BALLOON_SHOW ) +DEFINE_EVENT_TYPE( wxEVT_TASKBAR_BALLOON_HIDE ) +DEFINE_EVENT_TYPE( wxEVT_TASKBAR_BALLOON_TIMEOUT ) +DEFINE_EVENT_TYPE( wxEVT_TASKBAR_BALLOON_USERCLICK ) IMPLEMENT_DYNAMIC_CLASS(wxTaskBarIconEx, wxEvtHandler) @@ -316,9 +323,42 @@ long wxTaskBarIconEx::WindowProc( WXHWND hWnd, unsigned int msg, unsigned int wP eventType = wxEVT_TASKBAR_MOVE; break; + case WM_CONTEXTMENU: + eventType = wxEVT_TASKBAR_CONTEXT_MENU; + break; + + case NIN_SELECT: + eventType = wxEVT_TASKBAR_SELECT; + break; + + case NIN_KEYSELECT: + eventType = wxEVT_TASKBAR_KEY_SELECT; + break; + + case NIN_BALLOONSHOW: + eventType = wxEVT_TASKBAR_BALLOON_SHOW; + break; + + case NIN_BALLOONHIDE: + eventType = wxEVT_TASKBAR_BALLOON_HIDE; + break; + + case NIN_BALLOONTIMEOUT: + eventType = wxEVT_TASKBAR_BALLOON_TIMEOUT; + break; + + case NIN_BALLOONUSERCLICK: + eventType = wxEVT_TASKBAR_BALLOON_USERCLICK; + break; + default: break; - } + } + + if ( WM_TASKBARCREATED == lParam ) + { + eventType = wxEVT_TASKBAR_CREATED; + } if (eventType) { wxTaskBarIconExEvent event(eventType, this); diff --git a/clientgui/msw/taskbarex.h b/clientgui/msw/taskbarex.h index 316dfb571b..a5da08a1ed 100644 --- a/clientgui/msw/taskbarex.h +++ b/clientgui/msw/taskbarex.h @@ -95,10 +95,24 @@ public: BEGIN_DECLARE_EVENT_TYPES() -DECLARE_EVENT_TYPE( wxEVT_TASKBAR_CONTEXT_MENU, 1557 ) +DECLARE_EVENT_TYPE( wxEVT_TASKBAR_CREATED, 1557 ) +DECLARE_EVENT_TYPE( wxEVT_TASKBAR_CONTEXT_MENU, 1558 ) +DECLARE_EVENT_TYPE( wxEVT_TASKBAR_SELECT, 1559 ) +DECLARE_EVENT_TYPE( wxEVT_TASKBAR_KEY_SELECT, 1560 ) +DECLARE_EVENT_TYPE( wxEVT_TASKBAR_BALLOON_SHOW, 1561 ) +DECLARE_EVENT_TYPE( wxEVT_TASKBAR_BALLOON_HIDE, 1562 ) +DECLARE_EVENT_TYPE( wxEVT_TASKBAR_BALLOON_TIMEOUT, 1563 ) +DECLARE_EVENT_TYPE( wxEVT_TASKBAR_BALLOON_USERCLICK, 1564 ) END_DECLARE_EVENT_TYPES() +#define EVT_TASKBAR_CREATED(fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_CREATED, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL), #define EVT_TASKBAR_CONTEXT_MENU(fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_CONTEXT_MENU, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL), +#define EVT_TASKBAR_SELECT(fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_SELECT, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL), +#define EVT_TASKBAR_KEY_SELECT(fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_KEY_SELECT, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL), +#define EVT_TASKBAR_BALLOON_SHOW(fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_BALLOON_SHOW, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL), +#define EVT_TASKBAR_BALLOON_HIDE(fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_BALLOON_HIDE, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL), +#define EVT_TASKBAR_BALLOON_TIMEOUT(fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_BALLOON_TIMEOUT, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL), +#define EVT_TASKBAR_CONTEXT_USERCLICK(fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_BALLOON_USERCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL), #endif