| 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 | DECLARE_NO_COPY_CLASS(wxNotificationMessage) |
| 71 | }; |
| 72 | |
| 73 | #endif // _WX_MSW_NOTIFMSG_H_ |
| 74 | |