Restructure wxNotificationMessage.

wxNotificationMessage has been refactored to always use wxNotificationMessageImpl (this was previously already done in the MSW implementation)

This adds various features and fixes to wxNotificationMessage:
- OS X Notification Center implementation
- Generic "toast" notifications
- SetIcon() to specify a custom icon
- AddAction() to add actions to notifications
- Events to get notify of notification clicks, dismiss or actions
This commit is contained in:
Tobias Taschner
2015-09-09 22:59:21 +02:00
parent 39716462e6
commit bf5e403a68
31 changed files with 1999 additions and 817 deletions

View File

@@ -10,8 +10,6 @@
#ifndef _WX_GENERIC_NOTIFMSG_H_
#define _WX_GENERIC_NOTIFMSG_H_
class wxNotificationMessageDialog;
// ----------------------------------------------------------------------------
// wxGenericNotificationMessage
// ----------------------------------------------------------------------------
@@ -19,40 +17,29 @@ class wxNotificationMessageDialog;
class WXDLLIMPEXP_ADV wxGenericNotificationMessage : public wxNotificationMessageBase
{
public:
wxGenericNotificationMessage() { Init(); }
wxGenericNotificationMessage(const wxString& title,
const wxString& message = wxString(),
wxWindow *parent = NULL,
int flags = wxICON_INFORMATION)
: wxNotificationMessageBase(title, message, parent, flags)
wxGenericNotificationMessage()
{
Init();
}
virtual ~wxGenericNotificationMessage();
virtual bool Show(int timeout = Timeout_Auto);
virtual bool Close();
wxGenericNotificationMessage(const wxString& title,
const wxString& message = wxString(),
wxWindow *parent = NULL,
int flags = wxICON_INFORMATION)
{
Init();
Create(title, message, parent, flags);
}
// generic implementation-specific methods
// get/set the default timeout (used if Timeout_Auto is specified)
static int GetDefaultTimeout() { return ms_timeout; }
static int GetDefaultTimeout();
static void SetDefaultTimeout(int timeout);
private:
void Init();
// default timeout
static int ms_timeout;
// notification message is represented by a modeless dialog in this
// implementation
wxNotificationMessageDialog *m_dialog;
wxDECLARE_NO_COPY_CLASS(wxGenericNotificationMessage);
};