/////////////////////////////////////////////////////////////////////////////// // Name: wx/private/notifmsg.h // Purpose: wxNotificationMessage declarations // Author: Tobias Taschner // Created: 2015-08-04 // Copyright: (c) 2015 wxWidgets development team // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// #ifndef _WX_PRIVATE_NOTIFMSG_H_ #define _WX_PRIVATE_NOTIFMSG_H_ class wxNotificationMessageImpl { public: wxNotificationMessageImpl(wxNotificationMessageBase* notification): m_notification(notification), m_active(false) { } virtual ~wxNotificationMessageImpl() { } virtual bool Show(int timeout) = 0; virtual bool Close() = 0; virtual void SetTitle(const wxString& title) = 0; virtual void SetMessage(const wxString& message) = 0; virtual void SetParent(wxWindow *parent) = 0; virtual void SetFlags(int flags) = 0; virtual void SetIcon(const wxIcon& icon) = 0; virtual bool AddAction(wxWindowID actionid, const wxString &label) = 0; virtual void Detach() { if (m_active) m_notification = NULL; else delete this; } bool ProcessNotificationEvent(wxEvent& event) { if (m_notification) return m_notification->ProcessEvent(event); else return false; } wxNotificationMessageBase* GetNotification() const { return m_notification; } protected: wxNotificationMessageBase* m_notification; bool m_active; void SetActive(bool active) { m_active = active; // Delete the implementation if the notification is detached if (!m_notification && !active) delete this; } }; #endif // _WX_PRIVATE_NOTIFMSG_H_