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:
76
include/wx/private/notifmsg.h
Normal file
76
include/wx/private/notifmsg.h
Normal file
@@ -0,0 +1,76 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// 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_
|
Reference in New Issue
Block a user