gi-gio-2.0.20: GI/Gio/Objects/Notification.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)
'GI.Gio.Objects.Notification.Notification' 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 'GI.Gio.Objects.Notification.Notification' and other similar APIs is
that, if supported by the desktop environment, notifications sent
with 'GI.Gio.Objects.Notification.Notification' 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 'GI.Gio.Objects.Notification.Notification' should be able to be
started as a D-Bus service, using 'GI.Gio.Objects.Application.Application'.
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 'GI.Gio.Objects.Application.applicationSendNotification'.
/Since: 2.40/
-}
#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Gio.Objects.Notification
(
-- * Exported types
Notification(..) ,
IsNotification ,
toNotification ,
noNotification ,
-- * Methods
-- ** addButton #method:addButton#
#if ENABLE_OVERLOADING
NotificationAddButtonMethodInfo ,
#endif
notificationAddButton ,
-- ** addButtonWithTarget #method:addButtonWithTarget#
#if ENABLE_OVERLOADING
NotificationAddButtonWithTargetMethodInfo,
#endif
notificationAddButtonWithTarget ,
-- ** new #method:new#
notificationNew ,
-- ** setBody #method:setBody#
#if ENABLE_OVERLOADING
NotificationSetBodyMethodInfo ,
#endif
notificationSetBody ,
-- ** setDefaultAction #method:setDefaultAction#
#if ENABLE_OVERLOADING
NotificationSetDefaultActionMethodInfo ,
#endif
notificationSetDefaultAction ,
-- ** setDefaultActionAndTarget #method:setDefaultActionAndTarget#
#if ENABLE_OVERLOADING
NotificationSetDefaultActionAndTargetMethodInfo,
#endif
notificationSetDefaultActionAndTarget ,
-- ** setIcon #method:setIcon#
#if ENABLE_OVERLOADING
NotificationSetIconMethodInfo ,
#endif
notificationSetIcon ,
-- ** setPriority #method:setPriority#
#if ENABLE_OVERLOADING
NotificationSetPriorityMethodInfo ,
#endif
notificationSetPriority ,
-- ** setTitle #method:setTitle#
#if ENABLE_OVERLOADING
NotificationSetTitleMethodInfo ,
#endif
notificationSetTitle ,
-- ** setUrgent #method:setUrgent#
#if ENABLE_OVERLOADING
NotificationSetUrgentMethodInfo ,
#endif
notificationSetUrgent ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Gio.Enums as Gio.Enums
import {-# SOURCE #-} qualified GI.Gio.Interfaces.Icon as Gio.Icon
-- | Memory-managed wrapper type.
newtype Notification = Notification (ManagedPtr Notification)
foreign import ccall "g_notification_get_type"
c_g_notification_get_type :: IO GType
instance GObject Notification where
gobjectType = c_g_notification_get_type
-- | Type class for types which can be safely cast to `Notification`, for instance with `toNotification`.
class (GObject o, O.IsDescendantOf Notification o) => IsNotification o
instance (GObject o, O.IsDescendantOf Notification o) => IsNotification o
instance O.HasParentTypes Notification
type instance O.ParentTypes Notification = '[GObject.Object.Object]
-- | Cast to `Notification`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toNotification :: (MonadIO m, IsNotification o) => o -> m Notification
toNotification = liftIO . unsafeCastTo Notification
-- | A convenience alias for `Nothing` :: `Maybe` `Notification`.
noNotification :: Maybe Notification
noNotification = Nothing
#if ENABLE_OVERLOADING
type family ResolveNotificationMethod (t :: Symbol) (o :: *) :: * where
ResolveNotificationMethod "addButton" o = NotificationAddButtonMethodInfo
ResolveNotificationMethod "addButtonWithTarget" o = NotificationAddButtonWithTargetMethodInfo
ResolveNotificationMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveNotificationMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveNotificationMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveNotificationMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveNotificationMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveNotificationMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveNotificationMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveNotificationMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveNotificationMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveNotificationMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveNotificationMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveNotificationMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveNotificationMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveNotificationMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveNotificationMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveNotificationMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveNotificationMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveNotificationMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveNotificationMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveNotificationMethod "setBody" o = NotificationSetBodyMethodInfo
ResolveNotificationMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveNotificationMethod "setDefaultAction" o = NotificationSetDefaultActionMethodInfo
ResolveNotificationMethod "setDefaultActionAndTarget" o = NotificationSetDefaultActionAndTargetMethodInfo
ResolveNotificationMethod "setIcon" o = NotificationSetIconMethodInfo
ResolveNotificationMethod "setPriority" o = NotificationSetPriorityMethodInfo
ResolveNotificationMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveNotificationMethod "setTitle" o = NotificationSetTitleMethodInfo
ResolveNotificationMethod "setUrgent" o = NotificationSetUrgentMethodInfo
ResolveNotificationMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveNotificationMethod t Notification, O.MethodInfo info Notification p) => OL.IsLabel t (Notification -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList Notification
type instance O.AttributeList Notification = NotificationAttributeList
type NotificationAttributeList = ('[ ] :: [(Symbol, *)])
#endif
#if ENABLE_OVERLOADING
#endif
#if ENABLE_OVERLOADING
type instance O.SignalList Notification = NotificationSignalList
type NotificationSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
-- method Notification::new
-- method type : Constructor
-- Args : [Arg {argCName = "title", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the title of the notification", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gio", name = "Notification"}))
-- throws : False
-- Skip return : False
foreign import ccall "g_notification_new" g_notification_new ::
CString -> -- title : TBasicType TUTF8
IO (Ptr Notification)
{- |
Creates a new 'GI.Gio.Objects.Notification.Notification' with /@title@/ as its title.
After populating /@notification@/ with more details, it can be sent to
the desktop shell with 'GI.Gio.Objects.Application.applicationSendNotification'. Changing
any properties after this call will not have any effect until
resending /@notification@/.
/Since: 2.40/
-}
notificationNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
{- ^ /@title@/: the title of the notification -}
-> m Notification
{- ^ __Returns:__ a new 'GI.Gio.Objects.Notification.Notification' instance -}
notificationNew title = liftIO $ do
title' <- textToCString title
result <- g_notification_new title'
checkUnexpectedReturnNULL "notificationNew" result
result' <- (wrapObject Notification) result
freeMem title'
return result'
#if ENABLE_OVERLOADING
#endif
-- method Notification::add_button
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "notification", argType = TInterface (Name {namespace = "Gio", name = "Notification"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GNotification", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "label", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "label of the button", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "detailed_action", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a detailed action name", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_notification_add_button" g_notification_add_button ::
Ptr Notification -> -- notification : TInterface (Name {namespace = "Gio", name = "Notification"})
CString -> -- label : TBasicType TUTF8
CString -> -- detailed_action : TBasicType TUTF8
IO ()
{- |
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 'GI.Gio.Functions.actionParseDetailedName' for a description of the format
for /@detailedAction@/.
/Since: 2.40/
-}
notificationAddButton ::
(B.CallStack.HasCallStack, MonadIO m, IsNotification a) =>
a
{- ^ /@notification@/: a 'GI.Gio.Objects.Notification.Notification' -}
-> T.Text
{- ^ /@label@/: label of the button -}
-> T.Text
{- ^ /@detailedAction@/: a detailed action name -}
-> m ()
notificationAddButton notification label detailedAction = liftIO $ do
notification' <- unsafeManagedPtrCastPtr notification
label' <- textToCString label
detailedAction' <- textToCString detailedAction
g_notification_add_button notification' label' detailedAction'
touchManagedPtr notification
freeMem label'
freeMem detailedAction'
return ()
#if ENABLE_OVERLOADING
data NotificationAddButtonMethodInfo
instance (signature ~ (T.Text -> T.Text -> m ()), MonadIO m, IsNotification a) => O.MethodInfo NotificationAddButtonMethodInfo a signature where
overloadedMethod _ = notificationAddButton
#endif
-- method Notification::add_button_with_target
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "notification", argType = TInterface (Name {namespace = "Gio", name = "Notification"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GNotification", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "label", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "label of the button", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "action", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an action name", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "target", argType = TVariant, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GVariant to use as @action's parameter, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_notification_add_button_with_target_value" g_notification_add_button_with_target_value ::
Ptr Notification -> -- notification : TInterface (Name {namespace = "Gio", name = "Notification"})
CString -> -- label : TBasicType TUTF8
CString -> -- action : TBasicType TUTF8
Ptr GVariant -> -- target : TVariant
IO ()
{- |
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/
-}
notificationAddButtonWithTarget ::
(B.CallStack.HasCallStack, MonadIO m, IsNotification a) =>
a
{- ^ /@notification@/: a 'GI.Gio.Objects.Notification.Notification' -}
-> T.Text
{- ^ /@label@/: label of the button -}
-> T.Text
{- ^ /@action@/: an action name -}
-> Maybe (GVariant)
{- ^ /@target@/: a 'GVariant' to use as /@action@/\'s parameter, or 'Nothing' -}
-> m ()
notificationAddButtonWithTarget notification label action target = liftIO $ do
notification' <- unsafeManagedPtrCastPtr notification
label' <- textToCString label
action' <- textToCString action
maybeTarget <- case target of
Nothing -> return nullPtr
Just jTarget -> do
jTarget' <- unsafeManagedPtrGetPtr jTarget
return jTarget'
g_notification_add_button_with_target_value notification' label' action' maybeTarget
touchManagedPtr notification
whenJust target touchManagedPtr
freeMem label'
freeMem action'
return ()
#if ENABLE_OVERLOADING
data NotificationAddButtonWithTargetMethodInfo
instance (signature ~ (T.Text -> T.Text -> Maybe (GVariant) -> m ()), MonadIO m, IsNotification a) => O.MethodInfo NotificationAddButtonWithTargetMethodInfo a signature where
overloadedMethod _ = notificationAddButtonWithTarget
#endif
-- method Notification::set_body
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "notification", argType = TInterface (Name {namespace = "Gio", name = "Notification"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GNotification", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "body", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the new body for @notification, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_notification_set_body" g_notification_set_body ::
Ptr Notification -> -- notification : TInterface (Name {namespace = "Gio", name = "Notification"})
CString -> -- body : TBasicType TUTF8
IO ()
{- |
Sets the body of /@notification@/ to /@body@/.
/Since: 2.40/
-}
notificationSetBody ::
(B.CallStack.HasCallStack, MonadIO m, IsNotification a) =>
a
{- ^ /@notification@/: a 'GI.Gio.Objects.Notification.Notification' -}
-> Maybe (T.Text)
{- ^ /@body@/: the new body for /@notification@/, or 'Nothing' -}
-> m ()
notificationSetBody notification body = liftIO $ do
notification' <- unsafeManagedPtrCastPtr notification
maybeBody <- case body of
Nothing -> return nullPtr
Just jBody -> do
jBody' <- textToCString jBody
return jBody'
g_notification_set_body notification' maybeBody
touchManagedPtr notification
freeMem maybeBody
return ()
#if ENABLE_OVERLOADING
data NotificationSetBodyMethodInfo
instance (signature ~ (Maybe (T.Text) -> m ()), MonadIO m, IsNotification a) => O.MethodInfo NotificationSetBodyMethodInfo a signature where
overloadedMethod _ = notificationSetBody
#endif
-- method Notification::set_default_action
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "notification", argType = TInterface (Name {namespace = "Gio", name = "Notification"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GNotification", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "detailed_action", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a detailed action name", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_notification_set_default_action" g_notification_set_default_action ::
Ptr Notification -> -- notification : TInterface (Name {namespace = "Gio", name = "Notification"})
CString -> -- detailed_action : TBasicType TUTF8
IO ()
{- |
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 'GI.Gio.Functions.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/
-}
notificationSetDefaultAction ::
(B.CallStack.HasCallStack, MonadIO m, IsNotification a) =>
a
{- ^ /@notification@/: a 'GI.Gio.Objects.Notification.Notification' -}
-> T.Text
{- ^ /@detailedAction@/: a detailed action name -}
-> m ()
notificationSetDefaultAction notification detailedAction = liftIO $ do
notification' <- unsafeManagedPtrCastPtr notification
detailedAction' <- textToCString detailedAction
g_notification_set_default_action notification' detailedAction'
touchManagedPtr notification
freeMem detailedAction'
return ()
#if ENABLE_OVERLOADING
data NotificationSetDefaultActionMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsNotification a) => O.MethodInfo NotificationSetDefaultActionMethodInfo a signature where
overloadedMethod _ = notificationSetDefaultAction
#endif
-- method Notification::set_default_action_and_target
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "notification", argType = TInterface (Name {namespace = "Gio", name = "Notification"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GNotification", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "action", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an action name", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "target", argType = TVariant, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GVariant to use as @action's parameter, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_notification_set_default_action_and_target_value" g_notification_set_default_action_and_target_value ::
Ptr Notification -> -- notification : TInterface (Name {namespace = "Gio", name = "Notification"})
CString -> -- action : TBasicType TUTF8
Ptr GVariant -> -- target : TVariant
IO ()
{- |
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.
When no default action is set, the application that the notification
was sent on is activated.
/Since: 2.40/
-}
notificationSetDefaultActionAndTarget ::
(B.CallStack.HasCallStack, MonadIO m, IsNotification a) =>
a
{- ^ /@notification@/: a 'GI.Gio.Objects.Notification.Notification' -}
-> T.Text
{- ^ /@action@/: an action name -}
-> Maybe (GVariant)
{- ^ /@target@/: a 'GVariant' to use as /@action@/\'s parameter, or 'Nothing' -}
-> m ()
notificationSetDefaultActionAndTarget notification action target = liftIO $ do
notification' <- unsafeManagedPtrCastPtr notification
action' <- textToCString action
maybeTarget <- case target of
Nothing -> return nullPtr
Just jTarget -> do
jTarget' <- unsafeManagedPtrGetPtr jTarget
return jTarget'
g_notification_set_default_action_and_target_value notification' action' maybeTarget
touchManagedPtr notification
whenJust target touchManagedPtr
freeMem action'
return ()
#if ENABLE_OVERLOADING
data NotificationSetDefaultActionAndTargetMethodInfo
instance (signature ~ (T.Text -> Maybe (GVariant) -> m ()), MonadIO m, IsNotification a) => O.MethodInfo NotificationSetDefaultActionAndTargetMethodInfo a signature where
overloadedMethod _ = notificationSetDefaultActionAndTarget
#endif
-- method Notification::set_icon
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "notification", argType = TInterface (Name {namespace = "Gio", name = "Notification"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GNotification", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "icon", argType = TInterface (Name {namespace = "Gio", name = "Icon"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the icon to be shown in @notification, as a #GIcon", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_notification_set_icon" g_notification_set_icon ::
Ptr Notification -> -- notification : TInterface (Name {namespace = "Gio", name = "Notification"})
Ptr Gio.Icon.Icon -> -- icon : TInterface (Name {namespace = "Gio", name = "Icon"})
IO ()
{- |
Sets the icon of /@notification@/ to /@icon@/.
/Since: 2.40/
-}
notificationSetIcon ::
(B.CallStack.HasCallStack, MonadIO m, IsNotification a, Gio.Icon.IsIcon b) =>
a
{- ^ /@notification@/: a 'GI.Gio.Objects.Notification.Notification' -}
-> b
{- ^ /@icon@/: the icon to be shown in /@notification@/, as a 'GI.Gio.Interfaces.Icon.Icon' -}
-> m ()
notificationSetIcon notification icon = liftIO $ do
notification' <- unsafeManagedPtrCastPtr notification
icon' <- unsafeManagedPtrCastPtr icon
g_notification_set_icon notification' icon'
touchManagedPtr notification
touchManagedPtr icon
return ()
#if ENABLE_OVERLOADING
data NotificationSetIconMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsNotification a, Gio.Icon.IsIcon b) => O.MethodInfo NotificationSetIconMethodInfo a signature where
overloadedMethod _ = notificationSetIcon
#endif
-- method Notification::set_priority
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "notification", argType = TInterface (Name {namespace = "Gio", name = "Notification"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GNotification", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "priority", argType = TInterface (Name {namespace = "Gio", name = "NotificationPriority"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GNotificationPriority", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_notification_set_priority" g_notification_set_priority ::
Ptr Notification -> -- notification : TInterface (Name {namespace = "Gio", name = "Notification"})
CUInt -> -- priority : TInterface (Name {namespace = "Gio", name = "NotificationPriority"})
IO ()
{- |
Sets the priority of /@notification@/ to /@priority@/. See
'GI.Gio.Enums.NotificationPriority' for possible values.
-}
notificationSetPriority ::
(B.CallStack.HasCallStack, MonadIO m, IsNotification a) =>
a
{- ^ /@notification@/: a 'GI.Gio.Objects.Notification.Notification' -}
-> Gio.Enums.NotificationPriority
{- ^ /@priority@/: a 'GI.Gio.Enums.NotificationPriority' -}
-> m ()
notificationSetPriority notification priority = liftIO $ do
notification' <- unsafeManagedPtrCastPtr notification
let priority' = (fromIntegral . fromEnum) priority
g_notification_set_priority notification' priority'
touchManagedPtr notification
return ()
#if ENABLE_OVERLOADING
data NotificationSetPriorityMethodInfo
instance (signature ~ (Gio.Enums.NotificationPriority -> m ()), MonadIO m, IsNotification a) => O.MethodInfo NotificationSetPriorityMethodInfo a signature where
overloadedMethod _ = notificationSetPriority
#endif
-- method Notification::set_title
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "notification", argType = TInterface (Name {namespace = "Gio", name = "Notification"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GNotification", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "title", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the new title for @notification", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_notification_set_title" g_notification_set_title ::
Ptr Notification -> -- notification : TInterface (Name {namespace = "Gio", name = "Notification"})
CString -> -- title : TBasicType TUTF8
IO ()
{- |
Sets the title of /@notification@/ to /@title@/.
/Since: 2.40/
-}
notificationSetTitle ::
(B.CallStack.HasCallStack, MonadIO m, IsNotification a) =>
a
{- ^ /@notification@/: a 'GI.Gio.Objects.Notification.Notification' -}
-> T.Text
{- ^ /@title@/: the new title for /@notification@/ -}
-> m ()
notificationSetTitle notification title = liftIO $ do
notification' <- unsafeManagedPtrCastPtr notification
title' <- textToCString title
g_notification_set_title notification' title'
touchManagedPtr notification
freeMem title'
return ()
#if ENABLE_OVERLOADING
data NotificationSetTitleMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsNotification a) => O.MethodInfo NotificationSetTitleMethodInfo a signature where
overloadedMethod _ = notificationSetTitle
#endif
-- method Notification::set_urgent
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "notification", argType = TInterface (Name {namespace = "Gio", name = "Notification"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GNotification", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "urgent", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "%TRUE if @notification is urgent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_notification_set_urgent" g_notification_set_urgent ::
Ptr Notification -> -- notification : TInterface (Name {namespace = "Gio", name = "Notification"})
CInt -> -- urgent : TBasicType TBoolean
IO ()
{-# DEPRECATED notificationSetUrgent ["(Since version 2.42)","Since 2.42, this has been deprecated in favour of"," 'GI.Gio.Objects.Notification.notificationSetPriority'."] #-}
{- |
Deprecated in favor of 'GI.Gio.Objects.Notification.notificationSetPriority'.
/Since: 2.40/
-}
notificationSetUrgent ::
(B.CallStack.HasCallStack, MonadIO m, IsNotification a) =>
a
{- ^ /@notification@/: a 'GI.Gio.Objects.Notification.Notification' -}
-> Bool
{- ^ /@urgent@/: 'True' if /@notification@/ is urgent -}
-> m ()
notificationSetUrgent notification urgent = liftIO $ do
notification' <- unsafeManagedPtrCastPtr notification
let urgent' = (fromIntegral . fromEnum) urgent
g_notification_set_urgent notification' urgent'
touchManagedPtr notification
return ()
#if ENABLE_OVERLOADING
data NotificationSetUrgentMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsNotification a) => O.MethodInfo NotificationSetUrgentMethodInfo a signature where
overloadedMethod _ = notificationSetUrgent
#endif