gi-gio
CopyrightWill Thompson and Iñaki García Etxebarria
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria
Safe HaskellNone
LanguageHaskell2010

GI.Gio.Objects.Notification

Description

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

Exported types

newtype Notification Source #

Memory-managed wrapper type.

Instances

Instances details
Eq Notification Source # 
Instance details

Defined in GI.Gio.Objects.Notification

GObject Notification Source # 
Instance details

Defined in GI.Gio.Objects.Notification

ManagedPtrNewtype Notification Source # 
Instance details

Defined in GI.Gio.Objects.Notification

TypedObject Notification Source # 
Instance details

Defined in GI.Gio.Objects.Notification

Methods

glibType :: IO GType #

HasParentTypes Notification Source # 
Instance details

Defined in GI.Gio.Objects.Notification

HasAttributeList Notification Source # 
Instance details

Defined in GI.Gio.Objects.Notification

(info ~ ResolveNotificationMethod t Notification, OverloadedMethod info Notification p, HasField t Notification p) => HasField (t :: Symbol) Notification (p :: Type) Source # 
Instance details

Defined in GI.Gio.Objects.Notification

Methods

getField :: Notification -> p #

(info ~ ResolveNotificationMethod t Notification, OverloadedMethodInfo info Notification) => IsLabel t (MethodProxy info Notification) Source # 
Instance details

Defined in GI.Gio.Objects.Notification

(info ~ ResolveNotificationMethod t Notification, OverloadedMethod info Notification p) => IsLabel t (Notification -> p) Source # 
Instance details

Defined in GI.Gio.Objects.Notification

Methods

fromLabel :: Notification -> p #

IsGValue (Maybe Notification) Source #

Convert Notification to and from GValue. See toGValue and fromGValue.

Instance details

Defined in GI.Gio.Objects.Notification

type AttributeList Notification Source # 
Instance details

Defined in GI.Gio.Objects.Notification

type ParentTypes Notification Source # 
Instance details

Defined in GI.Gio.Objects.Notification

type SignalList Notification Source # 
Instance details

Defined in GI.Gio.Objects.Notification

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

Instances details
(GObject o, IsDescendantOf Notification o) => IsNotification o Source # 
Instance details

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

type family ResolveNotificationMethod (t :: Symbol) o where ... Source #

Equations

ResolveNotificationMethod "addButton" o = NotificationAddButtonMethodInfo 
ResolveNotificationMethod "addButtonWithTarget" o = NotificationAddButtonWithTargetMethodInfo 
ResolveNotificationMethod "bindProperty" o = ObjectBindPropertyMethodInfo 
ResolveNotificationMethod "bindPropertyFull" o = ObjectBindPropertyFullMethodInfo 
ResolveNotificationMethod "forceFloating" o = ObjectForceFloatingMethodInfo 
ResolveNotificationMethod "freezeNotify" o = ObjectFreezeNotifyMethodInfo 
ResolveNotificationMethod "getv" o = ObjectGetvMethodInfo 
ResolveNotificationMethod "isFloating" o = ObjectIsFloatingMethodInfo 
ResolveNotificationMethod "notify" o = ObjectNotifyMethodInfo 
ResolveNotificationMethod "notifyByPspec" o = ObjectNotifyByPspecMethodInfo 
ResolveNotificationMethod "ref" o = ObjectRefMethodInfo 
ResolveNotificationMethod "refSink" o = ObjectRefSinkMethodInfo 
ResolveNotificationMethod "runDispose" o = ObjectRunDisposeMethodInfo 
ResolveNotificationMethod "stealData" o = ObjectStealDataMethodInfo 
ResolveNotificationMethod "stealQdata" o = ObjectStealQdataMethodInfo 
ResolveNotificationMethod "thawNotify" o = ObjectThawNotifyMethodInfo 
ResolveNotificationMethod "unref" o = ObjectUnrefMethodInfo 
ResolveNotificationMethod "watchClosure" o = ObjectWatchClosureMethodInfo 
ResolveNotificationMethod "getData" o = ObjectGetDataMethodInfo 
ResolveNotificationMethod "getProperty" o = ObjectGetPropertyMethodInfo 
ResolveNotificationMethod "getQdata" o = ObjectGetQdataMethodInfo 
ResolveNotificationMethod "setBody" o = NotificationSetBodyMethodInfo 
ResolveNotificationMethod "setCategory" o = NotificationSetCategoryMethodInfo 
ResolveNotificationMethod "setData" o = ObjectSetDataMethodInfo 
ResolveNotificationMethod "setDataFull" o = ObjectSetDataFullMethodInfo 
ResolveNotificationMethod "setDefaultAction" o = NotificationSetDefaultActionMethodInfo 
ResolveNotificationMethod "setDefaultActionAndTarget" o = NotificationSetDefaultActionAndTargetMethodInfo 
ResolveNotificationMethod "setIcon" o = NotificationSetIconMethodInfo 
ResolveNotificationMethod "setPriority" o = NotificationSetPriorityMethodInfo 
ResolveNotificationMethod "setProperty" o = ObjectSetPropertyMethodInfo 
ResolveNotificationMethod "setTitle" o = NotificationSetTitleMethodInfo 
ResolveNotificationMethod "setUrgent" o = NotificationSetUrgentMethodInfo 
ResolveNotificationMethod l o = MethodResolutionFailed l o :: Type 

addButton

notificationAddButton Source #

Arguments

:: (HasCallStack, MonadIO m, IsNotification a) 
=> a

notification: a Notification

-> Text

label: label of the button

-> Text

detailedAction: a detailed action name

-> 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 #

Arguments

:: (HasCallStack, MonadIO m, IsNotification a) 
=> a

notification: a Notification

-> Text

label: label of the button

-> Text

action: an action name

-> Maybe GVariant

target: a GVariant to use as action's parameter, or Nothing

-> 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

notificationNew Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Text

title: the title of the notification

-> m Notification

Returns: a new Notification instance

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

data NotificationSetBodyMethodInfo Source #

Instances

Instances details
(signature ~ (Maybe Text -> m ()), MonadIO m, IsNotification a) => OverloadedMethod NotificationSetBodyMethodInfo a signature Source # 
Instance details

Defined in GI.Gio.Objects.Notification

Methods

overloadedMethod :: a -> signature #

OverloadedMethodInfo NotificationSetBodyMethodInfo (a :: Type) Source # 
Instance details

Defined in GI.Gio.Objects.Notification

notificationSetBody Source #

Arguments

:: (HasCallStack, MonadIO m, IsNotification a) 
=> a

notification: a Notification

-> Maybe Text

body: the new body for notification, or Nothing

-> m () 

Sets the body of notification to body.

Since: 2.40

setCategory

notificationSetCategory Source #

Arguments

:: (HasCallStack, MonadIO m, IsNotification a) 
=> a

notification: a Notification

-> Maybe Text

category: the category for notification, or Nothing for no category

-> 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 #

Arguments

:: (HasCallStack, MonadIO m, IsNotification a) 
=> a

notification: a Notification

-> Text

detailedAction: a detailed action name

-> 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 #

Arguments

:: (HasCallStack, MonadIO m, IsNotification a) 
=> a

notification: a Notification

-> Text

action: an action name

-> Maybe GVariant

target: a GVariant to use as action's parameter, or Nothing

-> 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

data NotificationSetIconMethodInfo Source #

Instances

Instances details
(signature ~ (b -> m ()), MonadIO m, IsNotification a, IsIcon b) => OverloadedMethod NotificationSetIconMethodInfo a signature Source # 
Instance details

Defined in GI.Gio.Objects.Notification

Methods

overloadedMethod :: a -> signature #

OverloadedMethodInfo NotificationSetIconMethodInfo (a :: Type) Source # 
Instance details

Defined in GI.Gio.Objects.Notification

notificationSetIcon Source #

Arguments

:: (HasCallStack, MonadIO m, IsNotification a, IsIcon b) 
=> a

notification: a Notification

-> b

icon: the icon to be shown in notification, as a Icon

-> m () 

Sets the icon of notification to icon.

Since: 2.40

setPriority

notificationSetPriority Source #

Arguments

:: (HasCallStack, MonadIO m, IsNotification a) 
=> a

notification: a Notification

-> NotificationPriority

priority: a NotificationPriority

-> m () 

Sets the priority of notification to priority. See NotificationPriority for possible values.

setTitle

data NotificationSetTitleMethodInfo Source #

Instances

Instances details
(signature ~ (Text -> m ()), MonadIO m, IsNotification a) => OverloadedMethod NotificationSetTitleMethodInfo a signature Source # 
Instance details

Defined in GI.Gio.Objects.Notification

Methods

overloadedMethod :: a -> signature #

OverloadedMethodInfo NotificationSetTitleMethodInfo (a :: Type) Source # 
Instance details

Defined in GI.Gio.Objects.Notification

notificationSetTitle Source #

Arguments

:: (HasCallStack, MonadIO m, IsNotification a) 
=> a

notification: a Notification

-> Text

title: the new title for notification

-> m () 

Sets the title of notification to title.

Since: 2.40

setUrgent

notificationSetUrgent Source #

Arguments

:: (HasCallStack, MonadIO m, IsNotification a) 
=> a

notification: a Notification

-> Bool

urgent: True if notification is urgent

-> m () 

Deprecated: (Since version 2.42)Since 2.42, this has been deprecated in favour ofnotificationSetPriority.

Deprecated in favor of notificationSetPriority.

Since: 2.40