added wxEVT_TASKBAR_BALLOON_TIMEOUT/CLICK which will be used by the wxMSW wxNotificationMessage implementation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50408 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -96,6 +96,8 @@ BEGIN_DECLARE_EVENT_TYPES()
|
|||||||
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV,wxEVT_TASKBAR_RIGHT_UP,1554)
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV,wxEVT_TASKBAR_RIGHT_UP,1554)
|
||||||
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV,wxEVT_TASKBAR_LEFT_DCLICK,1555)
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV,wxEVT_TASKBAR_LEFT_DCLICK,1555)
|
||||||
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV,wxEVT_TASKBAR_RIGHT_DCLICK,1556)
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV,wxEVT_TASKBAR_RIGHT_DCLICK,1556)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV,wxEVT_TASKBAR_BALLOON_TIMEOUT,1557)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV,wxEVT_TASKBAR_BALLOON_CLICK,1558)
|
||||||
END_DECLARE_EVENT_TYPES()
|
END_DECLARE_EVENT_TYPES()
|
||||||
|
|
||||||
#define wxTaskBarIconEventHandler(func) \
|
#define wxTaskBarIconEventHandler(func) \
|
||||||
@@ -122,6 +124,13 @@ END_DECLARE_EVENT_TYPES()
|
|||||||
#endif
|
#endif
|
||||||
#define EVT_TASKBAR_CLICK(fn) wx__DECLARE_TASKBAREVT(CLICK, fn)
|
#define EVT_TASKBAR_CLICK(fn) wx__DECLARE_TASKBAREVT(CLICK, fn)
|
||||||
|
|
||||||
|
// these events are currently generated only under wxMSW and only after (MSW-
|
||||||
|
// specific) ShowBalloon() had been called, don't use them in portable code
|
||||||
|
#define EVT_TASKBAR_BALLOON_TIMEOUT(fn) \
|
||||||
|
wx__DECLARE_TASKBAREVT(BALLOON_TIMEOUT, fn)
|
||||||
|
#define EVT_TASKBAR_BALLOON_CLICK(fn) \
|
||||||
|
wx__DECLARE_TASKBAREVT(BALLOON_CLICK, fn)
|
||||||
|
|
||||||
#endif // wxUSE_TASKBARICON
|
#endif // wxUSE_TASKBARICON
|
||||||
|
|
||||||
#endif // _WX_TASKBAR_H_BASE_
|
#endif // _WX_TASKBAR_H_BASE_
|
||||||
|
@@ -38,6 +38,8 @@ DEFINE_EVENT_TYPE( wxEVT_TASKBAR_RIGHT_DOWN )
|
|||||||
DEFINE_EVENT_TYPE( wxEVT_TASKBAR_RIGHT_UP )
|
DEFINE_EVENT_TYPE( wxEVT_TASKBAR_RIGHT_UP )
|
||||||
DEFINE_EVENT_TYPE( wxEVT_TASKBAR_LEFT_DCLICK )
|
DEFINE_EVENT_TYPE( wxEVT_TASKBAR_LEFT_DCLICK )
|
||||||
DEFINE_EVENT_TYPE( wxEVT_TASKBAR_RIGHT_DCLICK )
|
DEFINE_EVENT_TYPE( wxEVT_TASKBAR_RIGHT_DCLICK )
|
||||||
|
DEFINE_EVENT_TYPE( wxEVT_TASKBAR_BALLOON_TIMEOUT )
|
||||||
|
DEFINE_EVENT_TYPE( wxEVT_TASKBAR_BALLOON_CLICK )
|
||||||
|
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(wxTaskBarIconBase, wxEvtHandler)
|
BEGIN_EVENT_TABLE(wxTaskBarIconBase, wxEvtHandler)
|
||||||
|
@@ -198,7 +198,19 @@ wxTaskBarIcon::ShowBalloon(const wxString& title,
|
|||||||
wxCHECK_MSG( m_iconAdded, false,
|
wxCHECK_MSG( m_iconAdded, false,
|
||||||
_T("can't be used before the icon is created") );
|
_T("can't be used before the icon is created") );
|
||||||
|
|
||||||
NotifyIconData notifyData(GetHwndOf(m_win));
|
const HWND hwnd = GetHwndOf(m_win);
|
||||||
|
|
||||||
|
// we need to enable version 5.0 behaviour to receive notifications about
|
||||||
|
// the balloon disappearance
|
||||||
|
NotifyIconData notifyData(hwnd);
|
||||||
|
notifyData.uFlags = 0;
|
||||||
|
notifyData.uVersion = 3 /* NOTIFYICON_VERSION for Windows XP */;
|
||||||
|
|
||||||
|
wxShellNotifyIcon(NIM_SETVERSION, ¬ifyData);
|
||||||
|
|
||||||
|
|
||||||
|
// do show the balloon now
|
||||||
|
notifyData = NotifyIconData(hwnd);
|
||||||
notifyData.uFlags |= NIF_INFO;
|
notifyData.uFlags |= NIF_INFO;
|
||||||
notifyData.uTimeout = msec;
|
notifyData.uTimeout = msec;
|
||||||
wxStrncpy(notifyData.szInfo, text.wx_str(), WXSIZEOF(notifyData.szInfo));
|
wxStrncpy(notifyData.szInfo, text.wx_str(), WXSIZEOF(notifyData.szInfo));
|
||||||
@@ -289,8 +301,6 @@ long wxTaskBarIcon::WindowProc(unsigned int msg,
|
|||||||
unsigned int WXUNUSED(wParam),
|
unsigned int WXUNUSED(wParam),
|
||||||
long lParam)
|
long lParam)
|
||||||
{
|
{
|
||||||
wxEventType eventType = 0;
|
|
||||||
|
|
||||||
if ( msg == gs_msgRestartTaskbar ) // does the icon need to be redrawn?
|
if ( msg == gs_msgRestartTaskbar ) // does the icon need to be redrawn?
|
||||||
{
|
{
|
||||||
m_iconAdded = false;
|
m_iconAdded = false;
|
||||||
@@ -301,6 +311,7 @@ long wxTaskBarIcon::WindowProc(unsigned int msg,
|
|||||||
// this function should only be called for gs_msg(Restart)Taskbar messages
|
// this function should only be called for gs_msg(Restart)Taskbar messages
|
||||||
wxASSERT( msg == gs_msgTaskbar );
|
wxASSERT( msg == gs_msgTaskbar );
|
||||||
|
|
||||||
|
wxEventType eventType = 0;
|
||||||
switch ( lParam )
|
switch ( lParam )
|
||||||
{
|
{
|
||||||
case WM_LBUTTONDOWN:
|
case WM_LBUTTONDOWN:
|
||||||
@@ -331,7 +342,12 @@ long wxTaskBarIcon::WindowProc(unsigned int msg,
|
|||||||
eventType = wxEVT_TASKBAR_MOVE;
|
eventType = wxEVT_TASKBAR_MOVE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
case NIN_BALLOONTIMEOUT:
|
||||||
|
eventType = wxEVT_TASKBAR_BALLOON_TIMEOUT;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NIN_BALLOONUSERCLICK:
|
||||||
|
eventType = wxEVT_TASKBAR_BALLOON_CLICK;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user