]> git.saurik.com Git - wxWidgets.git/blob - include/wx/msw/notifmsg.h
Refactor owner-drawing code.
[wxWidgets.git] / include / wx / msw / notifmsg.h
1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: wx/msw/notifmsg.h
3 // Purpose: implementation of wxNotificationMessage for Windows
4 // Author: Vadim Zeitlin
5 // Created: 2007-12-01
6 // RCS-ID: $Id$
7 // Copyright: (c) 2007 Vadim Zeitlin <vadim@wxwindows.org>
8 // Licence: wxWindows licence
9 ///////////////////////////////////////////////////////////////////////////////
10
11 #ifndef _WX_MSW_NOTIFMSG_H_
12 #define _WX_MSW_NOTIFMSG_H_
13
14 class WXDLLIMPEXP_FWD_ADV wxTaskBarIcon;
15
16 // ----------------------------------------------------------------------------
17 // wxNotificationMessage
18 // ----------------------------------------------------------------------------
19
20 class WXDLLIMPEXP_ADV wxNotificationMessage : public wxNotificationMessageBase
21 {
22 public:
23 wxNotificationMessage() { Init(); }
24 wxNotificationMessage(const wxString& title,
25 const wxString& message = wxString(),
26 wxWindow *parent = NULL)
27 : wxNotificationMessageBase(title, message, parent)
28 {
29 Init();
30 }
31
32 virtual ~wxNotificationMessage();
33
34
35 virtual bool Show(int timeout = Timeout_Auto);
36 virtual bool Close();
37
38 // MSW implementation-specific methods
39
40 // by default, wxNotificationMessage under MSW creates a temporary taskbar
41 // icon to which it attaches the notification, if there is an existing
42 // taskbar icon object in the application you may want to call this method
43 // to attach the notification to it instead (we won't take ownership of it
44 // and you can also pass NULL to not use the icon for notifications any
45 // more)
46 //
47 // returns the task bar icon which was used previously (may be NULL)
48 static wxTaskBarIcon *UseTaskBarIcon(wxTaskBarIcon *icon);
49
50 // call this to always use the generic implementation, even if the system
51 // supports the balloon tooltips used by the native one
52 static void AlwaysUseGeneric(bool alwaysUseGeneric)
53 {
54 ms_alwaysUseGeneric = alwaysUseGeneric;
55 }
56
57 private:
58 // common part of all ctors
59 void Init() { m_impl = NULL; }
60
61
62 // flag indicating whether we should always use generic implementation
63 static bool ms_alwaysUseGeneric;
64
65 // the real implementation of this class (selected during run-time because
66 // the balloon task bar icons are not available in all Windows versions)
67 class wxNotifMsgImpl *m_impl;
68
69
70 wxDECLARE_NO_COPY_CLASS(wxNotificationMessage);
71 };
72
73 #endif // _WX_MSW_NOTIFMSG_H_
74