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
		
			
				
	
	
		
			77 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
///////////////////////////////////////////////////////////////////////////////
 | 
						|
// 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_
 |