{-# 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 GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Gio.Interfaces.DBusInterface as Gio.DBusInterface
newtype DBusObject = DBusObject (SP.ManagedPtr DBusObject)
deriving (DBusObject -> DBusObject -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DBusObject -> DBusObject -> Bool
$c/= :: DBusObject -> DBusObject -> Bool
== :: DBusObject -> DBusObject -> Bool
$c== :: 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 = forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. 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 = forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (forall a. Ptr a
FP.nullPtr :: FP.Ptr DBusObject)
gvalueSet_ Ptr GValue
gv (P.Just DBusObject
obj) = forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr DBusObject
obj (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 DBusObject
ptr <- forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr DBusObject)
if Ptr DBusObject
ptr forall a. Eq a => a -> a -> Bool
/= forall a. Ptr a
FP.nullPtr
then forall a. a -> Maybe a
P.Just forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr DBusObject -> DBusObject
DBusObject Ptr DBusObject
ptr
else forall (m :: * -> *) a. Monad m => a -> m a
return forall a. Maybe a
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 = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ do
Ptr DBusObject
object' <- forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
CString
interfaceName' <- Text -> IO CString
textToCString Text
interfaceName
Ptr DBusInterface
result <- Ptr DBusObject -> CString -> IO (Ptr DBusInterface)
g_dbus_object_get_interface Ptr DBusObject
object' CString
interfaceName'
Maybe DBusInterface
maybeResult <- forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr DBusInterface
result forall a b. (a -> b) -> a -> b
$ \Ptr DBusInterface
result' -> do
DBusInterface
result'' <- (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'
forall (m :: * -> *) a. Monad m => a -> m a
return DBusInterface
result''
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
forall a. Ptr a -> IO ()
freeMem CString
interfaceName'
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe DBusInterface
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.30/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 = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ do
Ptr DBusObject
object' <- forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
Ptr (GList (Ptr DBusInterface))
result <- Ptr DBusObject -> IO (Ptr (GList (Ptr DBusInterface)))
g_dbus_object_get_interfaces Ptr DBusObject
object'
[Ptr DBusInterface]
result' <- forall a. Ptr (GList (Ptr a)) -> IO [Ptr a]
unpackGList Ptr (GList (Ptr DBusInterface))
result
[DBusInterface]
result'' <- forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM (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'
forall a. Ptr (GList a) -> IO ()
g_list_free Ptr (GList (Ptr DBusInterface))
result
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
forall (m :: * -> *) a. Monad m => a -> m a
return [DBusInterface]
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.30/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 = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ do
Ptr DBusObject
object' <- forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
CString
result <- Ptr DBusObject -> IO CString
g_dbus_object_get_object_path Ptr DBusObject
object'
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"dBusObjectGetObjectPath" CString
result
Text
result' <- HasCallStack => CString -> IO Text
cstringToText CString
result
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
forall (m :: * -> *) a. Monad m => a -> m a
return Text
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.30/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
DBusInterface
interface' <- (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
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient Ptr DBusObject
gi'selfPtr forall a b. (a -> b) -> a -> b
$ \DBusObject
gi'self -> a -> DBusObjectInterfaceAddedCallback
gi'cb (coerce :: 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 = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> DBusObjectInterfaceAddedCallback
wrapped a
self = let ?self = a
self in (?self::a) => DBusObjectInterfaceAddedCallback
cb
let wrapped' :: C_DBusObjectInterfaceAddedCallback
wrapped' = forall a.
GObject a =>
(a -> DBusObjectInterfaceAddedCallback)
-> C_DBusObjectInterfaceAddedCallback
wrap_DBusObjectInterfaceAddedCallback a -> DBusObjectInterfaceAddedCallback
wrapped
FunPtr C_DBusObjectInterfaceAddedCallback
wrapped'' <- C_DBusObjectInterfaceAddedCallback
-> IO (FunPtr C_DBusObjectInterfaceAddedCallback)
mk_DBusObjectInterfaceAddedCallback C_DBusObjectInterfaceAddedCallback
wrapped'
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"interface-added" FunPtr C_DBusObjectInterfaceAddedCallback
wrapped'' SignalConnectMode
SignalConnectBefore forall a. Maybe a
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 = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> DBusObjectInterfaceAddedCallback
wrapped a
self = let ?self = a
self in (?self::a) => DBusObjectInterfaceAddedCallback
cb
let wrapped' :: C_DBusObjectInterfaceAddedCallback
wrapped' = forall a.
GObject a =>
(a -> DBusObjectInterfaceAddedCallback)
-> C_DBusObjectInterfaceAddedCallback
wrap_DBusObjectInterfaceAddedCallback a -> DBusObjectInterfaceAddedCallback
wrapped
FunPtr C_DBusObjectInterfaceAddedCallback
wrapped'' <- C_DBusObjectInterfaceAddedCallback
-> IO (FunPtr C_DBusObjectInterfaceAddedCallback)
mk_DBusObjectInterfaceAddedCallback C_DBusObjectInterfaceAddedCallback
wrapped'
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"interface-added" FunPtr C_DBusObjectInterfaceAddedCallback
wrapped'' SignalConnectMode
SignalConnectAfter forall a. Maybe a
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.30/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
DBusInterface
interface' <- (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
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient Ptr DBusObject
gi'selfPtr forall a b. (a -> b) -> a -> b
$ \DBusObject
gi'self -> a -> DBusObjectInterfaceAddedCallback
gi'cb (coerce :: 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 = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> DBusObjectInterfaceAddedCallback
wrapped a
self = let ?self = a
self in (?self::a) => DBusObjectInterfaceAddedCallback
cb
let wrapped' :: C_DBusObjectInterfaceAddedCallback
wrapped' = forall a.
GObject a =>
(a -> DBusObjectInterfaceAddedCallback)
-> C_DBusObjectInterfaceAddedCallback
wrap_DBusObjectInterfaceRemovedCallback a -> DBusObjectInterfaceAddedCallback
wrapped
FunPtr C_DBusObjectInterfaceAddedCallback
wrapped'' <- C_DBusObjectInterfaceAddedCallback
-> IO (FunPtr C_DBusObjectInterfaceAddedCallback)
mk_DBusObjectInterfaceRemovedCallback C_DBusObjectInterfaceAddedCallback
wrapped'
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"interface-removed" FunPtr C_DBusObjectInterfaceAddedCallback
wrapped'' SignalConnectMode
SignalConnectBefore forall a. Maybe a
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 = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> DBusObjectInterfaceAddedCallback
wrapped a
self = let ?self = a
self in (?self::a) => DBusObjectInterfaceAddedCallback
cb
let wrapped' :: C_DBusObjectInterfaceAddedCallback
wrapped' = forall a.
GObject a =>
(a -> DBusObjectInterfaceAddedCallback)
-> C_DBusObjectInterfaceAddedCallback
wrap_DBusObjectInterfaceRemovedCallback a -> DBusObjectInterfaceAddedCallback
wrapped
FunPtr C_DBusObjectInterfaceAddedCallback
wrapped'' <- C_DBusObjectInterfaceAddedCallback
-> IO (FunPtr C_DBusObjectInterfaceAddedCallback)
mk_DBusObjectInterfaceRemovedCallback C_DBusObjectInterfaceAddedCallback
wrapped'
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"interface-removed" FunPtr C_DBusObjectInterfaceAddedCallback
wrapped'' SignalConnectMode
SignalConnectAfter forall a. Maybe a
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.30/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