{- | 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.DBusActionGroup.DBusActionGroup' is an implementation of the 'GI.Gio.Interfaces.ActionGroup.ActionGroup' interface that can be used as a proxy for an action group that is exported over D-Bus with 'GI.Gio.Objects.DBusConnection.dBusConnectionExportActionGroup'. -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.Gio.Objects.DBusActionGroup ( -- * Exported types DBusActionGroup(..) , IsDBusActionGroup , toDBusActionGroup , noDBusActionGroup , -- * Methods -- ** get #method:get# dBusActionGroupGet , ) 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.ActionGroup as Gio.ActionGroup import {-# SOURCE #-} qualified GI.Gio.Interfaces.RemoteActionGroup as Gio.RemoteActionGroup import {-# SOURCE #-} qualified GI.Gio.Objects.DBusConnection as Gio.DBusConnection -- | Memory-managed wrapper type. newtype DBusActionGroup = DBusActionGroup (ManagedPtr DBusActionGroup) foreign import ccall "g_dbus_action_group_get_type" c_g_dbus_action_group_get_type :: IO GType instance GObject DBusActionGroup where gobjectType = c_g_dbus_action_group_get_type -- | Type class for types which can be safely cast to `DBusActionGroup`, for instance with `toDBusActionGroup`. class (GObject o, O.IsDescendantOf DBusActionGroup o) => IsDBusActionGroup o instance (GObject o, O.IsDescendantOf DBusActionGroup o) => IsDBusActionGroup o instance O.HasParentTypes DBusActionGroup type instance O.ParentTypes DBusActionGroup = '[GObject.Object.Object, Gio.ActionGroup.ActionGroup, Gio.RemoteActionGroup.RemoteActionGroup] -- | Cast to `DBusActionGroup`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`. toDBusActionGroup :: (MonadIO m, IsDBusActionGroup o) => o -> m DBusActionGroup toDBusActionGroup = liftIO . unsafeCastTo DBusActionGroup -- | A convenience alias for `Nothing` :: `Maybe` `DBusActionGroup`. noDBusActionGroup :: Maybe DBusActionGroup noDBusActionGroup = Nothing #if ENABLE_OVERLOADING type family ResolveDBusActionGroupMethod (t :: Symbol) (o :: *) :: * where ResolveDBusActionGroupMethod "actionAdded" o = Gio.ActionGroup.ActionGroupActionAddedMethodInfo ResolveDBusActionGroupMethod "actionEnabledChanged" o = Gio.ActionGroup.ActionGroupActionEnabledChangedMethodInfo ResolveDBusActionGroupMethod "actionRemoved" o = Gio.ActionGroup.ActionGroupActionRemovedMethodInfo ResolveDBusActionGroupMethod "actionStateChanged" o = Gio.ActionGroup.ActionGroupActionStateChangedMethodInfo ResolveDBusActionGroupMethod "activateAction" o = Gio.ActionGroup.ActionGroupActivateActionMethodInfo ResolveDBusActionGroupMethod "activateActionFull" o = Gio.RemoteActionGroup.RemoteActionGroupActivateActionFullMethodInfo ResolveDBusActionGroupMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo ResolveDBusActionGroupMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo ResolveDBusActionGroupMethod "changeActionState" o = Gio.ActionGroup.ActionGroupChangeActionStateMethodInfo ResolveDBusActionGroupMethod "changeActionStateFull" o = Gio.RemoteActionGroup.RemoteActionGroupChangeActionStateFullMethodInfo ResolveDBusActionGroupMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo ResolveDBusActionGroupMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo ResolveDBusActionGroupMethod "getv" o = GObject.Object.ObjectGetvMethodInfo ResolveDBusActionGroupMethod "hasAction" o = Gio.ActionGroup.ActionGroupHasActionMethodInfo ResolveDBusActionGroupMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo ResolveDBusActionGroupMethod "listActions" o = Gio.ActionGroup.ActionGroupListActionsMethodInfo ResolveDBusActionGroupMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo ResolveDBusActionGroupMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo ResolveDBusActionGroupMethod "queryAction" o = Gio.ActionGroup.ActionGroupQueryActionMethodInfo ResolveDBusActionGroupMethod "ref" o = GObject.Object.ObjectRefMethodInfo ResolveDBusActionGroupMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo ResolveDBusActionGroupMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo ResolveDBusActionGroupMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo ResolveDBusActionGroupMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo ResolveDBusActionGroupMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo ResolveDBusActionGroupMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo ResolveDBusActionGroupMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo ResolveDBusActionGroupMethod "getActionEnabled" o = Gio.ActionGroup.ActionGroupGetActionEnabledMethodInfo ResolveDBusActionGroupMethod "getActionParameterType" o = Gio.ActionGroup.ActionGroupGetActionParameterTypeMethodInfo ResolveDBusActionGroupMethod "getActionState" o = Gio.ActionGroup.ActionGroupGetActionStateMethodInfo ResolveDBusActionGroupMethod "getActionStateHint" o = Gio.ActionGroup.ActionGroupGetActionStateHintMethodInfo ResolveDBusActionGroupMethod "getActionStateType" o = Gio.ActionGroup.ActionGroupGetActionStateTypeMethodInfo ResolveDBusActionGroupMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo ResolveDBusActionGroupMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo ResolveDBusActionGroupMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo ResolveDBusActionGroupMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo ResolveDBusActionGroupMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo ResolveDBusActionGroupMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveDBusActionGroupMethod t DBusActionGroup, O.MethodInfo info DBusActionGroup p) => OL.IsLabel t (DBusActionGroup -> 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 DBusActionGroup type instance O.AttributeList DBusActionGroup = DBusActionGroupAttributeList type DBusActionGroupAttributeList = ('[ ] :: [(Symbol, *)]) #endif #if ENABLE_OVERLOADING #endif #if ENABLE_OVERLOADING type instance O.SignalList DBusActionGroup = DBusActionGroupSignalList type DBusActionGroupSignalList = ('[ '("actionAdded", Gio.ActionGroup.ActionGroupActionAddedSignalInfo), '("actionEnabledChanged", Gio.ActionGroup.ActionGroupActionEnabledChangedSignalInfo), '("actionRemoved", Gio.ActionGroup.ActionGroupActionRemovedSignalInfo), '("actionStateChanged", Gio.ActionGroup.ActionGroupActionStateChangedSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)]) #endif -- method DBusActionGroup::get -- method type : MemberFunction -- Args : [Arg {argCName = "connection", argType = TInterface (Name {namespace = "Gio", name = "DBusConnection"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GDBusConnection", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bus_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the bus name which exports the action\n group or %NULL if @connection is not a message bus connection", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "object_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the object path at which the action group is exported", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gio", name = "DBusActionGroup"})) -- throws : False -- Skip return : False foreign import ccall "g_dbus_action_group_get" g_dbus_action_group_get :: Ptr Gio.DBusConnection.DBusConnection -> -- connection : TInterface (Name {namespace = "Gio", name = "DBusConnection"}) CString -> -- bus_name : TBasicType TUTF8 CString -> -- object_path : TBasicType TUTF8 IO (Ptr DBusActionGroup) {- | Obtains a 'GI.Gio.Objects.DBusActionGroup.DBusActionGroup' for the action group which is exported at the given /@busName@/ and /@objectPath@/. The thread default main context is taken at the time of this call. All signals on the menu model (and any linked models) are reported with respect to this context. All calls on the returned menu model (and linked models) must also originate from this same context, with the thread default main context unchanged. This call is non-blocking. The returned action group may or may not already be filled in. The correct thing to do is connect the signals for the action group to monitor for changes and then to call 'GI.Gio.Interfaces.ActionGroup.actionGroupListActions' to get the initial list. /Since: 2.32/ -} dBusActionGroupGet :: (B.CallStack.HasCallStack, MonadIO m, Gio.DBusConnection.IsDBusConnection a) => a {- ^ /@connection@/: A 'GI.Gio.Objects.DBusConnection.DBusConnection' -} -> Maybe (T.Text) {- ^ /@busName@/: the bus name which exports the action group or 'Nothing' if /@connection@/ is not a message bus connection -} -> T.Text {- ^ /@objectPath@/: the object path at which the action group is exported -} -> m DBusActionGroup {- ^ __Returns:__ a 'GI.Gio.Objects.DBusActionGroup.DBusActionGroup' -} dBusActionGroupGet connection busName objectPath = liftIO $ do connection' <- unsafeManagedPtrCastPtr connection maybeBusName <- case busName of Nothing -> return nullPtr Just jBusName -> do jBusName' <- textToCString jBusName return jBusName' objectPath' <- textToCString objectPath result <- g_dbus_action_group_get connection' maybeBusName objectPath' checkUnexpectedReturnNULL "dBusActionGroupGet" result result' <- (wrapObject DBusActionGroup) result touchManagedPtr connection freeMem maybeBusName freeMem objectPath' return result' #if ENABLE_OVERLOADING #endif