{-# 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.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.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 GHC.Records as R
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 (SP.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)
instance SP.ManagedPtrNewtype Proxy where
toManagedPtr :: Proxy -> ManagedPtr Proxy
toManagedPtr (Proxy ManagedPtr Proxy
p) = ManagedPtr Proxy
p
foreign import ccall "ibus_proxy_get_type"
c_ibus_proxy_get_type :: IO B.Types.GType
instance B.Types.TypedObject Proxy where
glibType :: IO GType
glibType = IO GType
c_ibus_proxy_get_type
instance B.Types.GObject Proxy
class (SP.GObject o, O.IsDescendantOf Proxy o) => IsProxy o
instance (SP.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 :: (MIO.MonadIO m, IsProxy o) => o -> m Proxy
toProxy :: forall (m :: * -> *) o. (MonadIO m, IsProxy o) => o -> m Proxy
toProxy = IO Proxy -> m Proxy
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.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, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr Proxy -> Proxy
Proxy
instance B.GValue.IsGValue (Maybe Proxy) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_ibus_proxy_get_type
gvalueSet_ :: Ptr GValue -> Maybe Proxy -> IO ()
gvalueSet_ Ptr GValue
gv Maybe Proxy
P.Nothing = Ptr GValue -> Ptr Proxy -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr Proxy
forall a. Ptr a
FP.nullPtr :: FP.Ptr Proxy)
gvalueSet_ Ptr GValue
gv (P.Just Proxy
obj) = Proxy -> (Ptr Proxy -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr Proxy
obj (Ptr GValue -> Ptr Proxy -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe Proxy)
gvalueGet_ Ptr GValue
gv = do
Ptr Proxy
ptr <- Ptr GValue -> IO (Ptr Proxy)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr Proxy)
if Ptr Proxy
ptr Ptr Proxy -> Ptr Proxy -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr Proxy
forall a. Ptr a
FP.nullPtr
then Proxy -> Maybe Proxy
forall a. a -> Maybe a
P.Just (Proxy -> Maybe Proxy) -> IO Proxy -> IO (Maybe Proxy)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (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
else Maybe Proxy -> IO (Maybe Proxy)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Proxy
forall a. Maybe a
P.Nothing
#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.OverloadedMethod 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
#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveProxyMethod t Proxy, O.OverloadedMethod info Proxy p, R.HasField t Proxy p) => R.HasField t Proxy p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveProxyMethod t Proxy, O.OverloadedMethodInfo info Proxy) => OL.IsLabel t (O.MethodProxy info Proxy) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#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 :: forall (m :: * -> *).
MonadIO m =>
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 :: forall a (m :: * -> *).
(IsProxy a, MonadIO m) =>
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 :: forall a (m :: * -> *).
(IsProxy a, MonadIO m) =>
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 :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsProxy a) =>
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.OverloadedMethod ProxyDestroyMethodInfo a signature where
overloadedMethod = proxyDestroy
instance O.OverloadedMethodInfo ProxyDestroyMethodInfo a where
overloadedMethodInfo = O.MethodInfo {
O.overloadedMethodName = "GI.IBus.Objects.Proxy.proxyDestroy",
O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-ibus-1.5.3/docs/GI-IBus-Objects-Proxy.html#v:proxyDestroy"
}
#endif