Copyright | Will Thompson and Iñaki García Etxebarria |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | None |
Language | Haskell2010 |
GNotification
is a mechanism for creating a notification to be shown
to the user — typically as a pop-up notification presented by the
desktop environment shell.
The key difference between GNotification
and other similar APIs is
that, if supported by the desktop environment, notifications sent
with GNotification
will persist after the application has exited,
and even across system reboots.
Since the user may click on a notification while the application is
not running, applications using GNotification
should be able to be
started as a D-Bus service, using Application
.
In order for GNotification
to work, the application must have installed
a .desktop
file. For example:
>[Desktop Entry]
>Name=Test Application
>Comment=Description of what Test Application does
>Exec=gnome-test-application
>Icon=org.gnome.TestApplication
>Terminal=false
>Type=Application
>Categories=GNOME;GTK;TestApplication Category;
>StartupNotify=true
>DBusActivatable=true
>X-GNOME-UsesNotifications=true
The X-GNOME-UsesNotifications
key indicates to GNOME Control Center
that this application uses notifications, so it can be listed in the
Control Center’s ‘Notifications’ panel.
The .desktop
file must be named as org.gnome.TestApplication.desktop
,
where org.gnome.TestApplication
is the ID passed to
applicationNew
.
User interaction with a notification (either the default action, or
buttons) must be associated with actions on the application (ie:
app.
actions). It is not possible to route user interaction
through the notification itself, because the object will not exist if
the application is autostarted as a result of a notification being
clicked.
A notification can be sent with applicationSendNotification
.
Since: 2.40
Synopsis
- newtype Notification = Notification (ManagedPtr Notification)
- class (GObject o, IsDescendantOf Notification o) => IsNotification o
- toNotification :: (MonadIO m, IsNotification o) => o -> m Notification
- notificationAddButton :: (HasCallStack, MonadIO m, IsNotification a) => a -> Text -> Text -> m ()
- notificationAddButtonWithTarget :: (HasCallStack, MonadIO m, IsNotification a) => a -> Text -> Text -> Maybe GVariant -> m ()
- notificationNew :: (HasCallStack, MonadIO m) => Text -> m Notification
- notificationSetBody :: (HasCallStack, MonadIO m, IsNotification a) => a -> Maybe Text -> m ()
- notificationSetCategory :: (HasCallStack, MonadIO m, IsNotification a) => a -> Maybe Text -> m ()
- notificationSetDefaultAction :: (HasCallStack, MonadIO m, IsNotification a) => a -> Text -> m ()
- notificationSetDefaultActionAndTarget :: (HasCallStack, MonadIO m, IsNotification a) => a -> Text -> Maybe GVariant -> m ()
- notificationSetIcon :: (HasCallStack, MonadIO m, IsNotification a, IsIcon b) => a -> b -> m ()
- notificationSetPriority :: (HasCallStack, MonadIO m, IsNotification a) => a -> NotificationPriority -> m ()
- notificationSetTitle :: (HasCallStack, MonadIO m, IsNotification a) => a -> Text -> m ()
- notificationSetUrgent :: (HasCallStack, MonadIO m, IsNotification a) => a -> Bool -> m ()
Exported types
newtype Notification Source #
Memory-managed wrapper type.
Instances
Eq Notification Source # | |
Defined in GI.Gio.Objects.Notification (==) :: Notification -> Notification -> Bool # (/=) :: Notification -> Notification -> Bool # | |
GObject Notification Source # | |
Defined in GI.Gio.Objects.Notification | |
ManagedPtrNewtype Notification Source # | |
Defined in GI.Gio.Objects.Notification | |
TypedObject Notification Source # | |
Defined in GI.Gio.Objects.Notification | |
HasParentTypes Notification Source # | |
Defined in GI.Gio.Objects.Notification | |
IsGValue (Maybe Notification) Source # | Convert |
Defined in GI.Gio.Objects.Notification gvalueGType_ :: IO GType # gvalueSet_ :: Ptr GValue -> Maybe Notification -> IO () # gvalueGet_ :: Ptr GValue -> IO (Maybe Notification) # | |
type ParentTypes Notification Source # | |
Defined in GI.Gio.Objects.Notification type ParentTypes Notification = '[Object] |
class (GObject o, IsDescendantOf Notification o) => IsNotification o Source #
Type class for types which can be safely cast to Notification
, for instance with toNotification
.
Instances
(GObject o, IsDescendantOf Notification o) => IsNotification o Source # | |
Defined in GI.Gio.Objects.Notification |
toNotification :: (MonadIO m, IsNotification o) => o -> m Notification Source #
Cast to Notification
, for types for which this is known to be safe. For general casts, use castTo
.
Methods
Click to display all available methods, including inherited ones
Methods
addButton, addButtonWithTarget, bindProperty, bindPropertyFull, forceFloating, freezeNotify, getv, isFloating, notify, notifyByPspec, ref, refSink, runDispose, stealData, stealQdata, thawNotify, unref, watchClosure.
Getters
getData, getProperty, getQdata.
Setters
setBody, setCategory, setData, setDataFull, setDefaultAction, setDefaultActionAndTarget, setIcon, setPriority, setProperty, setTitle, setUrgent.
addButton
notificationAddButton Source #
:: (HasCallStack, MonadIO m, IsNotification a) | |
=> a |
|
-> Text |
|
-> Text |
|
-> m () |
Adds a button to notification
that activates the action in
detailedAction
when clicked. That action must be an
application-wide action (starting with "app."). If detailedAction
contains a target, the action will be activated with that target as
its parameter.
See actionParseDetailedName
for a description of the format
for detailedAction
.
Since: 2.40
addButtonWithTarget
notificationAddButtonWithTarget Source #
:: (HasCallStack, MonadIO m, IsNotification a) | |
=> a |
|
-> Text |
|
-> Text |
|
-> Maybe GVariant | |
-> m () |
Adds a button to notification
that activates action
when clicked.
action
must be an application-wide action (it must start with "app.").
If target
is non-Nothing
, action
will be activated with target
as
its parameter.
Since: 2.40
new
:: (HasCallStack, MonadIO m) | |
=> Text |
|
-> m Notification | Returns: a new |
Creates a new Notification
with title
as its title.
After populating notification
with more details, it can be sent to
the desktop shell with applicationSendNotification
. Changing
any properties after this call will not have any effect until
resending notification
.
Since: 2.40
setBody
:: (HasCallStack, MonadIO m, IsNotification a) | |
=> a |
|
-> Maybe Text |
|
-> m () |
Sets the body of notification
to body
.
Since: 2.40
setCategory
notificationSetCategory Source #
:: (HasCallStack, MonadIO m, IsNotification a) | |
=> a |
|
-> Maybe Text |
|
-> m () |
Sets the type of notification
to category
. Categories have a main
type like email
, im
or device
and can have a detail separated
by a .
, e.g. im.received
or email.arrived
. Setting the category
helps the notification server to select proper feedback to the user.
Standard categories are listed in the specification.
Since: 2.70
setDefaultAction
notificationSetDefaultAction Source #
:: (HasCallStack, MonadIO m, IsNotification a) | |
=> a |
|
-> Text |
|
-> m () |
Sets the default action of notification
to detailedAction
. This
action is activated when the notification is clicked on.
The action in detailedAction
must be an application-wide action (it
must start with "app."). If detailedAction
contains a target, the
given action will be activated with that target as its parameter.
See actionParseDetailedName
for a description of the format
for detailedAction
.
When no default action is set, the application that the notification was sent on is activated.
Since: 2.40
setDefaultActionAndTarget
notificationSetDefaultActionAndTarget Source #
:: (HasCallStack, MonadIO m, IsNotification a) | |
=> a |
|
-> Text |
|
-> Maybe GVariant | |
-> m () |
Sets the default action of notification
to action
. This action is
activated when the notification is clicked on. It must be an
application-wide action (start with "app.").
If target
is non-Nothing
, action
will be activated with target
as
its parameter. If target
is floating, it will be consumed.
When no default action is set, the application that the notification was sent on is activated.
Since: 2.40
setIcon
:: (HasCallStack, MonadIO m, IsNotification a, IsIcon b) | |
=> a |
|
-> b |
|
-> m () |
Sets the icon of notification
to icon
.
Since: 2.40
setPriority
notificationSetPriority Source #
:: (HasCallStack, MonadIO m, IsNotification a) | |
=> a |
|
-> NotificationPriority |
|
-> m () |
Sets the priority of notification
to priority
. See
NotificationPriority
for possible values.
setTitle
:: (HasCallStack, MonadIO m, IsNotification a) | |
=> a |
|
-> Text |
|
-> m () |
Sets the title of notification
to title
.
Since: 2.40
setUrgent
notificationSetUrgent Source #
:: (HasCallStack, MonadIO m, IsNotification a) | |
=> a |
|
-> Bool |
|
-> m () |
Deprecated: (Since version 2.42)Since 2.42, this has been deprecated in favour ofnotificationSetPriority
.
Deprecated in favor of notificationSetPriority
.
Since: 2.40