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:
@@ -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);
|
||||
};
|
||||
|
||||
|
52
include/wx/generic/private/notifmsg.h
Normal file
52
include/wx/generic/private/notifmsg.h
Normal file
@@ -0,0 +1,52 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/generic/private/notifmsg.h
|
||||
// Purpose: wxGenericNotificationMessage declarations
|
||||
// Author: Tobias Taschner
|
||||
// Created: 2015-08-04
|
||||
// Copyright: (c) 2015 wxWidgets development team
|
||||
// Licence: wxWindows licence
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_GENERIC_PRIVATE_NOTIFMSG_H_
|
||||
#define _WX_GENERIC_PRIVATE_NOTIFMSG_H_
|
||||
|
||||
#include "wx/private/notifmsg.h"
|
||||
|
||||
class wxGenericNotificationMessageImpl : public wxNotificationMessageImpl
|
||||
{
|
||||
public:
|
||||
wxGenericNotificationMessageImpl(wxNotificationMessageBase* notification);
|
||||
|
||||
virtual ~wxGenericNotificationMessageImpl();
|
||||
|
||||
virtual bool Show(int timeout) wxOVERRIDE;
|
||||
|
||||
virtual bool Close() wxOVERRIDE;
|
||||
|
||||
virtual void SetTitle(const wxString& title) wxOVERRIDE;
|
||||
|
||||
virtual void SetMessage(const wxString& message) wxOVERRIDE;
|
||||
|
||||
virtual void SetParent(wxWindow *parent) wxOVERRIDE;
|
||||
|
||||
virtual void SetFlags(int flags) wxOVERRIDE;
|
||||
|
||||
virtual void SetIcon(const wxIcon& icon) wxOVERRIDE;
|
||||
|
||||
virtual bool AddAction(wxWindowID actionid, const wxString &label) wxOVERRIDE;
|
||||
|
||||
// get/set the default timeout (used if Timeout_Auto is specified)
|
||||
static int GetDefaultTimeout() { return ms_timeout; }
|
||||
static void SetDefaultTimeout(int timeout);
|
||||
|
||||
private:
|
||||
// default timeout
|
||||
static int ms_timeout;
|
||||
|
||||
// notification message is represented by a frame in this implementation
|
||||
class wxNotificationMessageWindow *m_window;
|
||||
|
||||
wxDECLARE_NO_COPY_CLASS(wxGenericNotificationMessageImpl);
|
||||
};
|
||||
|
||||
#endif // _WX_GENERIC_PRIVATE_NOTIFMSG_H_
|
Reference in New Issue
Block a user