gi-gio-2.0.20: 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 (inaki@blueleaf.cc)
'GI.Gio.Objects.SimpleActionGroup.SimpleActionGroup' is a hash table filled with 'GI.Gio.Interfaces.Action.Action' objects,
implementing the 'GI.Gio.Interfaces.ActionGroup.ActionGroup' and 'GI.Gio.Interfaces.ActionMap.ActionMap' interfaces.
/Since: 2.28/
-}
#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Gio.Objects.SimpleActionGroup
(
-- * Exported types
SimpleActionGroup(..) ,
IsSimpleActionGroup ,
toSimpleActionGroup ,
noSimpleActionGroup ,
-- * Methods
-- ** addEntries #method:addEntries#
#if ENABLE_OVERLOADING
SimpleActionGroupAddEntriesMethodInfo ,
#endif
simpleActionGroupAddEntries ,
-- ** insert #method:insert#
#if ENABLE_OVERLOADING
SimpleActionGroupInsertMethodInfo ,
#endif
simpleActionGroupInsert ,
-- ** lookup #method:lookup#
#if ENABLE_OVERLOADING
SimpleActionGroupLookupMethodInfo ,
#endif
simpleActionGroupLookup ,
-- ** new #method:new#
simpleActionGroupNew ,
-- ** remove #method:remove#
#if ENABLE_OVERLOADING
SimpleActionGroupRemoveMethodInfo ,
#endif
simpleActionGroupRemove ,
) 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.Interfaces.Action as Gio.Action
import {-# SOURCE #-} qualified GI.Gio.Interfaces.ActionGroup as Gio.ActionGroup
import {-# SOURCE #-} qualified GI.Gio.Interfaces.ActionMap as Gio.ActionMap
import {-# SOURCE #-} qualified GI.Gio.Structs.ActionEntry as Gio.ActionEntry
-- | Memory-managed wrapper type.
newtype SimpleActionGroup = SimpleActionGroup (ManagedPtr SimpleActionGroup)
foreign import ccall "g_simple_action_group_get_type"
c_g_simple_action_group_get_type :: IO GType
instance GObject SimpleActionGroup where
gobjectType = c_g_simple_action_group_get_type
-- | Type class for types which can be safely cast to `SimpleActionGroup`, for instance with `toSimpleActionGroup`.
class (GObject o, O.IsDescendantOf SimpleActionGroup o) => IsSimpleActionGroup o
instance (GObject o, O.IsDescendantOf SimpleActionGroup o) => IsSimpleActionGroup o
instance O.HasParentTypes SimpleActionGroup
type instance O.ParentTypes SimpleActionGroup = '[GObject.Object.Object, Gio.ActionGroup.ActionGroup, Gio.ActionMap.ActionMap]
-- | Cast to `SimpleActionGroup`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toSimpleActionGroup :: (MonadIO m, IsSimpleActionGroup o) => o -> m SimpleActionGroup
toSimpleActionGroup = liftIO . unsafeCastTo SimpleActionGroup
-- | A convenience alias for `Nothing` :: `Maybe` `SimpleActionGroup`.
noSimpleActionGroup :: Maybe SimpleActionGroup
noSimpleActionGroup = Nothing
#if ENABLE_OVERLOADING
type family ResolveSimpleActionGroupMethod (t :: Symbol) (o :: *) :: * where
ResolveSimpleActionGroupMethod "actionAdded" o = Gio.ActionGroup.ActionGroupActionAddedMethodInfo
ResolveSimpleActionGroupMethod "actionEnabledChanged" o = Gio.ActionGroup.ActionGroupActionEnabledChangedMethodInfo
ResolveSimpleActionGroupMethod "actionRemoved" o = Gio.ActionGroup.ActionGroupActionRemovedMethodInfo
ResolveSimpleActionGroupMethod "actionStateChanged" o = Gio.ActionGroup.ActionGroupActionStateChangedMethodInfo
ResolveSimpleActionGroupMethod "activateAction" o = Gio.ActionGroup.ActionGroupActivateActionMethodInfo
ResolveSimpleActionGroupMethod "addAction" o = Gio.ActionMap.ActionMapAddActionMethodInfo
ResolveSimpleActionGroupMethod "addActionEntries" o = Gio.ActionMap.ActionMapAddActionEntriesMethodInfo
ResolveSimpleActionGroupMethod "addEntries" o = SimpleActionGroupAddEntriesMethodInfo
ResolveSimpleActionGroupMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveSimpleActionGroupMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveSimpleActionGroupMethod "changeActionState" o = Gio.ActionGroup.ActionGroupChangeActionStateMethodInfo
ResolveSimpleActionGroupMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveSimpleActionGroupMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveSimpleActionGroupMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveSimpleActionGroupMethod "hasAction" o = Gio.ActionGroup.ActionGroupHasActionMethodInfo
ResolveSimpleActionGroupMethod "insert" o = SimpleActionGroupInsertMethodInfo
ResolveSimpleActionGroupMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveSimpleActionGroupMethod "listActions" o = Gio.ActionGroup.ActionGroupListActionsMethodInfo
ResolveSimpleActionGroupMethod "lookup" o = SimpleActionGroupLookupMethodInfo
ResolveSimpleActionGroupMethod "lookupAction" o = Gio.ActionMap.ActionMapLookupActionMethodInfo
ResolveSimpleActionGroupMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveSimpleActionGroupMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveSimpleActionGroupMethod "queryAction" o = Gio.ActionGroup.ActionGroupQueryActionMethodInfo
ResolveSimpleActionGroupMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveSimpleActionGroupMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveSimpleActionGroupMethod "remove" o = SimpleActionGroupRemoveMethodInfo
ResolveSimpleActionGroupMethod "removeAction" o = Gio.ActionMap.ActionMapRemoveActionMethodInfo
ResolveSimpleActionGroupMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveSimpleActionGroupMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveSimpleActionGroupMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveSimpleActionGroupMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveSimpleActionGroupMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveSimpleActionGroupMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveSimpleActionGroupMethod "getActionEnabled" o = Gio.ActionGroup.ActionGroupGetActionEnabledMethodInfo
ResolveSimpleActionGroupMethod "getActionParameterType" o = Gio.ActionGroup.ActionGroupGetActionParameterTypeMethodInfo
ResolveSimpleActionGroupMethod "getActionState" o = Gio.ActionGroup.ActionGroupGetActionStateMethodInfo
ResolveSimpleActionGroupMethod "getActionStateHint" o = Gio.ActionGroup.ActionGroupGetActionStateHintMethodInfo
ResolveSimpleActionGroupMethod "getActionStateType" o = Gio.ActionGroup.ActionGroupGetActionStateTypeMethodInfo
ResolveSimpleActionGroupMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveSimpleActionGroupMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveSimpleActionGroupMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveSimpleActionGroupMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveSimpleActionGroupMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveSimpleActionGroupMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveSimpleActionGroupMethod t SimpleActionGroup, O.MethodInfo info SimpleActionGroup p) => OL.IsLabel t (SimpleActionGroup -> 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 SimpleActionGroup
type instance O.AttributeList SimpleActionGroup = SimpleActionGroupAttributeList
type SimpleActionGroupAttributeList = ('[ ] :: [(Symbol, *)])
#endif
#if ENABLE_OVERLOADING
#endif
#if ENABLE_OVERLOADING
type instance O.SignalList SimpleActionGroup = SimpleActionGroupSignalList
type SimpleActionGroupSignalList = ('[ '("actionAdded", Gio.ActionGroup.ActionGroupActionAddedSignalInfo), '("actionEnabledChanged", Gio.ActionGroup.ActionGroupActionEnabledChangedSignalInfo), '("actionRemoved", Gio.ActionGroup.ActionGroupActionRemovedSignalInfo), '("actionStateChanged", Gio.ActionGroup.ActionGroupActionStateChangedSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
-- method SimpleActionGroup::new
-- method type : Constructor
-- Args : []
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gio", name = "SimpleActionGroup"}))
-- throws : False
-- Skip return : False
foreign import ccall "g_simple_action_group_new" g_simple_action_group_new ::
IO (Ptr SimpleActionGroup)
{- |
Creates a new, empty, 'GI.Gio.Objects.SimpleActionGroup.SimpleActionGroup'.
/Since: 2.28/
-}
simpleActionGroupNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
m SimpleActionGroup
{- ^ __Returns:__ a new 'GI.Gio.Objects.SimpleActionGroup.SimpleActionGroup' -}
simpleActionGroupNew = liftIO $ do
result <- g_simple_action_group_new
checkUnexpectedReturnNULL "simpleActionGroupNew" result
result' <- (wrapObject SimpleActionGroup) result
return result'
#if ENABLE_OVERLOADING
#endif
-- method SimpleActionGroup::add_entries
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "simple", argType = TInterface (Name {namespace = "Gio", name = "SimpleActionGroup"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSimpleActionGroup", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "entries", argType = TCArray False (-1) 2 (TInterface (Name {namespace = "Gio", name = "ActionEntry"})), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a pointer to the first item in\n an array of #GActionEntry structs", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_entries", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the length of @entries, or -1", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the user data for signal connections", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : [Arg {argCName = "n_entries", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the length of @entries, or -1", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_simple_action_group_add_entries" g_simple_action_group_add_entries ::
Ptr SimpleActionGroup -> -- simple : TInterface (Name {namespace = "Gio", name = "SimpleActionGroup"})
Ptr Gio.ActionEntry.ActionEntry -> -- entries : TCArray False (-1) 2 (TInterface (Name {namespace = "Gio", name = "ActionEntry"}))
Int32 -> -- n_entries : TBasicType TInt
Ptr () -> -- user_data : TBasicType TPtr
IO ()
{-# DEPRECATED simpleActionGroupAddEntries ["(Since version 2.38)","Use 'GI.Gio.Interfaces.ActionMap.actionMapAddActionEntries'"] #-}
{- |
A convenience function for creating multiple 'GI.Gio.Objects.SimpleAction.SimpleAction' instances
and adding them to the action group.
/Since: 2.30/
-}
simpleActionGroupAddEntries ::
(B.CallStack.HasCallStack, MonadIO m, IsSimpleActionGroup a) =>
a
{- ^ /@simple@/: a 'GI.Gio.Objects.SimpleActionGroup.SimpleActionGroup' -}
-> [Gio.ActionEntry.ActionEntry]
{- ^ /@entries@/: a pointer to the first item in
an array of 'GI.Gio.Structs.ActionEntry.ActionEntry' structs -}
-> Ptr ()
{- ^ /@userData@/: the user data for signal connections -}
-> m ()
simpleActionGroupAddEntries simple entries userData = liftIO $ do
let nEntries = fromIntegral $ length entries
simple' <- unsafeManagedPtrCastPtr simple
entries' <- mapM unsafeManagedPtrGetPtr entries
entries'' <- packBlockArray 64 entries'
g_simple_action_group_add_entries simple' entries'' nEntries userData
touchManagedPtr simple
mapM_ touchManagedPtr entries
freeMem entries''
return ()
#if ENABLE_OVERLOADING
data SimpleActionGroupAddEntriesMethodInfo
instance (signature ~ ([Gio.ActionEntry.ActionEntry] -> Ptr () -> m ()), MonadIO m, IsSimpleActionGroup a) => O.MethodInfo SimpleActionGroupAddEntriesMethodInfo a signature where
overloadedMethod _ = simpleActionGroupAddEntries
#endif
-- method SimpleActionGroup::insert
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "simple", argType = TInterface (Name {namespace = "Gio", name = "SimpleActionGroup"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSimpleActionGroup", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "action", argType = TInterface (Name {namespace = "Gio", name = "Action"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GAction", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_simple_action_group_insert" g_simple_action_group_insert ::
Ptr SimpleActionGroup -> -- simple : TInterface (Name {namespace = "Gio", name = "SimpleActionGroup"})
Ptr Gio.Action.Action -> -- action : TInterface (Name {namespace = "Gio", name = "Action"})
IO ()
{-# DEPRECATED simpleActionGroupInsert ["(Since version 2.38)","Use 'GI.Gio.Interfaces.ActionMap.actionMapAddAction'"] #-}
{- |
Adds an action to the action group.
If the action group already contains an action with the same name as
/@action@/ then the old action is dropped from the group.
The action group takes its own reference on /@action@/.
/Since: 2.28/
-}
simpleActionGroupInsert ::
(B.CallStack.HasCallStack, MonadIO m, IsSimpleActionGroup a, Gio.Action.IsAction b) =>
a
{- ^ /@simple@/: a 'GI.Gio.Objects.SimpleActionGroup.SimpleActionGroup' -}
-> b
{- ^ /@action@/: a 'GI.Gio.Interfaces.Action.Action' -}
-> m ()
simpleActionGroupInsert simple action = liftIO $ do
simple' <- unsafeManagedPtrCastPtr simple
action' <- unsafeManagedPtrCastPtr action
g_simple_action_group_insert simple' action'
touchManagedPtr simple
touchManagedPtr action
return ()
#if ENABLE_OVERLOADING
data SimpleActionGroupInsertMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsSimpleActionGroup a, Gio.Action.IsAction b) => O.MethodInfo SimpleActionGroupInsertMethodInfo a signature where
overloadedMethod _ = simpleActionGroupInsert
#endif
-- method SimpleActionGroup::lookup
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "simple", argType = TInterface (Name {namespace = "Gio", name = "SimpleActionGroup"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSimpleActionGroup", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "action_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the name of an action", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gio", name = "Action"}))
-- throws : False
-- Skip return : False
foreign import ccall "g_simple_action_group_lookup" g_simple_action_group_lookup ::
Ptr SimpleActionGroup -> -- simple : TInterface (Name {namespace = "Gio", name = "SimpleActionGroup"})
CString -> -- action_name : TBasicType TUTF8
IO (Ptr Gio.Action.Action)
{-# DEPRECATED simpleActionGroupLookup ["(Since version 2.38)","Use 'GI.Gio.Interfaces.ActionMap.actionMapLookupAction'"] #-}
{- |
Looks up the action with the name /@actionName@/ in the group.
If no such action exists, returns 'Nothing'.
/Since: 2.28/
-}
simpleActionGroupLookup ::
(B.CallStack.HasCallStack, MonadIO m, IsSimpleActionGroup a) =>
a
{- ^ /@simple@/: a 'GI.Gio.Objects.SimpleActionGroup.SimpleActionGroup' -}
-> T.Text
{- ^ /@actionName@/: the name of an action -}
-> m Gio.Action.Action
{- ^ __Returns:__ a 'GI.Gio.Interfaces.Action.Action', or 'Nothing' -}
simpleActionGroupLookup simple actionName = liftIO $ do
simple' <- unsafeManagedPtrCastPtr simple
actionName' <- textToCString actionName
result <- g_simple_action_group_lookup simple' actionName'
checkUnexpectedReturnNULL "simpleActionGroupLookup" result
result' <- (newObject Gio.Action.Action) result
touchManagedPtr simple
freeMem actionName'
return result'
#if ENABLE_OVERLOADING
data SimpleActionGroupLookupMethodInfo
instance (signature ~ (T.Text -> m Gio.Action.Action), MonadIO m, IsSimpleActionGroup a) => O.MethodInfo SimpleActionGroupLookupMethodInfo a signature where
overloadedMethod _ = simpleActionGroupLookup
#endif
-- method SimpleActionGroup::remove
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "simple", argType = TInterface (Name {namespace = "Gio", name = "SimpleActionGroup"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSimpleActionGroup", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "action_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the name of the action", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_simple_action_group_remove" g_simple_action_group_remove ::
Ptr SimpleActionGroup -> -- simple : TInterface (Name {namespace = "Gio", name = "SimpleActionGroup"})
CString -> -- action_name : TBasicType TUTF8
IO ()
{-# DEPRECATED simpleActionGroupRemove ["(Since version 2.38)","Use 'GI.Gio.Interfaces.ActionMap.actionMapRemoveAction'"] #-}
{- |
Removes the named action from the action group.
If no action of this name is in the group then nothing happens.
/Since: 2.28/
-}
simpleActionGroupRemove ::
(B.CallStack.HasCallStack, MonadIO m, IsSimpleActionGroup a) =>
a
{- ^ /@simple@/: a 'GI.Gio.Objects.SimpleActionGroup.SimpleActionGroup' -}
-> T.Text
{- ^ /@actionName@/: the name of the action -}
-> m ()
simpleActionGroupRemove simple actionName = liftIO $ do
simple' <- unsafeManagedPtrCastPtr simple
actionName' <- textToCString actionName
g_simple_action_group_remove simple' actionName'
touchManagedPtr simple
freeMem actionName'
return ()
#if ENABLE_OVERLOADING
data SimpleActionGroupRemoveMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsSimpleActionGroup a) => O.MethodInfo SimpleActionGroupRemoveMethodInfo a signature where
overloadedMethod _ = simpleActionGroupRemove
#endif