#include <wx/notifmsg.h>
This class allows to show the user a message non intrusively.
Currently it is implemented natively for Windows, OS X, GTK and uses generic toast notifications under the other platforms. It's not recommended but wxGenericNotificationMessage
can be used instead of the native ones. This might make sense if your application requires features not available in the native implementation.
Notice that this class is not a window and so doesn't derive from wxWindow.
NSUserNotificationAlertStyle
value in Info.plist to alert
. Please note that the user always has the option to change the notification style.The following event handler macros redirect the events to member function handlers 'func' with prototypes like:
Event macros for events emitted by this class:
wxEVT_NOTIFICATION_MESSAGE_CLICK
event, when a notification is clicked. wxEVT_NOTIFICATION_MESSAGE_DISMISSED
event, when a notification is dismissed by the user or times out. wxEVT_NOTIFICATION_MESSAGE_ACTION
event, when the user selects on of the actions added by AddAction() Public Types | |
enum | { Timeout_Auto = -1, Timeout_Never = 0 } |
Possible values for Show() timeout. More... | |
Public Member Functions | |
wxNotificationMessage () | |
Default constructor, use SetParent(), SetTitle() and SetMessage() to initialize the object before showing it. More... | |
wxNotificationMessage (const wxString &title, const wxString &message=wxEmptyString, wxWindow *parent=NULL, int flags=wxICON_INFORMATION) | |
Create a notification object with the given attributes. More... | |
virtual | ~wxNotificationMessage () |
Destructor does not hide the notification. More... | |
bool | AddAction (wxWindowID actionid, const wxString &label=wxString()) |
Add an action to the notification. More... | |
virtual bool | Close () |
Hides the notification. More... | |
void | SetFlags (int flags) |
This parameter can be currently used to specify the icon to show in the notification. More... | |
void | SetIcon (const wxIcon &icon) |
Specify a custom icon to be displayed in the notification. More... | |
void | SetMessage (const wxString &message) |
Set the main text of the notification. More... | |
void | SetParent (wxWindow *parent) |
Set the parent for this notification: the notification will be associated with the top level parent of this window or, if this method is not called, with the main application window by default. More... | |
void | SetTitle (const wxString &title) |
Set the title, it must be a concise string (not more than 64 characters), use SetMessage() to give the user more details. More... | |
virtual bool | Show (int timeout=Timeout_Auto) |
Show the notification to the user and hides it after timeout seconds are elapsed. More... | |
Public Member Functions inherited from wxEvtHandler | |
wxEvtHandler () | |
Constructor. More... | |
virtual | ~wxEvtHandler () |
Destructor. More... | |
virtual void | QueueEvent (wxEvent *event) |
Queue event for a later processing. More... | |
virtual void | AddPendingEvent (const wxEvent &event) |
Post an event to be processed later. More... | |
template<typename T , typename T1 , ... > | |
void | CallAfter (void(T::*method)(T1,...), T1 x1,...) |
Asynchronously call the given method. More... | |
template<typename T > | |
void | CallAfter (const T &functor) |
Asynchronously call the given functor. More... | |
virtual bool | ProcessEvent (wxEvent &event) |
Processes an event, searching event tables and calling zero or more suitable event handler function(s). More... | |
bool | ProcessEventLocally (wxEvent &event) |
Try to process the event in this handler and all those chained to it. More... | |
bool | SafelyProcessEvent (wxEvent &event) |
Processes an event by calling ProcessEvent() and handles any exceptions that occur in the process. More... | |
void | ProcessPendingEvents () |
Processes the pending events previously queued using QueueEvent() or AddPendingEvent(); you must call this function only if you are sure there are pending events for this handler, otherwise a wxCHECK will fail. More... | |
void | DeletePendingEvents () |
Deletes all events queued on this event handler using QueueEvent() or AddPendingEvent(). More... | |
virtual bool | SearchEventTable (wxEventTable &table, wxEvent &event) |
Searches the event table, executing an event handler function if an appropriate one is found. More... | |
void | Connect (int id, int lastId, wxEventType eventType, wxObjectEventFunction function, wxObject *userData=NULL, wxEvtHandler *eventSink=NULL) |
Connects the given function dynamically with the event handler, id and event type. More... | |
void | Connect (int id, wxEventType eventType, wxObjectEventFunction function, wxObject *userData=NULL, wxEvtHandler *eventSink=NULL) |
See the Connect(int, int, wxEventType, wxObjectEventFunction, wxObject*, wxEvtHandler*) overload for more info. More... | |
void | Connect (wxEventType eventType, wxObjectEventFunction function, wxObject *userData=NULL, wxEvtHandler *eventSink=NULL) |
See the Connect(int, int, wxEventType, wxObjectEventFunction, wxObject*, wxEvtHandler*) overload for more info. More... | |
bool | Disconnect (wxEventType eventType, wxObjectEventFunction function, wxObject *userData=NULL, wxEvtHandler *eventSink=NULL) |
Disconnects the given function dynamically from the event handler, using the specified parameters as search criteria and returning true if a matching function has been found and removed. More... | |
bool | Disconnect (int id=wxID_ANY, wxEventType eventType=wxEVT_NULL, wxObjectEventFunction function=NULL, wxObject *userData=NULL, wxEvtHandler *eventSink=NULL) |
See the Disconnect(wxEventType, wxObjectEventFunction, wxObject*, wxEvtHandler*) overload for more info. More... | |
bool | Disconnect (int id, int lastId, wxEventType eventType, wxObjectEventFunction function=NULL, wxObject *userData=NULL, wxEvtHandler *eventSink=NULL) |
See the Disconnect(wxEventType, wxObjectEventFunction, wxObject*, wxEvtHandler*) overload for more info. More... | |
template<typename EventTag , typename Functor > | |
void | Bind (const EventTag &eventType, Functor functor, int id=wxID_ANY, int lastId=wxID_ANY, wxObject *userData=NULL) |
Binds the given function, functor or method dynamically with the event. More... | |
template<typename EventTag , typename Class , typename EventArg , typename EventHandler > | |
void | Bind (const EventTag &eventType, void(Class::*method)(EventArg &), EventHandler *handler, int id=wxID_ANY, int lastId=wxID_ANY, wxObject *userData=NULL) |
See the Bind<>(const EventTag&, Functor, int, int, wxObject*) overload for more info. More... | |
template<typename EventTag , typename Functor > | |
bool | Unbind (const EventTag &eventType, Functor functor, int id=wxID_ANY, int lastId=wxID_ANY, wxObject *userData=NULL) |
Unbinds the given function, functor or method dynamically from the event handler, using the specified parameters as search criteria and returning true if a matching function has been found and removed. More... | |
template<typename EventTag , typename Class , typename EventArg , typename EventHandler > | |
bool | Unbind (const EventTag &eventType, void(Class::*method)(EventArg &), EventHandler *handler, int id=wxID_ANY, int lastId=wxID_ANY, wxObject *userData=NULL) |
See the Unbind<>(const EventTag&, Functor, int, int, wxObject*) overload for more info. More... | |
void * | GetClientData () const |
Returns user-supplied client data. More... | |
wxClientData * | GetClientObject () const |
Returns a pointer to the user-supplied client data object. More... | |
void | SetClientData (void *data) |
Sets user-supplied client data. More... | |
void | SetClientObject (wxClientData *data) |
Set the client data object. More... | |
bool | GetEvtHandlerEnabled () const |
Returns true if the event handler is enabled, false otherwise. More... | |
wxEvtHandler * | GetNextHandler () const |
Returns the pointer to the next handler in the chain. More... | |
wxEvtHandler * | GetPreviousHandler () const |
Returns the pointer to the previous handler in the chain. More... | |
void | SetEvtHandlerEnabled (bool enabled) |
Enables or disables the event handler. More... | |
virtual void | SetNextHandler (wxEvtHandler *handler) |
Sets the pointer to the next handler. More... | |
virtual void | SetPreviousHandler (wxEvtHandler *handler) |
Sets the pointer to the previous handler. More... | |
void | Unlink () |
Unlinks this event handler from the chain it's part of (if any); then links the "previous" event handler to the "next" one (so that the chain won't be interrupted). More... | |
bool | IsUnlinked () const |
Returns true if the next and the previous handler pointers of this event handler instance are NULL. More... | |
Public Member Functions inherited from wxObject | |
wxObject () | |
Default ctor; initializes to NULL the internal reference data. More... | |
wxObject (const wxObject &other) | |
Copy ctor. More... | |
virtual | ~wxObject () |
Destructor. More... | |
virtual wxClassInfo * | GetClassInfo () const |
This virtual function is redefined for every class that requires run-time type information, when using the wxDECLARE_CLASS macro (or similar). More... | |
wxObjectRefData * | GetRefData () const |
Returns the wxObject::m_refData pointer, i.e. the data referenced by this object. More... | |
bool | IsKindOf (const wxClassInfo *info) const |
Determines whether this class is a subclass of (or the same class as) the given class. More... | |
bool | IsSameAs (const wxObject &obj) const |
Returns true if this object has the same data pointer as obj. More... | |
void | Ref (const wxObject &clone) |
Makes this object refer to the data in clone. More... | |
void | SetRefData (wxObjectRefData *data) |
Sets the wxObject::m_refData pointer. More... | |
void | UnRef () |
Decrements the reference count in the associated data, and if it is zero, deletes the data. More... | |
void | UnShare () |
This is the same of AllocExclusive() but this method is public. More... | |
void | operator delete (void *buf) |
The delete operator is defined for debugging versions of the library only, when the identifier WXDEBUG is defined. More... | |
void * | operator new (size_t size, const wxString &filename=NULL, int lineNum=0) |
The new operator is defined for debugging versions of the library only, when the identifier WXDEBUG is defined. More... | |
Static Public Member Functions | |
static wxTaskBarIcon * | UseTaskBarIcon (wxTaskBarIcon *icon) |
If the application already uses a wxTaskBarIcon, it should be connected to notifications by using this method. More... | |
static bool | MSWUseToasts (const wxString &shortcutPath=wxString(), const wxString &appId=wxString()) |
Enables toast notifications available since Windows 8 and suppresses the additional icon in the notification area on Windows 10. More... | |
Static Public Member Functions inherited from wxEvtHandler | |
static void | AddFilter (wxEventFilter *filter) |
Add an event filter whose FilterEvent() method will be called for each and every event processed by wxWidgets. More... | |
static void | RemoveFilter (wxEventFilter *filter) |
Remove a filter previously installed with AddFilter(). More... | |
Additional Inherited Members | |
Protected Member Functions inherited from wxEvtHandler | |
virtual bool | TryBefore (wxEvent &event) |
Method called by ProcessEvent() before examining this object event tables. More... | |
virtual bool | TryAfter (wxEvent &event) |
Method called by ProcessEvent() as last resort. More... | |
Protected Member Functions inherited from wxObject | |
void | AllocExclusive () |
Ensure that this object's data is not shared with any other object. More... | |
virtual wxObjectRefData * | CreateRefData () const |
Creates a new instance of the wxObjectRefData-derived class specific to this object and returns it. More... | |
virtual wxObjectRefData * | CloneRefData (const wxObjectRefData *data) const |
Creates a new instance of the wxObjectRefData-derived class specific to this object and initializes it copying data. More... | |
Protected Attributes inherited from wxObject | |
wxObjectRefData * | m_refData |
Pointer to an object which is the object's reference-counted data. More... | |
anonymous enum |
Possible values for Show() timeout.
Enumerator | |
---|---|
Timeout_Auto |
Notification will be hidden automatically. |
Timeout_Never |
Notification will never time out. |
wxNotificationMessage::wxNotificationMessage | ( | ) |
Default constructor, use SetParent(), SetTitle() and SetMessage() to initialize the object before showing it.
wxNotificationMessage::wxNotificationMessage | ( | const wxString & | title, |
const wxString & | message = wxEmptyString , |
||
wxWindow * | parent = NULL , |
||
int | flags = wxICON_INFORMATION |
||
) |
Create a notification object with the given attributes.
See SetTitle(), SetMessage(), SetParent() and SetFlags() for the description of the corresponding parameters.
|
virtual |
Destructor does not hide the notification.
The notification can continue to be shown even after the C++ object was destroyed, call Close() explicitly if it needs to be hidden.
bool wxNotificationMessage::AddAction | ( | wxWindowID | actionid, |
const wxString & | label = wxString() |
||
) |
Add an action to the notification.
If supported by the implementation this are usually buttons in the notification selectable by the user.
|
virtual |
Hides the notification.
Returns true if it was hidden or false if it couldn't be done (e.g. on some systems automatically hidden notifications can't be hidden manually).
|
static |
Enables toast notifications available since Windows 8 and suppresses the additional icon in the notification area on Windows 10.
Toast notifications require a shortcut to the application in the start menu. The start menu shortcut needs to contain an Application User Model ID. It is recommended that the applications setup creates the shortcut and the application specifies the setup created shortcut in shortcutPath
. A call to this method will verify (and if necessary modify) the shortcut before enabling toast notifications.
shortcutPath | Path to a shortcut file referencing the applications executable. If the string is empty the applications display name will be used. If not fully qualified, it will be used as a path relative to the users start menu directory. The file extension .lnk is optional. |
appId | The applications Application User Model ID. If empty it will be extracted from the shortcut. If the shortcut does not contain an id an id will be automatically created from the applications vendor and app name. |
void wxNotificationMessage::SetFlags | ( | int | flags | ) |
This parameter can be currently used to specify the icon to show in the notification.
Valid values are wxICON_INFORMATION
, wxICON_WARNING
and wxICON_ERROR
(notice that wxICON_QUESTION
is not allowed here). Some implementations of this class may not support the icons.
void wxNotificationMessage::SetIcon | ( | const wxIcon & | icon | ) |
Specify a custom icon to be displayed in the notification.
Some implementations of this class may not support custom icons.
void wxNotificationMessage::SetMessage | ( | const wxString & | message | ) |
Set the main text of the notification.
This should be a more detailed description than the title but still limited to reasonable length (not more than 256 characters).
void wxNotificationMessage::SetParent | ( | wxWindow * | parent | ) |
Set the parent for this notification: the notification will be associated with the top level parent of this window or, if this method is not called, with the main application window by default.
void wxNotificationMessage::SetTitle | ( | const wxString & | title | ) |
Set the title, it must be a concise string (not more than 64 characters), use SetMessage() to give the user more details.
|
virtual |
Show the notification to the user and hides it after timeout seconds are elapsed.
Special values Timeout_Auto
and Timeout_Never
can be used here, notice that you shouldn't rely on timeout being exactly respected because the current platform may only support default timeout value and also because the user may be able to close the notification.
wxICON_WARNING
or wxICON_ERROR
flags, they always remain shown unless they're explicitly hidden by the user, i.e. behave as if Timeout_Auto were given.
|
static |
If the application already uses a wxTaskBarIcon, it should be connected to notifications by using this method.
This has no effect if toast notifications are used.
NULL
)