packages feed

gi-gio-0.2.46.13: GI/Gio/Interfaces/RemoteActionGroup.hs


{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.Gio.Interfaces.RemoteActionGroup
    ( 

-- * Exported types
    RemoteActionGroup(..)                   ,
    noRemoteActionGroup                     ,
    RemoteActionGroupK                      ,
    toRemoteActionGroup                     ,


 -- * Methods
-- ** remoteActionGroupActivateActionFull
    RemoteActionGroupActivateActionFullMethodInfo,
    remoteActionGroupActivateActionFull     ,


-- ** remoteActionGroupChangeActionStateFull
    RemoteActionGroupChangeActionStateFullMethodInfo,
    remoteActionGroupChangeActionStateFull  ,




    ) where

import Prelude ()
import Data.GI.Base.ShortPrelude

import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map

import GI.Gio.Types
import GI.Gio.Callbacks
import qualified GI.GObject as GObject

-- interface RemoteActionGroup 

newtype RemoteActionGroup = RemoteActionGroup (ForeignPtr RemoteActionGroup)
noRemoteActionGroup :: Maybe RemoteActionGroup
noRemoteActionGroup = Nothing

type family ResolveRemoteActionGroupMethod (t :: Symbol) (o :: *) :: * where
    ResolveRemoteActionGroupMethod "actionAdded" o = ActionGroupActionAddedMethodInfo
    ResolveRemoteActionGroupMethod "actionEnabledChanged" o = ActionGroupActionEnabledChangedMethodInfo
    ResolveRemoteActionGroupMethod "actionRemoved" o = ActionGroupActionRemovedMethodInfo
    ResolveRemoteActionGroupMethod "actionStateChanged" o = ActionGroupActionStateChangedMethodInfo
    ResolveRemoteActionGroupMethod "activateAction" o = ActionGroupActivateActionMethodInfo
    ResolveRemoteActionGroupMethod "activateActionFull" o = RemoteActionGroupActivateActionFullMethodInfo
    ResolveRemoteActionGroupMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
    ResolveRemoteActionGroupMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
    ResolveRemoteActionGroupMethod "changeActionState" o = ActionGroupChangeActionStateMethodInfo
    ResolveRemoteActionGroupMethod "changeActionStateFull" o = RemoteActionGroupChangeActionStateFullMethodInfo
    ResolveRemoteActionGroupMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
    ResolveRemoteActionGroupMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
    ResolveRemoteActionGroupMethod "hasAction" o = ActionGroupHasActionMethodInfo
    ResolveRemoteActionGroupMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
    ResolveRemoteActionGroupMethod "listActions" o = ActionGroupListActionsMethodInfo
    ResolveRemoteActionGroupMethod "notify" o = GObject.ObjectNotifyMethodInfo
    ResolveRemoteActionGroupMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
    ResolveRemoteActionGroupMethod "queryAction" o = ActionGroupQueryActionMethodInfo
    ResolveRemoteActionGroupMethod "ref" o = GObject.ObjectRefMethodInfo
    ResolveRemoteActionGroupMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
    ResolveRemoteActionGroupMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
    ResolveRemoteActionGroupMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
    ResolveRemoteActionGroupMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
    ResolveRemoteActionGroupMethod "stealData" o = GObject.ObjectStealDataMethodInfo
    ResolveRemoteActionGroupMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
    ResolveRemoteActionGroupMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
    ResolveRemoteActionGroupMethod "unref" o = GObject.ObjectUnrefMethodInfo
    ResolveRemoteActionGroupMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
    ResolveRemoteActionGroupMethod "getActionEnabled" o = ActionGroupGetActionEnabledMethodInfo
    ResolveRemoteActionGroupMethod "getActionParameterType" o = ActionGroupGetActionParameterTypeMethodInfo
    ResolveRemoteActionGroupMethod "getActionState" o = ActionGroupGetActionStateMethodInfo
    ResolveRemoteActionGroupMethod "getActionStateHint" o = ActionGroupGetActionStateHintMethodInfo
    ResolveRemoteActionGroupMethod "getActionStateType" o = ActionGroupGetActionStateTypeMethodInfo
    ResolveRemoteActionGroupMethod "getData" o = GObject.ObjectGetDataMethodInfo
    ResolveRemoteActionGroupMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
    ResolveRemoteActionGroupMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
    ResolveRemoteActionGroupMethod "setData" o = GObject.ObjectSetDataMethodInfo
    ResolveRemoteActionGroupMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
    ResolveRemoteActionGroupMethod l o = MethodResolutionFailed l o

instance (info ~ ResolveRemoteActionGroupMethod t RemoteActionGroup, MethodInfo info RemoteActionGroup p) => IsLabelProxy t (RemoteActionGroup -> p) where
    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveRemoteActionGroupMethod t RemoteActionGroup, MethodInfo info RemoteActionGroup p) => IsLabel t (RemoteActionGroup -> p) where
    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif

type instance AttributeList RemoteActionGroup = RemoteActionGroupAttributeList
type RemoteActionGroupAttributeList = ('[ ] :: [(Symbol, *)])

type instance SignalList RemoteActionGroup = RemoteActionGroupSignalList
type RemoteActionGroupSignalList = ('[ '("actionAdded", ActionGroupActionAddedSignalInfo), '("actionEnabledChanged", ActionGroupActionEnabledChangedSignalInfo), '("actionRemoved", ActionGroupActionRemovedSignalInfo), '("actionStateChanged", ActionGroupActionStateChangedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])

foreign import ccall "g_remote_action_group_get_type"
    c_g_remote_action_group_get_type :: IO GType

type instance ParentTypes RemoteActionGroup = RemoteActionGroupParentTypes
type RemoteActionGroupParentTypes = '[ActionGroup, GObject.Object]

instance GObject RemoteActionGroup where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_g_remote_action_group_get_type
    

class GObject o => RemoteActionGroupK o
instance (GObject o, IsDescendantOf RemoteActionGroup o) => RemoteActionGroupK o

toRemoteActionGroup :: RemoteActionGroupK o => o -> IO RemoteActionGroup
toRemoteActionGroup = unsafeCastTo RemoteActionGroup

-- method RemoteActionGroup::activate_action_full
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "RemoteActionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "action_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "parameter", argType = TVariant, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "platform_data", argType = TVariant, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "g_remote_action_group_activate_action_full" g_remote_action_group_activate_action_full :: 
    Ptr RemoteActionGroup ->                -- _obj : TInterface "Gio" "RemoteActionGroup"
    CString ->                              -- action_name : TBasicType TUTF8
    Ptr GVariant ->                         -- parameter : TVariant
    Ptr GVariant ->                         -- platform_data : TVariant
    IO ()


remoteActionGroupActivateActionFull ::
    (MonadIO m, RemoteActionGroupK a) =>
    a                                       -- _obj
    -> T.Text                               -- actionName
    -> Maybe (GVariant)                     -- parameter
    -> GVariant                             -- platformData
    -> m ()                                 -- result
remoteActionGroupActivateActionFull _obj actionName parameter platformData = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    actionName' <- textToCString actionName
    maybeParameter <- case parameter of
        Nothing -> return nullPtr
        Just jParameter -> do
            let jParameter' = unsafeManagedPtrGetPtr jParameter
            return jParameter'
    let platformData' = unsafeManagedPtrGetPtr platformData
    g_remote_action_group_activate_action_full _obj' actionName' maybeParameter platformData'
    touchManagedPtr _obj
    freeMem actionName'
    return ()

data RemoteActionGroupActivateActionFullMethodInfo
instance (signature ~ (T.Text -> Maybe (GVariant) -> GVariant -> m ()), MonadIO m, RemoteActionGroupK a) => MethodInfo RemoteActionGroupActivateActionFullMethodInfo a signature where
    overloadedMethod _ = remoteActionGroupActivateActionFull

-- method RemoteActionGroup::change_action_state_full
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "RemoteActionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "action_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TVariant, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "platform_data", argType = TVariant, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "g_remote_action_group_change_action_state_full" g_remote_action_group_change_action_state_full :: 
    Ptr RemoteActionGroup ->                -- _obj : TInterface "Gio" "RemoteActionGroup"
    CString ->                              -- action_name : TBasicType TUTF8
    Ptr GVariant ->                         -- value : TVariant
    Ptr GVariant ->                         -- platform_data : TVariant
    IO ()


remoteActionGroupChangeActionStateFull ::
    (MonadIO m, RemoteActionGroupK a) =>
    a                                       -- _obj
    -> T.Text                               -- actionName
    -> GVariant                             -- value
    -> GVariant                             -- platformData
    -> m ()                                 -- result
remoteActionGroupChangeActionStateFull _obj actionName value platformData = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    actionName' <- textToCString actionName
    let value' = unsafeManagedPtrGetPtr value
    let platformData' = unsafeManagedPtrGetPtr platformData
    g_remote_action_group_change_action_state_full _obj' actionName' value' platformData'
    touchManagedPtr _obj
    freeMem actionName'
    return ()

data RemoteActionGroupChangeActionStateFullMethodInfo
instance (signature ~ (T.Text -> GVariant -> GVariant -> m ()), MonadIO m, RemoteActionGroupK a) => MethodInfo RemoteActionGroupChangeActionStateFullMethodInfo a signature where
    overloadedMethod _ = remoteActionGroupChangeActionStateFull