{-# LANGUAGE ImplicitParams, RankNTypes, TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Gio.Interfaces.DBusObject
(
DBusObject(..) ,
IsDBusObject ,
toDBusObject ,
#if defined(ENABLE_OVERLOADING)
ResolveDBusObjectMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
DBusObjectGetInterfaceMethodInfo ,
#endif
dBusObjectGetInterface ,
#if defined(ENABLE_OVERLOADING)
DBusObjectGetInterfacesMethodInfo ,
#endif
dBusObjectGetInterfaces ,
#if defined(ENABLE_OVERLOADING)
DBusObjectGetObjectPathMethodInfo ,
#endif
dBusObjectGetObjectPath ,
DBusObjectInterfaceAddedCallback ,
#if defined(ENABLE_OVERLOADING)
DBusObjectInterfaceAddedSignalInfo ,
#endif
afterDBusObjectInterfaceAdded ,
onDBusObjectInterfaceAdded ,
DBusObjectInterfaceRemovedCallback ,
#if defined(ENABLE_OVERLOADING)
DBusObjectInterfaceRemovedSignalInfo ,
#endif
afterDBusObjectInterfaceRemoved ,
onDBusObjectInterfaceRemoved ,
) 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.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
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.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
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 GHC.Records as R
import qualified Data.Word as DW
import qualified Data.Int as DI
import qualified System.Posix.Types as SPT
import qualified Foreign.C.Types as FCT
#if MIN_VERSION_base(4,18,0)
import qualified GI.GLib.Structs.String as GLib.String
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Gio.Flags as Gio.Flags
import {-# SOURCE #-} qualified GI.Gio.Interfaces.DBusInterface as Gio.DBusInterface
import {-# SOURCE #-} qualified GI.Gio.Structs.DBusAnnotationInfo as Gio.DBusAnnotationInfo
import {-# SOURCE #-} qualified GI.Gio.Structs.DBusArgInfo as Gio.DBusArgInfo
import {-# SOURCE #-} qualified GI.Gio.Structs.DBusInterfaceInfo as Gio.DBusInterfaceInfo
import {-# SOURCE #-} qualified GI.Gio.Structs.DBusMethodInfo as Gio.DBusMethodInfo
import {-# SOURCE #-} qualified GI.Gio.Structs.DBusPropertyInfo as Gio.DBusPropertyInfo
import {-# SOURCE #-} qualified GI.Gio.Structs.DBusSignalInfo as Gio.DBusSignalInfo
#else
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Gio.Interfaces.DBusInterface as Gio.DBusInterface
#endif
newtype DBusObject = DBusObject (SP.ManagedPtr DBusObject)
deriving (DBusObject -> DBusObject -> Bool
(DBusObject -> DBusObject -> Bool)
-> (DBusObject -> DBusObject -> Bool) -> Eq DBusObject
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DBusObject -> DBusObject -> Bool
== :: DBusObject -> DBusObject -> Bool
$c/= :: DBusObject -> DBusObject -> Bool
/= :: DBusObject -> DBusObject -> Bool
Eq)
instance SP.ManagedPtrNewtype DBusObject where
toManagedPtr :: DBusObject -> ManagedPtr DBusObject
toManagedPtr (DBusObject ManagedPtr DBusObject
p) = ManagedPtr DBusObject
p
foreign import ccall "g_dbus_object_get_type"
c_g_dbus_object_get_type :: IO B.Types.GType
instance B.Types.TypedObject DBusObject where
glibType :: IO GType
glibType = IO GType
c_g_dbus_object_get_type
instance B.Types.GObject DBusObject
class (SP.GObject o, O.IsDescendantOf DBusObject o) => IsDBusObject o
instance (SP.GObject o, O.IsDescendantOf DBusObject o) => IsDBusObject o
instance O.HasParentTypes DBusObject
type instance O.ParentTypes DBusObject = '[GObject.Object.Object]
toDBusObject :: (MIO.MonadIO m, IsDBusObject o) => o -> m DBusObject
toDBusObject :: forall (m :: * -> *) o.
(MonadIO m, IsDBusObject o) =>
o -> m DBusObject
toDBusObject = IO DBusObject -> m DBusObject
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO DBusObject -> m DBusObject)
-> (o -> IO DBusObject) -> o -> m DBusObject
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr DBusObject -> DBusObject) -> o -> IO DBusObject
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr DBusObject -> DBusObject
DBusObject
instance B.GValue.IsGValue (Maybe DBusObject) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_g_dbus_object_get_type
gvalueSet_ :: Ptr GValue -> Maybe DBusObject -> IO ()
gvalueSet_ Ptr GValue
gv Maybe DBusObject
P.Nothing = Ptr GValue -> Ptr DBusObject -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr DBusObject
forall a. Ptr a
FP.nullPtr :: FP.Ptr DBusObject)
gvalueSet_ Ptr GValue
gv (P.Just DBusObject
obj) = DBusObject -> (Ptr DBusObject -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr DBusObject
obj (Ptr GValue -> Ptr DBusObject -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe DBusObject)
gvalueGet_ Ptr GValue
gv = do
ptr <- Ptr GValue -> IO (Ptr DBusObject)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr DBusObject)
if ptr /= FP.nullPtr
then P.Just <$> B.ManagedPtr.newObject DBusObject ptr
else return P.Nothing
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList DBusObject
type instance O.AttributeList DBusObject = DBusObjectAttributeList
type DBusObjectAttributeList = ('[ ] :: [(Symbol, DK.Type)])
#endif
#if defined(ENABLE_OVERLOADING)
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveDBusObjectMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
ResolveDBusObjectMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveDBusObjectMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveDBusObjectMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveDBusObjectMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveDBusObjectMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveDBusObjectMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveDBusObjectMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveDBusObjectMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveDBusObjectMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveDBusObjectMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveDBusObjectMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveDBusObjectMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveDBusObjectMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveDBusObjectMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveDBusObjectMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveDBusObjectMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveDBusObjectMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveDBusObjectMethod "getInterface" o = DBusObjectGetInterfaceMethodInfo
ResolveDBusObjectMethod "getInterfaces" o = DBusObjectGetInterfacesMethodInfo
ResolveDBusObjectMethod "getObjectPath" o = DBusObjectGetObjectPathMethodInfo
ResolveDBusObjectMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveDBusObjectMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveDBusObjectMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveDBusObjectMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveDBusObjectMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveDBusObjectMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveDBusObjectMethod t DBusObject, O.OverloadedMethod info DBusObject p) => OL.IsLabel t (DBusObject -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveDBusObjectMethod t DBusObject, O.OverloadedMethod info DBusObject p, R.HasField t DBusObject p) => R.HasField t DBusObject p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveDBusObjectMethod t DBusObject, O.OverloadedMethodInfo info DBusObject) => OL.IsLabel t (O.MethodProxy info DBusObject) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
foreign import ccall "g_dbus_object_get_interface" g_dbus_object_get_interface ::
Ptr DBusObject ->
CString ->
IO (Ptr Gio.DBusInterface.DBusInterface)
dBusObjectGetInterface ::
(B.CallStack.HasCallStack, MonadIO m, IsDBusObject a) =>
a
-> T.Text
-> m (Maybe Gio.DBusInterface.DBusInterface)
dBusObjectGetInterface :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDBusObject a) =>
a -> Text -> m (Maybe DBusInterface)
dBusObjectGetInterface a
object Text
interfaceName = IO (Maybe DBusInterface) -> m (Maybe DBusInterface)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe DBusInterface) -> m (Maybe DBusInterface))
-> IO (Maybe DBusInterface) -> m (Maybe DBusInterface)
forall a b. (a -> b) -> a -> b
$ do
object' <- a -> IO (Ptr DBusObject)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
interfaceName' <- textToCString interfaceName
result <- g_dbus_object_get_interface object' interfaceName'
maybeResult <- convertIfNonNull result $ \Ptr DBusInterface
result' -> do
result'' <- ((ManagedPtr DBusInterface -> DBusInterface)
-> Ptr DBusInterface -> IO DBusInterface
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr DBusInterface -> DBusInterface
Gio.DBusInterface.DBusInterface) Ptr DBusInterface
result'
return result''
touchManagedPtr object
freeMem interfaceName'
return maybeResult
#if defined(ENABLE_OVERLOADING)
data DBusObjectGetInterfaceMethodInfo
instance (signature ~ (T.Text -> m (Maybe Gio.DBusInterface.DBusInterface)), MonadIO m, IsDBusObject a) => O.OverloadedMethod DBusObjectGetInterfaceMethodInfo a signature where
overloadedMethod = dBusObjectGetInterface
instance O.OverloadedMethodInfo DBusObjectGetInterfaceMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gio.Interfaces.DBusObject.dBusObjectGetInterface",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.35/docs/GI-Gio-Interfaces-DBusObject.html#v:dBusObjectGetInterface"
})
#endif
foreign import ccall "g_dbus_object_get_interfaces" g_dbus_object_get_interfaces ::
Ptr DBusObject ->
IO (Ptr (GList (Ptr Gio.DBusInterface.DBusInterface)))
dBusObjectGetInterfaces ::
(B.CallStack.HasCallStack, MonadIO m, IsDBusObject a) =>
a
-> m [Gio.DBusInterface.DBusInterface]
dBusObjectGetInterfaces :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDBusObject a) =>
a -> m [DBusInterface]
dBusObjectGetInterfaces a
object = IO [DBusInterface] -> m [DBusInterface]
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO [DBusInterface] -> m [DBusInterface])
-> IO [DBusInterface] -> m [DBusInterface]
forall a b. (a -> b) -> a -> b
$ do
object' <- a -> IO (Ptr DBusObject)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
result <- g_dbus_object_get_interfaces object'
result' <- unpackGList result
result'' <- mapM (wrapObject Gio.DBusInterface.DBusInterface) result'
g_list_free result
touchManagedPtr object
return result''
#if defined(ENABLE_OVERLOADING)
data DBusObjectGetInterfacesMethodInfo
instance (signature ~ (m [Gio.DBusInterface.DBusInterface]), MonadIO m, IsDBusObject a) => O.OverloadedMethod DBusObjectGetInterfacesMethodInfo a signature where
overloadedMethod = dBusObjectGetInterfaces
instance O.OverloadedMethodInfo DBusObjectGetInterfacesMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gio.Interfaces.DBusObject.dBusObjectGetInterfaces",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.35/docs/GI-Gio-Interfaces-DBusObject.html#v:dBusObjectGetInterfaces"
})
#endif
foreign import ccall "g_dbus_object_get_object_path" g_dbus_object_get_object_path ::
Ptr DBusObject ->
IO CString
dBusObjectGetObjectPath ::
(B.CallStack.HasCallStack, MonadIO m, IsDBusObject a) =>
a
-> m T.Text
dBusObjectGetObjectPath :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDBusObject a) =>
a -> m Text
dBusObjectGetObjectPath a
object = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
object' <- a -> IO (Ptr DBusObject)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
result <- g_dbus_object_get_object_path object'
checkUnexpectedReturnNULL "dBusObjectGetObjectPath" result
result' <- cstringToText result
touchManagedPtr object
return result'
#if defined(ENABLE_OVERLOADING)
data DBusObjectGetObjectPathMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDBusObject a) => O.OverloadedMethod DBusObjectGetObjectPathMethodInfo a signature where
overloadedMethod = dBusObjectGetObjectPath
instance O.OverloadedMethodInfo DBusObjectGetObjectPathMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gio.Interfaces.DBusObject.dBusObjectGetObjectPath",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.35/docs/GI-Gio-Interfaces-DBusObject.html#v:dBusObjectGetObjectPath"
})
#endif
type DBusObjectInterfaceAddedCallback =
Gio.DBusInterface.DBusInterface
-> IO ()
type C_DBusObjectInterfaceAddedCallback =
Ptr DBusObject ->
Ptr Gio.DBusInterface.DBusInterface ->
Ptr () ->
IO ()
foreign import ccall "wrapper"
mk_DBusObjectInterfaceAddedCallback :: C_DBusObjectInterfaceAddedCallback -> IO (FunPtr C_DBusObjectInterfaceAddedCallback)
wrap_DBusObjectInterfaceAddedCallback ::
GObject a => (a -> DBusObjectInterfaceAddedCallback) ->
C_DBusObjectInterfaceAddedCallback
wrap_DBusObjectInterfaceAddedCallback :: forall a.
GObject a =>
(a -> DBusObjectInterfaceAddedCallback)
-> C_DBusObjectInterfaceAddedCallback
wrap_DBusObjectInterfaceAddedCallback a -> DBusObjectInterfaceAddedCallback
gi'cb Ptr DBusObject
gi'selfPtr Ptr DBusInterface
interface Ptr ()
_ = do
interface' <- ((ManagedPtr DBusInterface -> DBusInterface)
-> Ptr DBusInterface -> IO DBusInterface
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr DBusInterface -> DBusInterface
Gio.DBusInterface.DBusInterface) Ptr DBusInterface
interface
B.ManagedPtr.withNewObject gi'selfPtr $ \DBusObject
gi'self -> a -> DBusObjectInterfaceAddedCallback
gi'cb (DBusObject -> a
forall a b. Coercible a b => a -> b
Coerce.coerce DBusObject
gi'self) DBusInterface
interface'
onDBusObjectInterfaceAdded :: (IsDBusObject a, MonadIO m) => a -> ((?self :: a) => DBusObjectInterfaceAddedCallback) -> m SignalHandlerId
onDBusObjectInterfaceAdded :: forall a (m :: * -> *).
(IsDBusObject a, MonadIO m) =>
a
-> ((?self::a) => DBusObjectInterfaceAddedCallback)
-> m SignalHandlerId
onDBusObjectInterfaceAdded a
obj (?self::a) => DBusObjectInterfaceAddedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> DBusObjectInterfaceAddedCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => DBusObjectInterfaceAddedCallback
DBusObjectInterfaceAddedCallback
cb
let wrapped' :: C_DBusObjectInterfaceAddedCallback
wrapped' = (a -> DBusObjectInterfaceAddedCallback)
-> C_DBusObjectInterfaceAddedCallback
forall a.
GObject a =>
(a -> DBusObjectInterfaceAddedCallback)
-> C_DBusObjectInterfaceAddedCallback
wrap_DBusObjectInterfaceAddedCallback a -> DBusObjectInterfaceAddedCallback
wrapped
wrapped'' <- C_DBusObjectInterfaceAddedCallback
-> IO (FunPtr C_DBusObjectInterfaceAddedCallback)
mk_DBusObjectInterfaceAddedCallback C_DBusObjectInterfaceAddedCallback
wrapped'
connectSignalFunPtr obj "interface-added" wrapped'' SignalConnectBefore Nothing
afterDBusObjectInterfaceAdded :: (IsDBusObject a, MonadIO m) => a -> ((?self :: a) => DBusObjectInterfaceAddedCallback) -> m SignalHandlerId
afterDBusObjectInterfaceAdded :: forall a (m :: * -> *).
(IsDBusObject a, MonadIO m) =>
a
-> ((?self::a) => DBusObjectInterfaceAddedCallback)
-> m SignalHandlerId
afterDBusObjectInterfaceAdded a
obj (?self::a) => DBusObjectInterfaceAddedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> DBusObjectInterfaceAddedCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => DBusObjectInterfaceAddedCallback
DBusObjectInterfaceAddedCallback
cb
let wrapped' :: C_DBusObjectInterfaceAddedCallback
wrapped' = (a -> DBusObjectInterfaceAddedCallback)
-> C_DBusObjectInterfaceAddedCallback
forall a.
GObject a =>
(a -> DBusObjectInterfaceAddedCallback)
-> C_DBusObjectInterfaceAddedCallback
wrap_DBusObjectInterfaceAddedCallback a -> DBusObjectInterfaceAddedCallback
wrapped
wrapped'' <- C_DBusObjectInterfaceAddedCallback
-> IO (FunPtr C_DBusObjectInterfaceAddedCallback)
mk_DBusObjectInterfaceAddedCallback C_DBusObjectInterfaceAddedCallback
wrapped'
connectSignalFunPtr obj "interface-added" wrapped'' SignalConnectAfter Nothing
#if defined(ENABLE_OVERLOADING)
data DBusObjectInterfaceAddedSignalInfo
instance SignalInfo DBusObjectInterfaceAddedSignalInfo where
type HaskellCallbackType DBusObjectInterfaceAddedSignalInfo = DBusObjectInterfaceAddedCallback
connectSignal obj cb connectMode detail = do
let cb' = wrap_DBusObjectInterfaceAddedCallback cb
cb'' <- mk_DBusObjectInterfaceAddedCallback cb'
connectSignalFunPtr obj "interface-added" cb'' connectMode detail
dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gio.Interfaces.DBusObject::interface-added"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.35/docs/GI-Gio-Interfaces-DBusObject.html#g:signal:interfaceAdded"})
#endif
type DBusObjectInterfaceRemovedCallback =
Gio.DBusInterface.DBusInterface
-> IO ()
type C_DBusObjectInterfaceRemovedCallback =
Ptr DBusObject ->
Ptr Gio.DBusInterface.DBusInterface ->
Ptr () ->
IO ()
foreign import ccall "wrapper"
mk_DBusObjectInterfaceRemovedCallback :: C_DBusObjectInterfaceRemovedCallback -> IO (FunPtr C_DBusObjectInterfaceRemovedCallback)
wrap_DBusObjectInterfaceRemovedCallback ::
GObject a => (a -> DBusObjectInterfaceRemovedCallback) ->
C_DBusObjectInterfaceRemovedCallback
wrap_DBusObjectInterfaceRemovedCallback :: forall a.
GObject a =>
(a -> DBusObjectInterfaceAddedCallback)
-> C_DBusObjectInterfaceAddedCallback
wrap_DBusObjectInterfaceRemovedCallback a -> DBusObjectInterfaceAddedCallback
gi'cb Ptr DBusObject
gi'selfPtr Ptr DBusInterface
interface Ptr ()
_ = do
interface' <- ((ManagedPtr DBusInterface -> DBusInterface)
-> Ptr DBusInterface -> IO DBusInterface
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr DBusInterface -> DBusInterface
Gio.DBusInterface.DBusInterface) Ptr DBusInterface
interface
B.ManagedPtr.withNewObject gi'selfPtr $ \DBusObject
gi'self -> a -> DBusObjectInterfaceAddedCallback
gi'cb (DBusObject -> a
forall a b. Coercible a b => a -> b
Coerce.coerce DBusObject
gi'self) DBusInterface
interface'
onDBusObjectInterfaceRemoved :: (IsDBusObject a, MonadIO m) => a -> ((?self :: a) => DBusObjectInterfaceRemovedCallback) -> m SignalHandlerId
onDBusObjectInterfaceRemoved :: forall a (m :: * -> *).
(IsDBusObject a, MonadIO m) =>
a
-> ((?self::a) => DBusObjectInterfaceAddedCallback)
-> m SignalHandlerId
onDBusObjectInterfaceRemoved a
obj (?self::a) => DBusObjectInterfaceAddedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> DBusObjectInterfaceAddedCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => DBusObjectInterfaceAddedCallback
DBusObjectInterfaceAddedCallback
cb
let wrapped' :: C_DBusObjectInterfaceAddedCallback
wrapped' = (a -> DBusObjectInterfaceAddedCallback)
-> C_DBusObjectInterfaceAddedCallback
forall a.
GObject a =>
(a -> DBusObjectInterfaceAddedCallback)
-> C_DBusObjectInterfaceAddedCallback
wrap_DBusObjectInterfaceRemovedCallback a -> DBusObjectInterfaceAddedCallback
wrapped
wrapped'' <- C_DBusObjectInterfaceAddedCallback
-> IO (FunPtr C_DBusObjectInterfaceAddedCallback)
mk_DBusObjectInterfaceRemovedCallback C_DBusObjectInterfaceAddedCallback
wrapped'
connectSignalFunPtr obj "interface-removed" wrapped'' SignalConnectBefore Nothing
afterDBusObjectInterfaceRemoved :: (IsDBusObject a, MonadIO m) => a -> ((?self :: a) => DBusObjectInterfaceRemovedCallback) -> m SignalHandlerId
afterDBusObjectInterfaceRemoved :: forall a (m :: * -> *).
(IsDBusObject a, MonadIO m) =>
a
-> ((?self::a) => DBusObjectInterfaceAddedCallback)
-> m SignalHandlerId
afterDBusObjectInterfaceRemoved a
obj (?self::a) => DBusObjectInterfaceAddedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> DBusObjectInterfaceAddedCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => DBusObjectInterfaceAddedCallback
DBusObjectInterfaceAddedCallback
cb
let wrapped' :: C_DBusObjectInterfaceAddedCallback
wrapped' = (a -> DBusObjectInterfaceAddedCallback)
-> C_DBusObjectInterfaceAddedCallback
forall a.
GObject a =>
(a -> DBusObjectInterfaceAddedCallback)
-> C_DBusObjectInterfaceAddedCallback
wrap_DBusObjectInterfaceRemovedCallback a -> DBusObjectInterfaceAddedCallback
wrapped
wrapped'' <- C_DBusObjectInterfaceAddedCallback
-> IO (FunPtr C_DBusObjectInterfaceAddedCallback)
mk_DBusObjectInterfaceRemovedCallback C_DBusObjectInterfaceAddedCallback
wrapped'
connectSignalFunPtr obj "interface-removed" wrapped'' SignalConnectAfter Nothing
#if defined(ENABLE_OVERLOADING)
data DBusObjectInterfaceRemovedSignalInfo
instance SignalInfo DBusObjectInterfaceRemovedSignalInfo where
type HaskellCallbackType DBusObjectInterfaceRemovedSignalInfo = DBusObjectInterfaceRemovedCallback
connectSignal obj cb connectMode detail = do
let cb' = wrap_DBusObjectInterfaceRemovedCallback cb
cb'' <- mk_DBusObjectInterfaceRemovedCallback cb'
connectSignalFunPtr obj "interface-removed" cb'' connectMode detail
dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gio.Interfaces.DBusObject::interface-removed"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gio-2.0.35/docs/GI-Gio-Interfaces-DBusObject.html#g:signal:interfaceRemoved"})
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList DBusObject = DBusObjectSignalList
type DBusObjectSignalList = ('[ '("interfaceAdded", DBusObjectInterfaceAddedSignalInfo), '("interfaceRemoved", DBusObjectInterfaceRemovedSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, DK.Type)])
#endif