{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.IBus.Objects.Proxy
(
Proxy(..) ,
IsProxy ,
toProxy ,
#if defined(ENABLE_OVERLOADING)
ResolveProxyMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
ProxyDestroyMethodInfo ,
#endif
proxyDestroy ,
C_ProxyDestroyCallback ,
ProxyDestroyCallback ,
#if defined(ENABLE_OVERLOADING)
ProxyDestroySignalInfo ,
#endif
afterProxyDestroy ,
genClosure_ProxyDestroy ,
mk_ProxyDestroyCallback ,
noProxyDestroyCallback ,
onProxyDestroy ,
wrap_ProxyDestroyCallback ,
) 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.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
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 qualified GI.Gio.Interfaces.AsyncInitable as Gio.AsyncInitable
import qualified GI.Gio.Interfaces.DBusInterface as Gio.DBusInterface
import qualified GI.Gio.Interfaces.Initable as Gio.Initable
import qualified GI.Gio.Objects.DBusProxy as Gio.DBusProxy
newtype Proxy = Proxy (ManagedPtr Proxy)
deriving (Proxy -> Proxy -> Bool
(Proxy -> Proxy -> Bool) -> (Proxy -> Proxy -> Bool) -> Eq Proxy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Proxy -> Proxy -> Bool
$c/= :: Proxy -> Proxy -> Bool
== :: Proxy -> Proxy -> Bool
$c== :: Proxy -> Proxy -> Bool
Eq)
foreign import ccall "ibus_proxy_get_type"
c_ibus_proxy_get_type :: IO GType
instance GObject Proxy where
gobjectType :: IO GType
gobjectType = IO GType
c_ibus_proxy_get_type
instance B.GValue.IsGValue Proxy where
toGValue :: Proxy -> IO GValue
toGValue Proxy
o = do
GType
gtype <- IO GType
c_ibus_proxy_get_type
Proxy -> (Ptr Proxy -> IO GValue) -> IO GValue
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr Proxy
o (GType -> (GValue -> Ptr Proxy -> IO ()) -> Ptr Proxy -> IO GValue
forall a. GType -> (GValue -> a -> IO ()) -> a -> IO GValue
B.GValue.buildGValue GType
gtype GValue -> Ptr Proxy -> IO ()
forall a. GObject a => GValue -> Ptr a -> IO ()
B.GValue.set_object)
fromGValue :: GValue -> IO Proxy
fromGValue GValue
gv = do
Ptr Proxy
ptr <- GValue -> IO (Ptr Proxy)
forall b. GObject b => GValue -> IO (Ptr b)
B.GValue.get_object GValue
gv :: IO (Ptr Proxy)
(ManagedPtr Proxy -> Proxy) -> Ptr Proxy -> IO Proxy
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr Proxy -> Proxy
Proxy Ptr Proxy
ptr
class (GObject o, O.IsDescendantOf Proxy o) => IsProxy o
instance (GObject o, O.IsDescendantOf Proxy o) => IsProxy o
instance O.HasParentTypes Proxy
type instance O.ParentTypes Proxy = '[Gio.DBusProxy.DBusProxy, GObject.Object.Object, Gio.AsyncInitable.AsyncInitable, Gio.DBusInterface.DBusInterface, Gio.Initable.Initable]
toProxy :: (MonadIO m, IsProxy o) => o -> m Proxy
toProxy :: o -> m Proxy
toProxy = IO Proxy -> m Proxy
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Proxy -> m Proxy) -> (o -> IO Proxy) -> o -> m Proxy
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr Proxy -> Proxy) -> o -> IO Proxy
forall o o'.
(HasCallStack, GObject o, GObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
unsafeCastTo ManagedPtr Proxy -> Proxy
Proxy
#if defined(ENABLE_OVERLOADING)
type family ResolveProxyMethod (t :: Symbol) (o :: *) :: * where
ResolveProxyMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveProxyMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveProxyMethod "call" o = Gio.DBusProxy.DBusProxyCallMethodInfo
ResolveProxyMethod "callFinish" o = Gio.DBusProxy.DBusProxyCallFinishMethodInfo
ResolveProxyMethod "callSync" o = Gio.DBusProxy.DBusProxyCallSyncMethodInfo
ResolveProxyMethod "callWithUnixFdList" o = Gio.DBusProxy.DBusProxyCallWithUnixFdListMethodInfo
ResolveProxyMethod "callWithUnixFdListFinish" o = Gio.DBusProxy.DBusProxyCallWithUnixFdListFinishMethodInfo
ResolveProxyMethod "callWithUnixFdListSync" o = Gio.DBusProxy.DBusProxyCallWithUnixFdListSyncMethodInfo
ResolveProxyMethod "destroy" o = ProxyDestroyMethodInfo
ResolveProxyMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveProxyMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveProxyMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveProxyMethod "init" o = Gio.Initable.InitableInitMethodInfo
ResolveProxyMethod "initAsync" o = Gio.AsyncInitable.AsyncInitableInitAsyncMethodInfo
ResolveProxyMethod "initFinish" o = Gio.AsyncInitable.AsyncInitableInitFinishMethodInfo
ResolveProxyMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveProxyMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveProxyMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveProxyMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveProxyMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveProxyMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveProxyMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveProxyMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveProxyMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveProxyMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveProxyMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveProxyMethod "getCachedProperty" o = Gio.DBusProxy.DBusProxyGetCachedPropertyMethodInfo
ResolveProxyMethod "getCachedPropertyNames" o = Gio.DBusProxy.DBusProxyGetCachedPropertyNamesMethodInfo
ResolveProxyMethod "getConnection" o = Gio.DBusProxy.DBusProxyGetConnectionMethodInfo
ResolveProxyMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveProxyMethod "getDefaultTimeout" o = Gio.DBusProxy.DBusProxyGetDefaultTimeoutMethodInfo
ResolveProxyMethod "getFlags" o = Gio.DBusProxy.DBusProxyGetFlagsMethodInfo
ResolveProxyMethod "getInfo" o = Gio.DBusInterface.DBusInterfaceGetInfoMethodInfo
ResolveProxyMethod "getInterfaceInfo" o = Gio.DBusProxy.DBusProxyGetInterfaceInfoMethodInfo
ResolveProxyMethod "getInterfaceName" o = Gio.DBusProxy.DBusProxyGetInterfaceNameMethodInfo
ResolveProxyMethod "getName" o = Gio.DBusProxy.DBusProxyGetNameMethodInfo
ResolveProxyMethod "getNameOwner" o = Gio.DBusProxy.DBusProxyGetNameOwnerMethodInfo
ResolveProxyMethod "getObject" o = Gio.DBusInterface.DBusInterfaceGetObjectMethodInfo
ResolveProxyMethod "getObjectPath" o = Gio.DBusProxy.DBusProxyGetObjectPathMethodInfo
ResolveProxyMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveProxyMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveProxyMethod "setCachedProperty" o = Gio.DBusProxy.DBusProxySetCachedPropertyMethodInfo
ResolveProxyMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveProxyMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveProxyMethod "setDefaultTimeout" o = Gio.DBusProxy.DBusProxySetDefaultTimeoutMethodInfo
ResolveProxyMethod "setInterfaceInfo" o = Gio.DBusProxy.DBusProxySetInterfaceInfoMethodInfo
ResolveProxyMethod "setObject" o = Gio.DBusInterface.DBusInterfaceSetObjectMethodInfo
ResolveProxyMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveProxyMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveProxyMethod t Proxy, O.MethodInfo info Proxy p) => OL.IsLabel t (Proxy -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#endif
type ProxyDestroyCallback =
IO ()
noProxyDestroyCallback :: Maybe ProxyDestroyCallback
noProxyDestroyCallback :: Maybe (IO ())
noProxyDestroyCallback = Maybe (IO ())
forall a. Maybe a
Nothing
type C_ProxyDestroyCallback =
Ptr () ->
Ptr () ->
IO ()
foreign import ccall "wrapper"
mk_ProxyDestroyCallback :: C_ProxyDestroyCallback -> IO (FunPtr C_ProxyDestroyCallback)
genClosure_ProxyDestroy :: MonadIO m => ProxyDestroyCallback -> m (GClosure C_ProxyDestroyCallback)
genClosure_ProxyDestroy :: IO () -> m (GClosure C_ProxyDestroyCallback)
genClosure_ProxyDestroy IO ()
cb = IO (GClosure C_ProxyDestroyCallback)
-> m (GClosure C_ProxyDestroyCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_ProxyDestroyCallback)
-> m (GClosure C_ProxyDestroyCallback))
-> IO (GClosure C_ProxyDestroyCallback)
-> m (GClosure C_ProxyDestroyCallback)
forall a b. (a -> b) -> a -> b
$ do
let cb' :: C_ProxyDestroyCallback
cb' = IO () -> C_ProxyDestroyCallback
wrap_ProxyDestroyCallback IO ()
cb
C_ProxyDestroyCallback -> IO (FunPtr C_ProxyDestroyCallback)
mk_ProxyDestroyCallback C_ProxyDestroyCallback
cb' IO (FunPtr C_ProxyDestroyCallback)
-> (FunPtr C_ProxyDestroyCallback
-> IO (GClosure C_ProxyDestroyCallback))
-> IO (GClosure C_ProxyDestroyCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_ProxyDestroyCallback
-> IO (GClosure C_ProxyDestroyCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure
wrap_ProxyDestroyCallback ::
ProxyDestroyCallback ->
C_ProxyDestroyCallback
wrap_ProxyDestroyCallback :: IO () -> C_ProxyDestroyCallback
wrap_ProxyDestroyCallback IO ()
_cb Ptr ()
_ Ptr ()
_ = do
IO ()
_cb
onProxyDestroy :: (IsProxy a, MonadIO m) => a -> ProxyDestroyCallback -> m SignalHandlerId
onProxyDestroy :: a -> IO () -> m SignalHandlerId
onProxyDestroy a
obj IO ()
cb = IO SignalHandlerId -> m SignalHandlerId
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 cb' :: C_ProxyDestroyCallback
cb' = IO () -> C_ProxyDestroyCallback
wrap_ProxyDestroyCallback IO ()
cb
FunPtr C_ProxyDestroyCallback
cb'' <- C_ProxyDestroyCallback -> IO (FunPtr C_ProxyDestroyCallback)
mk_ProxyDestroyCallback C_ProxyDestroyCallback
cb'
a
-> Text
-> FunPtr C_ProxyDestroyCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"destroy" FunPtr C_ProxyDestroyCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing
afterProxyDestroy :: (IsProxy a, MonadIO m) => a -> ProxyDestroyCallback -> m SignalHandlerId
afterProxyDestroy :: a -> IO () -> m SignalHandlerId
afterProxyDestroy a
obj IO ()
cb = IO SignalHandlerId -> m SignalHandlerId
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 cb' :: C_ProxyDestroyCallback
cb' = IO () -> C_ProxyDestroyCallback
wrap_ProxyDestroyCallback IO ()
cb
FunPtr C_ProxyDestroyCallback
cb'' <- C_ProxyDestroyCallback -> IO (FunPtr C_ProxyDestroyCallback)
mk_ProxyDestroyCallback C_ProxyDestroyCallback
cb'
a
-> Text
-> FunPtr C_ProxyDestroyCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"destroy" FunPtr C_ProxyDestroyCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
data ProxyDestroySignalInfo
instance SignalInfo ProxyDestroySignalInfo where
type HaskellCallbackType ProxyDestroySignalInfo = ProxyDestroyCallback
connectSignal obj cb connectMode detail = do
let cb' = wrap_ProxyDestroyCallback cb
cb'' <- mk_ProxyDestroyCallback cb'
connectSignalFunPtr obj "destroy" cb'' connectMode detail
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList Proxy
type instance O.AttributeList Proxy = ProxyAttributeList
type ProxyAttributeList = ('[ '("gBusType", Gio.DBusProxy.DBusProxyGBusTypePropertyInfo), '("gConnection", Gio.DBusProxy.DBusProxyGConnectionPropertyInfo), '("gDefaultTimeout", Gio.DBusProxy.DBusProxyGDefaultTimeoutPropertyInfo), '("gFlags", Gio.DBusProxy.DBusProxyGFlagsPropertyInfo), '("gInterfaceInfo", Gio.DBusProxy.DBusProxyGInterfaceInfoPropertyInfo), '("gInterfaceName", Gio.DBusProxy.DBusProxyGInterfaceNamePropertyInfo), '("gName", Gio.DBusProxy.DBusProxyGNamePropertyInfo), '("gNameOwner", Gio.DBusProxy.DBusProxyGNameOwnerPropertyInfo), '("gObjectPath", Gio.DBusProxy.DBusProxyGObjectPathPropertyInfo)] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING)
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList Proxy = ProxySignalList
type ProxySignalList = ('[ '("destroy", ProxyDestroySignalInfo), '("gPropertiesChanged", Gio.DBusProxy.DBusProxyGPropertiesChangedSignalInfo), '("gSignal", Gio.DBusProxy.DBusProxyGSignalSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "ibus_proxy_destroy" ibus_proxy_destroy ::
Ptr Proxy ->
IO ()
proxyDestroy ::
(B.CallStack.HasCallStack, MonadIO m, IsProxy a) =>
a
-> m ()
proxyDestroy :: a -> m ()
proxyDestroy a
proxy = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr Proxy
proxy' <- a -> IO (Ptr Proxy)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
proxy
Ptr Proxy -> IO ()
ibus_proxy_destroy Ptr Proxy
proxy'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
proxy
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data ProxyDestroyMethodInfo
instance (signature ~ (m ()), MonadIO m, IsProxy a) => O.MethodInfo ProxyDestroyMethodInfo a signature where
overloadedMethod = proxyDestroy
#endif