packages feed

gi-gio-0.2.46.13: GI/Gio/Objects/SimpleActionGroup.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.Objects.SimpleActionGroup
    ( 

-- * Exported types
    SimpleActionGroup(..)                   ,
    SimpleActionGroupK                      ,
    toSimpleActionGroup                     ,
    noSimpleActionGroup                     ,


 -- * Methods
-- ** simpleActionGroupAddEntries
    SimpleActionGroupAddEntriesMethodInfo   ,
    simpleActionGroupAddEntries             ,


-- ** simpleActionGroupInsert
    SimpleActionGroupInsertMethodInfo       ,
    simpleActionGroupInsert                 ,


-- ** simpleActionGroupLookup
    SimpleActionGroupLookupMethodInfo       ,
    simpleActionGroupLookup                 ,


-- ** simpleActionGroupNew
    simpleActionGroupNew                    ,


-- ** simpleActionGroupRemove
    SimpleActionGroupRemoveMethodInfo       ,
    simpleActionGroupRemove                 ,




    ) 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

newtype SimpleActionGroup = SimpleActionGroup (ForeignPtr SimpleActionGroup)
foreign import ccall "g_simple_action_group_get_type"
    c_g_simple_action_group_get_type :: IO GType

type instance ParentTypes SimpleActionGroup = SimpleActionGroupParentTypes
type SimpleActionGroupParentTypes = '[GObject.Object, ActionGroup, ActionMap]

instance GObject SimpleActionGroup where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_g_simple_action_group_get_type
    

class GObject o => SimpleActionGroupK o
instance (GObject o, IsDescendantOf SimpleActionGroup o) => SimpleActionGroupK o

toSimpleActionGroup :: SimpleActionGroupK o => o -> IO SimpleActionGroup
toSimpleActionGroup = unsafeCastTo SimpleActionGroup

noSimpleActionGroup :: Maybe SimpleActionGroup
noSimpleActionGroup = Nothing

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

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

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

type instance AttributeList SimpleActionGroup = SimpleActionGroupAttributeList
type SimpleActionGroupAttributeList = ('[ ] :: [(Symbol, *)])

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

-- method SimpleActionGroup::new
-- method type : Constructor
-- Args : []
-- Lengths : []
-- returnType : TInterface "Gio" "SimpleActionGroup"
-- throws : False
-- Skip return : False

foreign import ccall "g_simple_action_group_new" g_simple_action_group_new :: 
    IO (Ptr SimpleActionGroup)


simpleActionGroupNew ::
    (MonadIO m) =>
    m SimpleActionGroup                     -- result
simpleActionGroupNew  = liftIO $ do
    result <- g_simple_action_group_new
    checkUnexpectedReturnNULL "g_simple_action_group_new" result
    result' <- (wrapObject SimpleActionGroup) result
    return result'

-- method SimpleActionGroup::add_entries
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "SimpleActionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "entries", argType = TCArray False (-1) 2 (TInterface "Gio" "ActionEntry"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_entries", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : [Arg {argCName = "n_entries", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "g_simple_action_group_add_entries" g_simple_action_group_add_entries :: 
    Ptr SimpleActionGroup ->                -- _obj : TInterface "Gio" "SimpleActionGroup"
    Ptr ActionEntry ->                      -- entries : TCArray False (-1) 2 (TInterface "Gio" "ActionEntry")
    Int32 ->                                -- n_entries : TBasicType TInt32
    Ptr () ->                               -- user_data : TBasicType TVoid
    IO ()

{-# DEPRECATED simpleActionGroupAddEntries ["(Since version 2.38)","Use g_action_map_add_action_entries()"]#-}
simpleActionGroupAddEntries ::
    (MonadIO m, SimpleActionGroupK a) =>
    a                                       -- _obj
    -> [ActionEntry]                        -- entries
    -> Ptr ()                               -- userData
    -> m ()                                 -- result
simpleActionGroupAddEntries _obj entries userData = liftIO $ do
    let nEntries = fromIntegral $ length entries
    let _obj' = unsafeManagedPtrCastPtr _obj
    let entries' = map unsafeManagedPtrGetPtr entries
    entries'' <- packBlockArray 64 entries'
    g_simple_action_group_add_entries _obj' entries'' nEntries userData
    touchManagedPtr _obj
    mapM_ touchManagedPtr entries
    freeMem entries''
    return ()

data SimpleActionGroupAddEntriesMethodInfo
instance (signature ~ ([ActionEntry] -> Ptr () -> m ()), MonadIO m, SimpleActionGroupK a) => MethodInfo SimpleActionGroupAddEntriesMethodInfo a signature where
    overloadedMethod _ = simpleActionGroupAddEntries

-- method SimpleActionGroup::insert
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "SimpleActionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "action", argType = TInterface "Gio" "Action", 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_simple_action_group_insert" g_simple_action_group_insert :: 
    Ptr SimpleActionGroup ->                -- _obj : TInterface "Gio" "SimpleActionGroup"
    Ptr Action ->                           -- action : TInterface "Gio" "Action"
    IO ()

{-# DEPRECATED simpleActionGroupInsert ["(Since version 2.38)","Use g_action_map_add_action()"]#-}
simpleActionGroupInsert ::
    (MonadIO m, SimpleActionGroupK a, ActionK b) =>
    a                                       -- _obj
    -> b                                    -- action
    -> m ()                                 -- result
simpleActionGroupInsert _obj action = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let action' = unsafeManagedPtrCastPtr action
    g_simple_action_group_insert _obj' action'
    touchManagedPtr _obj
    touchManagedPtr action
    return ()

data SimpleActionGroupInsertMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, SimpleActionGroupK a, ActionK b) => MethodInfo SimpleActionGroupInsertMethodInfo a signature where
    overloadedMethod _ = simpleActionGroupInsert

-- method SimpleActionGroup::lookup
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "SimpleActionGroup", 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}]
-- Lengths : []
-- returnType : TInterface "Gio" "Action"
-- throws : False
-- Skip return : False

foreign import ccall "g_simple_action_group_lookup" g_simple_action_group_lookup :: 
    Ptr SimpleActionGroup ->                -- _obj : TInterface "Gio" "SimpleActionGroup"
    CString ->                              -- action_name : TBasicType TUTF8
    IO (Ptr Action)

{-# DEPRECATED simpleActionGroupLookup ["(Since version 2.38)","Use g_action_map_lookup_action()"]#-}
simpleActionGroupLookup ::
    (MonadIO m, SimpleActionGroupK a) =>
    a                                       -- _obj
    -> T.Text                               -- actionName
    -> m Action                             -- result
simpleActionGroupLookup _obj actionName = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    actionName' <- textToCString actionName
    result <- g_simple_action_group_lookup _obj' actionName'
    checkUnexpectedReturnNULL "g_simple_action_group_lookup" result
    result' <- (newObject Action) result
    touchManagedPtr _obj
    freeMem actionName'
    return result'

data SimpleActionGroupLookupMethodInfo
instance (signature ~ (T.Text -> m Action), MonadIO m, SimpleActionGroupK a) => MethodInfo SimpleActionGroupLookupMethodInfo a signature where
    overloadedMethod _ = simpleActionGroupLookup

-- method SimpleActionGroup::remove
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "SimpleActionGroup", 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}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "g_simple_action_group_remove" g_simple_action_group_remove :: 
    Ptr SimpleActionGroup ->                -- _obj : TInterface "Gio" "SimpleActionGroup"
    CString ->                              -- action_name : TBasicType TUTF8
    IO ()

{-# DEPRECATED simpleActionGroupRemove ["(Since version 2.38)","Use g_action_map_remove_action()"]#-}
simpleActionGroupRemove ::
    (MonadIO m, SimpleActionGroupK a) =>
    a                                       -- _obj
    -> T.Text                               -- actionName
    -> m ()                                 -- result
simpleActionGroupRemove _obj actionName = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    actionName' <- textToCString actionName
    g_simple_action_group_remove _obj' actionName'
    touchManagedPtr _obj
    freeMem actionName'
    return ()

data SimpleActionGroupRemoveMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, SimpleActionGroupK a) => MethodInfo SimpleActionGroupRemoveMethodInfo a signature where
    overloadedMethod _ = simpleActionGroupRemove