{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.IBus.Objects.Component
    ( 
    Component(..)                           ,
    IsComponent                             ,
    toComponent                             ,
 
#if defined(ENABLE_OVERLOADING)
    ResolveComponentMethod                  ,
#endif
#if defined(ENABLE_OVERLOADING)
    ComponentAddEngineMethodInfo            ,
#endif
    componentAddEngine                      ,
#if defined(ENABLE_OVERLOADING)
    ComponentAddObservedPathMethodInfo      ,
#endif
    componentAddObservedPath                ,
#if defined(ENABLE_OVERLOADING)
    ComponentCheckModificationMethodInfo    ,
#endif
    componentCheckModification              ,
#if defined(ENABLE_OVERLOADING)
    ComponentGetAuthorMethodInfo            ,
#endif
    componentGetAuthor                      ,
#if defined(ENABLE_OVERLOADING)
    ComponentGetDescriptionMethodInfo       ,
#endif
    componentGetDescription                 ,
#if defined(ENABLE_OVERLOADING)
    ComponentGetEnginesMethodInfo           ,
#endif
    componentGetEngines                     ,
#if defined(ENABLE_OVERLOADING)
    ComponentGetExecMethodInfo              ,
#endif
    componentGetExec                        ,
#if defined(ENABLE_OVERLOADING)
    ComponentGetHomepageMethodInfo          ,
#endif
    componentGetHomepage                    ,
#if defined(ENABLE_OVERLOADING)
    ComponentGetLicenseMethodInfo           ,
#endif
    componentGetLicense                     ,
#if defined(ENABLE_OVERLOADING)
    ComponentGetNameMethodInfo              ,
#endif
    componentGetName                        ,
#if defined(ENABLE_OVERLOADING)
    ComponentGetObservedPathsMethodInfo     ,
#endif
    componentGetObservedPaths               ,
#if defined(ENABLE_OVERLOADING)
    ComponentGetTextdomainMethodInfo        ,
#endif
    componentGetTextdomain                  ,
#if defined(ENABLE_OVERLOADING)
    ComponentGetVersionMethodInfo           ,
#endif
    componentGetVersion                     ,
    componentNew                            ,
    componentNewFromFile                    ,
    componentNewFromXmlNode                 ,
#if defined(ENABLE_OVERLOADING)
    ComponentOutputMethodInfo               ,
#endif
    componentOutput                         ,
#if defined(ENABLE_OVERLOADING)
    ComponentOutputEnginesMethodInfo        ,
#endif
    componentOutputEngines                  ,
 
#if defined(ENABLE_OVERLOADING)
    ComponentAuthorPropertyInfo             ,
#endif
#if defined(ENABLE_OVERLOADING)
    componentAuthor                         ,
#endif
    constructComponentAuthor                ,
    getComponentAuthor                      ,
#if defined(ENABLE_OVERLOADING)
    ComponentCommandLinePropertyInfo        ,
#endif
#if defined(ENABLE_OVERLOADING)
    componentCommandLine                    ,
#endif
    constructComponentCommandLine           ,
    getComponentCommandLine                 ,
#if defined(ENABLE_OVERLOADING)
    ComponentDescriptionPropertyInfo        ,
#endif
#if defined(ENABLE_OVERLOADING)
    componentDescription                    ,
#endif
    constructComponentDescription           ,
    getComponentDescription                 ,
#if defined(ENABLE_OVERLOADING)
    ComponentHomepagePropertyInfo           ,
#endif
#if defined(ENABLE_OVERLOADING)
    componentHomepage                       ,
#endif
    constructComponentHomepage              ,
    getComponentHomepage                    ,
#if defined(ENABLE_OVERLOADING)
    ComponentLicensePropertyInfo            ,
#endif
#if defined(ENABLE_OVERLOADING)
    componentLicense                        ,
#endif
    constructComponentLicense               ,
    getComponentLicense                     ,
#if defined(ENABLE_OVERLOADING)
    ComponentNamePropertyInfo               ,
#endif
#if defined(ENABLE_OVERLOADING)
    componentName                           ,
#endif
    constructComponentName                  ,
    getComponentName                        ,
#if defined(ENABLE_OVERLOADING)
    ComponentTextdomainPropertyInfo         ,
#endif
#if defined(ENABLE_OVERLOADING)
    componentTextdomain                     ,
#endif
    constructComponentTextdomain            ,
    getComponentTextdomain                  ,
#if defined(ENABLE_OVERLOADING)
    ComponentVersionPropertyInfo            ,
#endif
#if defined(ENABLE_OVERLOADING)
    componentVersion                        ,
#endif
    constructComponentVersion               ,
    getComponentVersion                     ,
    ) 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.IBus.Objects.EngineDesc as IBus.EngineDesc
import {-# SOURCE #-} qualified GI.IBus.Objects.Object as IBus.Object
import {-# SOURCE #-} qualified GI.IBus.Objects.ObservedPath as IBus.ObservedPath
import {-# SOURCE #-} qualified GI.IBus.Objects.Serializable as IBus.Serializable
import {-# SOURCE #-} qualified GI.IBus.Structs.XML as IBus.XML
#else
import qualified GI.GLib.Structs.String as GLib.String
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.IBus.Objects.EngineDesc as IBus.EngineDesc
import {-# SOURCE #-} qualified GI.IBus.Objects.Object as IBus.Object
import {-# SOURCE #-} qualified GI.IBus.Objects.ObservedPath as IBus.ObservedPath
import {-# SOURCE #-} qualified GI.IBus.Objects.Serializable as IBus.Serializable
import {-# SOURCE #-} qualified GI.IBus.Structs.XML as IBus.XML
#endif
newtype Component = Component (SP.ManagedPtr Component)
    deriving (Component -> Component -> Bool
(Component -> Component -> Bool)
-> (Component -> Component -> Bool) -> Eq Component
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Component -> Component -> Bool
== :: Component -> Component -> Bool
$c/= :: Component -> Component -> Bool
/= :: Component -> Component -> Bool
Eq)
instance SP.ManagedPtrNewtype Component where
    toManagedPtr :: Component -> ManagedPtr Component
toManagedPtr (Component ManagedPtr Component
p) = ManagedPtr Component
p
foreign import ccall "ibus_component_get_type"
    c_ibus_component_get_type :: IO B.Types.GType
instance B.Types.TypedObject Component where
    glibType :: IO GType
glibType = IO GType
c_ibus_component_get_type
instance B.Types.GObject Component
class (SP.GObject o, O.IsDescendantOf Component o) => IsComponent o
instance (SP.GObject o, O.IsDescendantOf Component o) => IsComponent o
instance O.HasParentTypes Component
type instance O.ParentTypes Component = '[IBus.Serializable.Serializable, IBus.Object.Object, GObject.Object.Object]
toComponent :: (MIO.MonadIO m, IsComponent o) => o -> m Component
toComponent :: forall (m :: * -> *) o.
(MonadIO m, IsComponent o) =>
o -> m Component
toComponent = IO Component -> m Component
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Component -> m Component)
-> (o -> IO Component) -> o -> m Component
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr Component -> Component) -> o -> IO Component
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
 ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr Component -> Component
Component
instance B.GValue.IsGValue (Maybe Component) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_ibus_component_get_type
    gvalueSet_ :: Ptr GValue -> Maybe Component -> IO ()
gvalueSet_ Ptr GValue
gv Maybe Component
P.Nothing = Ptr GValue -> Ptr Component -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr Component
forall a. Ptr a
FP.nullPtr :: FP.Ptr Component)
    gvalueSet_ Ptr GValue
gv (P.Just Component
obj) = Component -> (Ptr Component -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr Component
obj (Ptr GValue -> Ptr Component -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe Component)
gvalueGet_ Ptr GValue
gv = do
        Ptr Component
ptr <- Ptr GValue -> IO (Ptr Component)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr Component)
        if Ptr Component
ptr Ptr Component -> Ptr Component -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr Component
forall a. Ptr a
FP.nullPtr
        then Component -> Maybe Component
forall a. a -> Maybe a
P.Just (Component -> Maybe Component)
-> IO Component -> IO (Maybe Component)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr Component -> Component)
-> Ptr Component -> IO Component
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr Component -> Component
Component Ptr Component
ptr
        else Maybe Component -> IO (Maybe Component)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Component
forall a. Maybe a
P.Nothing
        
    
#if defined(ENABLE_OVERLOADING)
type family ResolveComponentMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
    ResolveComponentMethod "addEngine" o = ComponentAddEngineMethodInfo
    ResolveComponentMethod "addObservedPath" o = ComponentAddObservedPathMethodInfo
    ResolveComponentMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveComponentMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveComponentMethod "checkModification" o = ComponentCheckModificationMethodInfo
    ResolveComponentMethod "copy" o = IBus.Serializable.SerializableCopyMethodInfo
    ResolveComponentMethod "destroy" o = IBus.Object.ObjectDestroyMethodInfo
    ResolveComponentMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveComponentMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveComponentMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveComponentMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveComponentMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveComponentMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveComponentMethod "output" o = ComponentOutputMethodInfo
    ResolveComponentMethod "outputEngines" o = ComponentOutputEnginesMethodInfo
    ResolveComponentMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveComponentMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveComponentMethod "removeQattachment" o = IBus.Serializable.SerializableRemoveQattachmentMethodInfo
    ResolveComponentMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveComponentMethod "serializeObject" o = IBus.Serializable.SerializableSerializeObjectMethodInfo
    ResolveComponentMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveComponentMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveComponentMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveComponentMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveComponentMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveComponentMethod "getAuthor" o = ComponentGetAuthorMethodInfo
    ResolveComponentMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveComponentMethod "getDescription" o = ComponentGetDescriptionMethodInfo
    ResolveComponentMethod "getEngines" o = ComponentGetEnginesMethodInfo
    ResolveComponentMethod "getExec" o = ComponentGetExecMethodInfo
    ResolveComponentMethod "getHomepage" o = ComponentGetHomepageMethodInfo
    ResolveComponentMethod "getLicense" o = ComponentGetLicenseMethodInfo
    ResolveComponentMethod "getName" o = ComponentGetNameMethodInfo
    ResolveComponentMethod "getObservedPaths" o = ComponentGetObservedPathsMethodInfo
    ResolveComponentMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveComponentMethod "getQattachment" o = IBus.Serializable.SerializableGetQattachmentMethodInfo
    ResolveComponentMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveComponentMethod "getTextdomain" o = ComponentGetTextdomainMethodInfo
    ResolveComponentMethod "getVersion" o = ComponentGetVersionMethodInfo
    ResolveComponentMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveComponentMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveComponentMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveComponentMethod "setQattachment" o = IBus.Serializable.SerializableSetQattachmentMethodInfo
    ResolveComponentMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveComponentMethod t Component, O.OverloadedMethod info Component p) => OL.IsLabel t (Component -> 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 ~ ResolveComponentMethod t Component, O.OverloadedMethod info Component p, R.HasField t Component p) => R.HasField t Component p where
    getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveComponentMethod t Component, O.OverloadedMethodInfo info Component) => OL.IsLabel t (O.MethodProxy info Component) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.MethodProxy
#else
    fromLabel _ = O.MethodProxy
#endif
#endif
   
   
   
getComponentAuthor :: (MonadIO m, IsComponent o) => o -> m T.Text
getComponentAuthor :: forall (m :: * -> *) o. (MonadIO m, IsComponent o) => o -> m Text
getComponentAuthor o
obj = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe Text) -> IO Text
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing Text
"getComponentAuthor" (IO (Maybe Text) -> IO Text) -> IO (Maybe Text) -> IO Text
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe Text)
forall a. GObject a => a -> String -> IO (Maybe Text)
B.Properties.getObjectPropertyString o
obj String
"author"
constructComponentAuthor :: (IsComponent o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
constructComponentAuthor :: forall o (m :: * -> *).
(IsComponent o, MonadIO m) =>
Text -> m (GValueConstruct o)
constructComponentAuthor Text
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe Text -> IO (GValueConstruct o)
forall o. String -> Maybe Text -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyString String
"author" (Text -> Maybe Text
forall a. a -> Maybe a
P.Just Text
val)
#if defined(ENABLE_OVERLOADING)
data ComponentAuthorPropertyInfo
instance AttrInfo ComponentAuthorPropertyInfo where
    type AttrAllowedOps ComponentAuthorPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint ComponentAuthorPropertyInfo = IsComponent
    type AttrSetTypeConstraint ComponentAuthorPropertyInfo = (~) T.Text
    type AttrTransferTypeConstraint ComponentAuthorPropertyInfo = (~) T.Text
    type AttrTransferType ComponentAuthorPropertyInfo = T.Text
    type AttrGetType ComponentAuthorPropertyInfo = T.Text
    type AttrLabel ComponentAuthorPropertyInfo = "author"
    type AttrOrigin ComponentAuthorPropertyInfo = Component
    attrGet = getComponentAuthor
    attrSet = undefined
    attrTransfer _ v = do
        return v
    attrConstruct = constructComponentAuthor
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.IBus.Objects.Component.author"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ibus-1.5.8/docs/GI-IBus-Objects-Component.html#g:attr:author"
        })
#endif
   
   
   
getComponentCommandLine :: (MonadIO m, IsComponent o) => o -> m (Maybe T.Text)
getComponentCommandLine :: forall (m :: * -> *) o.
(MonadIO m, IsComponent o) =>
o -> m (Maybe Text)
getComponentCommandLine o
obj = IO (Maybe Text) -> m (Maybe Text)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe Text) -> m (Maybe Text))
-> IO (Maybe Text) -> m (Maybe Text)
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe Text)
forall a. GObject a => a -> String -> IO (Maybe Text)
B.Properties.getObjectPropertyString o
obj String
"command-line"
constructComponentCommandLine :: (IsComponent o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
constructComponentCommandLine :: forall o (m :: * -> *).
(IsComponent o, MonadIO m) =>
Text -> m (GValueConstruct o)
constructComponentCommandLine Text
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe Text -> IO (GValueConstruct o)
forall o. String -> Maybe Text -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyString String
"command-line" (Text -> Maybe Text
forall a. a -> Maybe a
P.Just Text
val)
#if defined(ENABLE_OVERLOADING)
data ComponentCommandLinePropertyInfo
instance AttrInfo ComponentCommandLinePropertyInfo where
    type AttrAllowedOps ComponentCommandLinePropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint ComponentCommandLinePropertyInfo = IsComponent
    type AttrSetTypeConstraint ComponentCommandLinePropertyInfo = (~) T.Text
    type AttrTransferTypeConstraint ComponentCommandLinePropertyInfo = (~) T.Text
    type AttrTransferType ComponentCommandLinePropertyInfo = T.Text
    type AttrGetType ComponentCommandLinePropertyInfo = (Maybe T.Text)
    type AttrLabel ComponentCommandLinePropertyInfo = "command-line"
    type AttrOrigin ComponentCommandLinePropertyInfo = Component
    attrGet = getComponentCommandLine
    attrSet = undefined
    attrTransfer _ v = do
        return v
    attrConstruct = constructComponentCommandLine
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.IBus.Objects.Component.commandLine"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ibus-1.5.8/docs/GI-IBus-Objects-Component.html#g:attr:commandLine"
        })
#endif
   
   
   
getComponentDescription :: (MonadIO m, IsComponent o) => o -> m T.Text
getComponentDescription :: forall (m :: * -> *) o. (MonadIO m, IsComponent o) => o -> m Text
getComponentDescription o
obj = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe Text) -> IO Text
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing Text
"getComponentDescription" (IO (Maybe Text) -> IO Text) -> IO (Maybe Text) -> IO Text
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe Text)
forall a. GObject a => a -> String -> IO (Maybe Text)
B.Properties.getObjectPropertyString o
obj String
"description"
constructComponentDescription :: (IsComponent o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
constructComponentDescription :: forall o (m :: * -> *).
(IsComponent o, MonadIO m) =>
Text -> m (GValueConstruct o)
constructComponentDescription Text
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe Text -> IO (GValueConstruct o)
forall o. String -> Maybe Text -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyString String
"description" (Text -> Maybe Text
forall a. a -> Maybe a
P.Just Text
val)
#if defined(ENABLE_OVERLOADING)
data ComponentDescriptionPropertyInfo
instance AttrInfo ComponentDescriptionPropertyInfo where
    type AttrAllowedOps ComponentDescriptionPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint ComponentDescriptionPropertyInfo = IsComponent
    type AttrSetTypeConstraint ComponentDescriptionPropertyInfo = (~) T.Text
    type AttrTransferTypeConstraint ComponentDescriptionPropertyInfo = (~) T.Text
    type AttrTransferType ComponentDescriptionPropertyInfo = T.Text
    type AttrGetType ComponentDescriptionPropertyInfo = T.Text
    type AttrLabel ComponentDescriptionPropertyInfo = "description"
    type AttrOrigin ComponentDescriptionPropertyInfo = Component
    attrGet = getComponentDescription
    attrSet = undefined
    attrTransfer _ v = do
        return v
    attrConstruct = constructComponentDescription
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.IBus.Objects.Component.description"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ibus-1.5.8/docs/GI-IBus-Objects-Component.html#g:attr:description"
        })
#endif
   
   
   
getComponentHomepage :: (MonadIO m, IsComponent o) => o -> m T.Text
getComponentHomepage :: forall (m :: * -> *) o. (MonadIO m, IsComponent o) => o -> m Text
getComponentHomepage o
obj = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe Text) -> IO Text
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing Text
"getComponentHomepage" (IO (Maybe Text) -> IO Text) -> IO (Maybe Text) -> IO Text
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe Text)
forall a. GObject a => a -> String -> IO (Maybe Text)
B.Properties.getObjectPropertyString o
obj String
"homepage"
constructComponentHomepage :: (IsComponent o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
constructComponentHomepage :: forall o (m :: * -> *).
(IsComponent o, MonadIO m) =>
Text -> m (GValueConstruct o)
constructComponentHomepage Text
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe Text -> IO (GValueConstruct o)
forall o. String -> Maybe Text -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyString String
"homepage" (Text -> Maybe Text
forall a. a -> Maybe a
P.Just Text
val)
#if defined(ENABLE_OVERLOADING)
data ComponentHomepagePropertyInfo
instance AttrInfo ComponentHomepagePropertyInfo where
    type AttrAllowedOps ComponentHomepagePropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint ComponentHomepagePropertyInfo = IsComponent
    type AttrSetTypeConstraint ComponentHomepagePropertyInfo = (~) T.Text
    type AttrTransferTypeConstraint ComponentHomepagePropertyInfo = (~) T.Text
    type AttrTransferType ComponentHomepagePropertyInfo = T.Text
    type AttrGetType ComponentHomepagePropertyInfo = T.Text
    type AttrLabel ComponentHomepagePropertyInfo = "homepage"
    type AttrOrigin ComponentHomepagePropertyInfo = Component
    attrGet = getComponentHomepage
    attrSet = undefined
    attrTransfer _ v = do
        return v
    attrConstruct = constructComponentHomepage
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.IBus.Objects.Component.homepage"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ibus-1.5.8/docs/GI-IBus-Objects-Component.html#g:attr:homepage"
        })
#endif
   
   
   
getComponentLicense :: (MonadIO m, IsComponent o) => o -> m T.Text
getComponentLicense :: forall (m :: * -> *) o. (MonadIO m, IsComponent o) => o -> m Text
getComponentLicense o
obj = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe Text) -> IO Text
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing Text
"getComponentLicense" (IO (Maybe Text) -> IO Text) -> IO (Maybe Text) -> IO Text
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe Text)
forall a. GObject a => a -> String -> IO (Maybe Text)
B.Properties.getObjectPropertyString o
obj String
"license"
constructComponentLicense :: (IsComponent o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
constructComponentLicense :: forall o (m :: * -> *).
(IsComponent o, MonadIO m) =>
Text -> m (GValueConstruct o)
constructComponentLicense Text
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe Text -> IO (GValueConstruct o)
forall o. String -> Maybe Text -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyString String
"license" (Text -> Maybe Text
forall a. a -> Maybe a
P.Just Text
val)
#if defined(ENABLE_OVERLOADING)
data ComponentLicensePropertyInfo
instance AttrInfo ComponentLicensePropertyInfo where
    type AttrAllowedOps ComponentLicensePropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint ComponentLicensePropertyInfo = IsComponent
    type AttrSetTypeConstraint ComponentLicensePropertyInfo = (~) T.Text
    type AttrTransferTypeConstraint ComponentLicensePropertyInfo = (~) T.Text
    type AttrTransferType ComponentLicensePropertyInfo = T.Text
    type AttrGetType ComponentLicensePropertyInfo = T.Text
    type AttrLabel ComponentLicensePropertyInfo = "license"
    type AttrOrigin ComponentLicensePropertyInfo = Component
    attrGet = getComponentLicense
    attrSet = undefined
    attrTransfer _ v = do
        return v
    attrConstruct = constructComponentLicense
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.IBus.Objects.Component.license"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ibus-1.5.8/docs/GI-IBus-Objects-Component.html#g:attr:license"
        })
#endif
   
   
   
getComponentName :: (MonadIO m, IsComponent o) => o -> m T.Text
getComponentName :: forall (m :: * -> *) o. (MonadIO m, IsComponent o) => o -> m Text
getComponentName o
obj = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe Text) -> IO Text
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing Text
"getComponentName" (IO (Maybe Text) -> IO Text) -> IO (Maybe Text) -> IO Text
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe Text)
forall a. GObject a => a -> String -> IO (Maybe Text)
B.Properties.getObjectPropertyString o
obj String
"name"
constructComponentName :: (IsComponent o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
constructComponentName :: forall o (m :: * -> *).
(IsComponent o, MonadIO m) =>
Text -> m (GValueConstruct o)
constructComponentName Text
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe Text -> IO (GValueConstruct o)
forall o. String -> Maybe Text -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyString String
"name" (Text -> Maybe Text
forall a. a -> Maybe a
P.Just Text
val)
#if defined(ENABLE_OVERLOADING)
data ComponentNamePropertyInfo
instance AttrInfo ComponentNamePropertyInfo where
    type AttrAllowedOps ComponentNamePropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint ComponentNamePropertyInfo = IsComponent
    type AttrSetTypeConstraint ComponentNamePropertyInfo = (~) T.Text
    type AttrTransferTypeConstraint ComponentNamePropertyInfo = (~) T.Text
    type AttrTransferType ComponentNamePropertyInfo = T.Text
    type AttrGetType ComponentNamePropertyInfo = T.Text
    type AttrLabel ComponentNamePropertyInfo = "name"
    type AttrOrigin ComponentNamePropertyInfo = Component
    attrGet = getComponentName
    attrSet = undefined
    attrTransfer _ v = do
        return v
    attrConstruct = constructComponentName
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.IBus.Objects.Component.name"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ibus-1.5.8/docs/GI-IBus-Objects-Component.html#g:attr:name"
        })
#endif
   
   
   
getComponentTextdomain :: (MonadIO m, IsComponent o) => o -> m T.Text
getComponentTextdomain :: forall (m :: * -> *) o. (MonadIO m, IsComponent o) => o -> m Text
getComponentTextdomain o
obj = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe Text) -> IO Text
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing Text
"getComponentTextdomain" (IO (Maybe Text) -> IO Text) -> IO (Maybe Text) -> IO Text
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe Text)
forall a. GObject a => a -> String -> IO (Maybe Text)
B.Properties.getObjectPropertyString o
obj String
"textdomain"
constructComponentTextdomain :: (IsComponent o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
constructComponentTextdomain :: forall o (m :: * -> *).
(IsComponent o, MonadIO m) =>
Text -> m (GValueConstruct o)
constructComponentTextdomain Text
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe Text -> IO (GValueConstruct o)
forall o. String -> Maybe Text -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyString String
"textdomain" (Text -> Maybe Text
forall a. a -> Maybe a
P.Just Text
val)
#if defined(ENABLE_OVERLOADING)
data ComponentTextdomainPropertyInfo
instance AttrInfo ComponentTextdomainPropertyInfo where
    type AttrAllowedOps ComponentTextdomainPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint ComponentTextdomainPropertyInfo = IsComponent
    type AttrSetTypeConstraint ComponentTextdomainPropertyInfo = (~) T.Text
    type AttrTransferTypeConstraint ComponentTextdomainPropertyInfo = (~) T.Text
    type AttrTransferType ComponentTextdomainPropertyInfo = T.Text
    type AttrGetType ComponentTextdomainPropertyInfo = T.Text
    type AttrLabel ComponentTextdomainPropertyInfo = "textdomain"
    type AttrOrigin ComponentTextdomainPropertyInfo = Component
    attrGet = getComponentTextdomain
    attrSet = undefined
    attrTransfer _ v = do
        return v
    attrConstruct = constructComponentTextdomain
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.IBus.Objects.Component.textdomain"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ibus-1.5.8/docs/GI-IBus-Objects-Component.html#g:attr:textdomain"
        })
#endif
   
   
   
getComponentVersion :: (MonadIO m, IsComponent o) => o -> m T.Text
getComponentVersion :: forall (m :: * -> *) o. (MonadIO m, IsComponent o) => o -> m Text
getComponentVersion o
obj = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe Text) -> IO Text
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing Text
"getComponentVersion" (IO (Maybe Text) -> IO Text) -> IO (Maybe Text) -> IO Text
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe Text)
forall a. GObject a => a -> String -> IO (Maybe Text)
B.Properties.getObjectPropertyString o
obj String
"version"
constructComponentVersion :: (IsComponent o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
constructComponentVersion :: forall o (m :: * -> *).
(IsComponent o, MonadIO m) =>
Text -> m (GValueConstruct o)
constructComponentVersion Text
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe Text -> IO (GValueConstruct o)
forall o. String -> Maybe Text -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyString String
"version" (Text -> Maybe Text
forall a. a -> Maybe a
P.Just Text
val)
#if defined(ENABLE_OVERLOADING)
data ComponentVersionPropertyInfo
instance AttrInfo ComponentVersionPropertyInfo where
    type AttrAllowedOps ComponentVersionPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint ComponentVersionPropertyInfo = IsComponent
    type AttrSetTypeConstraint ComponentVersionPropertyInfo = (~) T.Text
    type AttrTransferTypeConstraint ComponentVersionPropertyInfo = (~) T.Text
    type AttrTransferType ComponentVersionPropertyInfo = T.Text
    type AttrGetType ComponentVersionPropertyInfo = T.Text
    type AttrLabel ComponentVersionPropertyInfo = "version"
    type AttrOrigin ComponentVersionPropertyInfo = Component
    attrGet = getComponentVersion
    attrSet = undefined
    attrTransfer _ v = do
        return v
    attrConstruct = constructComponentVersion
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.IBus.Objects.Component.version"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ibus-1.5.8/docs/GI-IBus-Objects-Component.html#g:attr:version"
        })
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList Component
type instance O.AttributeList Component = ComponentAttributeList
type ComponentAttributeList = ('[ '("author", ComponentAuthorPropertyInfo), '("commandLine", ComponentCommandLinePropertyInfo), '("description", ComponentDescriptionPropertyInfo), '("homepage", ComponentHomepagePropertyInfo), '("license", ComponentLicensePropertyInfo), '("name", ComponentNamePropertyInfo), '("textdomain", ComponentTextdomainPropertyInfo), '("version", ComponentVersionPropertyInfo)] :: [(Symbol, DK.Type)])
#endif
#if defined(ENABLE_OVERLOADING)
componentAuthor :: AttrLabelProxy "author"
componentAuthor = AttrLabelProxy
componentCommandLine :: AttrLabelProxy "commandLine"
componentCommandLine = AttrLabelProxy
componentDescription :: AttrLabelProxy "description"
componentDescription = AttrLabelProxy
componentHomepage :: AttrLabelProxy "homepage"
componentHomepage = AttrLabelProxy
componentLicense :: AttrLabelProxy "license"
componentLicense = AttrLabelProxy
componentName :: AttrLabelProxy "name"
componentName = AttrLabelProxy
componentTextdomain :: AttrLabelProxy "textdomain"
componentTextdomain = AttrLabelProxy
componentVersion :: AttrLabelProxy "version"
componentVersion = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList Component = ComponentSignalList
type ComponentSignalList = ('[ '("destroy", IBus.Object.ObjectDestroySignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, DK.Type)])
#endif
foreign import ccall "ibus_component_new" ibus_component_new :: 
    CString ->                              
    CString ->                              
    CString ->                              
    CString ->                              
    CString ->                              
    CString ->                              
    CString ->                              
    CString ->                              
    IO (Ptr Component)
componentNew ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    T.Text
    
    -> T.Text
    
    -> T.Text
    
    -> T.Text
    
    -> T.Text
    
    -> T.Text
    
    -> T.Text
    
    -> T.Text
    
    -> m Component
    
componentNew :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> m Component
componentNew Text
name Text
description Text
version Text
license Text
author Text
homepage Text
commandLine Text
textdomain = IO Component -> m Component
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Component -> m Component) -> IO Component -> m Component
forall a b. (a -> b) -> a -> b
$ do
    CString
name' <- Text -> IO CString
textToCString Text
name
    CString
description' <- Text -> IO CString
textToCString Text
description
    CString
version' <- Text -> IO CString
textToCString Text
version
    CString
license' <- Text -> IO CString
textToCString Text
license
    CString
author' <- Text -> IO CString
textToCString Text
author
    CString
homepage' <- Text -> IO CString
textToCString Text
homepage
    CString
commandLine' <- Text -> IO CString
textToCString Text
commandLine
    CString
textdomain' <- Text -> IO CString
textToCString Text
textdomain
    Ptr Component
result <- CString
-> CString
-> CString
-> CString
-> CString
-> CString
-> CString
-> CString
-> IO (Ptr Component)
ibus_component_new CString
name' CString
description' CString
version' CString
license' CString
author' CString
homepage' CString
commandLine' CString
textdomain'
    Text -> Ptr Component -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"componentNew" Ptr Component
result
    Component
result' <- ((ManagedPtr Component -> Component)
-> Ptr Component -> IO Component
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Component -> Component
Component) Ptr Component
result
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
name'
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
description'
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
version'
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
license'
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
author'
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
homepage'
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
commandLine'
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
textdomain'
    Component -> IO Component
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Component
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "ibus_component_new_from_file" ibus_component_new_from_file :: 
    CString ->                              
    IO (Ptr Component)
componentNewFromFile ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    T.Text
    
    -> m Component
    
componentNewFromFile :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Text -> m Component
componentNewFromFile Text
filename = IO Component -> m Component
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Component -> m Component) -> IO Component -> m Component
forall a b. (a -> b) -> a -> b
$ do
    CString
filename' <- Text -> IO CString
textToCString Text
filename
    Ptr Component
result <- CString -> IO (Ptr Component)
ibus_component_new_from_file CString
filename'
    Text -> Ptr Component -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"componentNewFromFile" Ptr Component
result
    Component
result' <- ((ManagedPtr Component -> Component)
-> Ptr Component -> IO Component
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Component -> Component
Component) Ptr Component
result
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
filename'
    Component -> IO Component
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Component
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "ibus_component_new_from_xml_node" ibus_component_new_from_xml_node :: 
    Ptr IBus.XML.XML ->                     
    IO (Ptr Component)
componentNewFromXmlNode ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    IBus.XML.XML
    
    -> m Component
    
componentNewFromXmlNode :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
XML -> m Component
componentNewFromXmlNode XML
node = IO Component -> m Component
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Component -> m Component) -> IO Component -> m Component
forall a b. (a -> b) -> a -> b
$ do
    Ptr XML
node' <- XML -> IO (Ptr XML)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr XML
node
    Ptr Component
result <- Ptr XML -> IO (Ptr Component)
ibus_component_new_from_xml_node Ptr XML
node'
    Text -> Ptr Component -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"componentNewFromXmlNode" Ptr Component
result
    Component
result' <- ((ManagedPtr Component -> Component)
-> Ptr Component -> IO Component
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Component -> Component
Component) Ptr Component
result
    XML -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr XML
node
    Component -> IO Component
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Component
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "ibus_component_add_engine" ibus_component_add_engine :: 
    Ptr Component ->                        
    Ptr IBus.EngineDesc.EngineDesc ->       
    IO ()
componentAddEngine ::
    (B.CallStack.HasCallStack, MonadIO m, IsComponent a, IBus.EngineDesc.IsEngineDesc b) =>
    a
    
    -> b
    
    -> m ()
componentAddEngine :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsComponent a, IsEngineDesc b) =>
a -> b -> m ()
componentAddEngine a
component b
engine = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Component
component' <- a -> IO (Ptr Component)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
component
    Ptr EngineDesc
engine' <- b -> IO (Ptr EngineDesc)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
engine
    Ptr Component -> Ptr EngineDesc -> IO ()
ibus_component_add_engine Ptr Component
component' Ptr EngineDesc
engine'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
component
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
engine
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data ComponentAddEngineMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsComponent a, IBus.EngineDesc.IsEngineDesc b) => O.OverloadedMethod ComponentAddEngineMethodInfo a signature where
    overloadedMethod = componentAddEngine
instance O.OverloadedMethodInfo ComponentAddEngineMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.IBus.Objects.Component.componentAddEngine",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ibus-1.5.8/docs/GI-IBus-Objects-Component.html#v:componentAddEngine"
        })
#endif
foreign import ccall "ibus_component_add_observed_path" ibus_component_add_observed_path :: 
    Ptr Component ->                        
    CString ->                              
    CInt ->                                 
    IO ()
componentAddObservedPath ::
    (B.CallStack.HasCallStack, MonadIO m, IsComponent a) =>
    a
    
    -> T.Text
    
    -> Bool
    
    -> m ()
componentAddObservedPath :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsComponent a) =>
a -> Text -> Bool -> m ()
componentAddObservedPath a
component Text
path Bool
accessFs = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Component
component' <- a -> IO (Ptr Component)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
component
    CString
path' <- Text -> IO CString
textToCString Text
path
    let accessFs' :: CInt
accessFs' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
P.fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
P.fromEnum) Bool
accessFs
    Ptr Component -> CString -> CInt -> IO ()
ibus_component_add_observed_path Ptr Component
component' CString
path' CInt
accessFs'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
component
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
path'
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data ComponentAddObservedPathMethodInfo
instance (signature ~ (T.Text -> Bool -> m ()), MonadIO m, IsComponent a) => O.OverloadedMethod ComponentAddObservedPathMethodInfo a signature where
    overloadedMethod = componentAddObservedPath
instance O.OverloadedMethodInfo ComponentAddObservedPathMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.IBus.Objects.Component.componentAddObservedPath",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ibus-1.5.8/docs/GI-IBus-Objects-Component.html#v:componentAddObservedPath"
        })
#endif
foreign import ccall "ibus_component_check_modification" ibus_component_check_modification :: 
    Ptr Component ->                        
    IO CInt
componentCheckModification ::
    (B.CallStack.HasCallStack, MonadIO m, IsComponent a) =>
    a
    
    -> m Bool
    
    
componentCheckModification :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsComponent a) =>
a -> m Bool
componentCheckModification a
component = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Component
component' <- a -> IO (Ptr Component)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
component
    CInt
result <- Ptr Component -> IO CInt
ibus_component_check_modification Ptr Component
component'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
component
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data ComponentCheckModificationMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsComponent a) => O.OverloadedMethod ComponentCheckModificationMethodInfo a signature where
    overloadedMethod = componentCheckModification
instance O.OverloadedMethodInfo ComponentCheckModificationMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.IBus.Objects.Component.componentCheckModification",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ibus-1.5.8/docs/GI-IBus-Objects-Component.html#v:componentCheckModification"
        })
#endif
foreign import ccall "ibus_component_get_author" ibus_component_get_author :: 
    Ptr Component ->                        
    IO CString
componentGetAuthor ::
    (B.CallStack.HasCallStack, MonadIO m, IsComponent a) =>
    a
    
    -> m T.Text
    
componentGetAuthor :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsComponent a) =>
a -> m Text
componentGetAuthor a
component = 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
    Ptr Component
component' <- a -> IO (Ptr Component)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
component
    CString
result <- Ptr Component -> IO CString
ibus_component_get_author Ptr Component
component'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"componentGetAuthor" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
component
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
#if defined(ENABLE_OVERLOADING)
data ComponentGetAuthorMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsComponent a) => O.OverloadedMethod ComponentGetAuthorMethodInfo a signature where
    overloadedMethod = componentGetAuthor
instance O.OverloadedMethodInfo ComponentGetAuthorMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.IBus.Objects.Component.componentGetAuthor",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ibus-1.5.8/docs/GI-IBus-Objects-Component.html#v:componentGetAuthor"
        })
#endif
foreign import ccall "ibus_component_get_description" ibus_component_get_description :: 
    Ptr Component ->                        
    IO CString
componentGetDescription ::
    (B.CallStack.HasCallStack, MonadIO m, IsComponent a) =>
    a
    
    -> m T.Text
    
componentGetDescription :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsComponent a) =>
a -> m Text
componentGetDescription a
component = 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
    Ptr Component
component' <- a -> IO (Ptr Component)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
component
    CString
result <- Ptr Component -> IO CString
ibus_component_get_description Ptr Component
component'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"componentGetDescription" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
component
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
#if defined(ENABLE_OVERLOADING)
data ComponentGetDescriptionMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsComponent a) => O.OverloadedMethod ComponentGetDescriptionMethodInfo a signature where
    overloadedMethod = componentGetDescription
instance O.OverloadedMethodInfo ComponentGetDescriptionMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.IBus.Objects.Component.componentGetDescription",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ibus-1.5.8/docs/GI-IBus-Objects-Component.html#v:componentGetDescription"
        })
#endif
foreign import ccall "ibus_component_get_engines" ibus_component_get_engines :: 
    Ptr Component ->                        
    IO (Ptr (GList (Ptr IBus.EngineDesc.EngineDesc)))
componentGetEngines ::
    (B.CallStack.HasCallStack, MonadIO m, IsComponent a) =>
    a
    
    -> m [IBus.EngineDesc.EngineDesc]
    
    
componentGetEngines :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsComponent a) =>
a -> m [EngineDesc]
componentGetEngines a
component = IO [EngineDesc] -> m [EngineDesc]
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO [EngineDesc] -> m [EngineDesc])
-> IO [EngineDesc] -> m [EngineDesc]
forall a b. (a -> b) -> a -> b
$ do
    Ptr Component
component' <- a -> IO (Ptr Component)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
component
    Ptr (GList (Ptr EngineDesc))
result <- Ptr Component -> IO (Ptr (GList (Ptr EngineDesc)))
ibus_component_get_engines Ptr Component
component'
    [Ptr EngineDesc]
result' <- Ptr (GList (Ptr EngineDesc)) -> IO [Ptr EngineDesc]
forall a. Ptr (GList (Ptr a)) -> IO [Ptr a]
unpackGList Ptr (GList (Ptr EngineDesc))
result
    [EngineDesc]
result'' <- (Ptr EngineDesc -> IO EngineDesc)
-> [Ptr EngineDesc] -> IO [EngineDesc]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> [a] -> m [b]
mapM ((ManagedPtr EngineDesc -> EngineDesc)
-> Ptr EngineDesc -> IO EngineDesc
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr EngineDesc -> EngineDesc
IBus.EngineDesc.EngineDesc) [Ptr EngineDesc]
result'
    Ptr (GList (Ptr EngineDesc)) -> IO ()
forall a. Ptr (GList a) -> IO ()
g_list_free Ptr (GList (Ptr EngineDesc))
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
component
    [EngineDesc] -> IO [EngineDesc]
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return [EngineDesc]
result''
#if defined(ENABLE_OVERLOADING)
data ComponentGetEnginesMethodInfo
instance (signature ~ (m [IBus.EngineDesc.EngineDesc]), MonadIO m, IsComponent a) => O.OverloadedMethod ComponentGetEnginesMethodInfo a signature where
    overloadedMethod = componentGetEngines
instance O.OverloadedMethodInfo ComponentGetEnginesMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.IBus.Objects.Component.componentGetEngines",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ibus-1.5.8/docs/GI-IBus-Objects-Component.html#v:componentGetEngines"
        })
#endif
foreign import ccall "ibus_component_get_exec" ibus_component_get_exec :: 
    Ptr Component ->                        
    IO CString
componentGetExec ::
    (B.CallStack.HasCallStack, MonadIO m, IsComponent a) =>
    a
    
    -> m T.Text
    
componentGetExec :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsComponent a) =>
a -> m Text
componentGetExec a
component = 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
    Ptr Component
component' <- a -> IO (Ptr Component)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
component
    CString
result <- Ptr Component -> IO CString
ibus_component_get_exec Ptr Component
component'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"componentGetExec" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
component
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
#if defined(ENABLE_OVERLOADING)
data ComponentGetExecMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsComponent a) => O.OverloadedMethod ComponentGetExecMethodInfo a signature where
    overloadedMethod = componentGetExec
instance O.OverloadedMethodInfo ComponentGetExecMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.IBus.Objects.Component.componentGetExec",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ibus-1.5.8/docs/GI-IBus-Objects-Component.html#v:componentGetExec"
        })
#endif
foreign import ccall "ibus_component_get_homepage" ibus_component_get_homepage :: 
    Ptr Component ->                        
    IO CString
componentGetHomepage ::
    (B.CallStack.HasCallStack, MonadIO m, IsComponent a) =>
    a
    
    -> m T.Text
    
componentGetHomepage :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsComponent a) =>
a -> m Text
componentGetHomepage a
component = 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
    Ptr Component
component' <- a -> IO (Ptr Component)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
component
    CString
result <- Ptr Component -> IO CString
ibus_component_get_homepage Ptr Component
component'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"componentGetHomepage" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
component
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
#if defined(ENABLE_OVERLOADING)
data ComponentGetHomepageMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsComponent a) => O.OverloadedMethod ComponentGetHomepageMethodInfo a signature where
    overloadedMethod = componentGetHomepage
instance O.OverloadedMethodInfo ComponentGetHomepageMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.IBus.Objects.Component.componentGetHomepage",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ibus-1.5.8/docs/GI-IBus-Objects-Component.html#v:componentGetHomepage"
        })
#endif
foreign import ccall "ibus_component_get_license" ibus_component_get_license :: 
    Ptr Component ->                        
    IO CString
componentGetLicense ::
    (B.CallStack.HasCallStack, MonadIO m, IsComponent a) =>
    a
    
    -> m T.Text
    
componentGetLicense :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsComponent a) =>
a -> m Text
componentGetLicense a
component = 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
    Ptr Component
component' <- a -> IO (Ptr Component)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
component
    CString
result <- Ptr Component -> IO CString
ibus_component_get_license Ptr Component
component'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"componentGetLicense" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
component
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
#if defined(ENABLE_OVERLOADING)
data ComponentGetLicenseMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsComponent a) => O.OverloadedMethod ComponentGetLicenseMethodInfo a signature where
    overloadedMethod = componentGetLicense
instance O.OverloadedMethodInfo ComponentGetLicenseMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.IBus.Objects.Component.componentGetLicense",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ibus-1.5.8/docs/GI-IBus-Objects-Component.html#v:componentGetLicense"
        })
#endif
foreign import ccall "ibus_component_get_name" ibus_component_get_name :: 
    Ptr Component ->                        
    IO CString
componentGetName ::
    (B.CallStack.HasCallStack, MonadIO m, IsComponent a) =>
    a
    
    -> m T.Text
    
componentGetName :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsComponent a) =>
a -> m Text
componentGetName a
component = 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
    Ptr Component
component' <- a -> IO (Ptr Component)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
component
    CString
result <- Ptr Component -> IO CString
ibus_component_get_name Ptr Component
component'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"componentGetName" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
component
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
#if defined(ENABLE_OVERLOADING)
data ComponentGetNameMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsComponent a) => O.OverloadedMethod ComponentGetNameMethodInfo a signature where
    overloadedMethod = componentGetName
instance O.OverloadedMethodInfo ComponentGetNameMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.IBus.Objects.Component.componentGetName",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ibus-1.5.8/docs/GI-IBus-Objects-Component.html#v:componentGetName"
        })
#endif
foreign import ccall "ibus_component_get_observed_paths" ibus_component_get_observed_paths :: 
    Ptr Component ->                        
    IO (Ptr (GList (Ptr IBus.ObservedPath.ObservedPath)))
componentGetObservedPaths ::
    (B.CallStack.HasCallStack, MonadIO m, IsComponent a) =>
    a
    
    -> m [IBus.ObservedPath.ObservedPath]
    
    
componentGetObservedPaths :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsComponent a) =>
a -> m [ObservedPath]
componentGetObservedPaths a
component = IO [ObservedPath] -> m [ObservedPath]
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO [ObservedPath] -> m [ObservedPath])
-> IO [ObservedPath] -> m [ObservedPath]
forall a b. (a -> b) -> a -> b
$ do
    Ptr Component
component' <- a -> IO (Ptr Component)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
component
    Ptr (GList (Ptr ObservedPath))
result <- Ptr Component -> IO (Ptr (GList (Ptr ObservedPath)))
ibus_component_get_observed_paths Ptr Component
component'
    [Ptr ObservedPath]
result' <- Ptr (GList (Ptr ObservedPath)) -> IO [Ptr ObservedPath]
forall a. Ptr (GList (Ptr a)) -> IO [Ptr a]
unpackGList Ptr (GList (Ptr ObservedPath))
result
    [ObservedPath]
result'' <- (Ptr ObservedPath -> IO ObservedPath)
-> [Ptr ObservedPath] -> IO [ObservedPath]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> [a] -> m [b]
mapM ((ManagedPtr ObservedPath -> ObservedPath)
-> Ptr ObservedPath -> IO ObservedPath
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr ObservedPath -> ObservedPath
IBus.ObservedPath.ObservedPath) [Ptr ObservedPath]
result'
    Ptr (GList (Ptr ObservedPath)) -> IO ()
forall a. Ptr (GList a) -> IO ()
g_list_free Ptr (GList (Ptr ObservedPath))
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
component
    [ObservedPath] -> IO [ObservedPath]
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return [ObservedPath]
result''
#if defined(ENABLE_OVERLOADING)
data ComponentGetObservedPathsMethodInfo
instance (signature ~ (m [IBus.ObservedPath.ObservedPath]), MonadIO m, IsComponent a) => O.OverloadedMethod ComponentGetObservedPathsMethodInfo a signature where
    overloadedMethod = componentGetObservedPaths
instance O.OverloadedMethodInfo ComponentGetObservedPathsMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.IBus.Objects.Component.componentGetObservedPaths",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ibus-1.5.8/docs/GI-IBus-Objects-Component.html#v:componentGetObservedPaths"
        })
#endif
foreign import ccall "ibus_component_get_textdomain" ibus_component_get_textdomain :: 
    Ptr Component ->                        
    IO CString
componentGetTextdomain ::
    (B.CallStack.HasCallStack, MonadIO m, IsComponent a) =>
    a
    
    -> m T.Text
    
componentGetTextdomain :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsComponent a) =>
a -> m Text
componentGetTextdomain a
component = 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
    Ptr Component
component' <- a -> IO (Ptr Component)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
component
    CString
result <- Ptr Component -> IO CString
ibus_component_get_textdomain Ptr Component
component'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"componentGetTextdomain" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
component
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
#if defined(ENABLE_OVERLOADING)
data ComponentGetTextdomainMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsComponent a) => O.OverloadedMethod ComponentGetTextdomainMethodInfo a signature where
    overloadedMethod = componentGetTextdomain
instance O.OverloadedMethodInfo ComponentGetTextdomainMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.IBus.Objects.Component.componentGetTextdomain",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ibus-1.5.8/docs/GI-IBus-Objects-Component.html#v:componentGetTextdomain"
        })
#endif
foreign import ccall "ibus_component_get_version" ibus_component_get_version :: 
    Ptr Component ->                        
    IO CString
componentGetVersion ::
    (B.CallStack.HasCallStack, MonadIO m, IsComponent a) =>
    a
    
    -> m T.Text
    
componentGetVersion :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsComponent a) =>
a -> m Text
componentGetVersion a
component = 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
    Ptr Component
component' <- a -> IO (Ptr Component)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
component
    CString
result <- Ptr Component -> IO CString
ibus_component_get_version Ptr Component
component'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"componentGetVersion" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
component
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
#if defined(ENABLE_OVERLOADING)
data ComponentGetVersionMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsComponent a) => O.OverloadedMethod ComponentGetVersionMethodInfo a signature where
    overloadedMethod = componentGetVersion
instance O.OverloadedMethodInfo ComponentGetVersionMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.IBus.Objects.Component.componentGetVersion",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ibus-1.5.8/docs/GI-IBus-Objects-Component.html#v:componentGetVersion"
        })
#endif
foreign import ccall "ibus_component_output" ibus_component_output :: 
    Ptr Component ->                        
    Ptr GLib.String.String ->               
    Int32 ->                                
    IO ()
componentOutput ::
    (B.CallStack.HasCallStack, MonadIO m, IsComponent a) =>
    a
    
    -> GLib.String.String
    
    -> Int32
    
    -> m ()
componentOutput :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsComponent a) =>
a -> String -> Int32 -> m ()
componentOutput a
component String
output Int32
indent = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Component
component' <- a -> IO (Ptr Component)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
component
    Ptr String
output' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
output
    Ptr Component -> Ptr String -> Int32 -> IO ()
ibus_component_output Ptr Component
component' Ptr String
output' Int32
indent
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
component
    String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
output
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data ComponentOutputMethodInfo
instance (signature ~ (GLib.String.String -> Int32 -> m ()), MonadIO m, IsComponent a) => O.OverloadedMethod ComponentOutputMethodInfo a signature where
    overloadedMethod = componentOutput
instance O.OverloadedMethodInfo ComponentOutputMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.IBus.Objects.Component.componentOutput",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ibus-1.5.8/docs/GI-IBus-Objects-Component.html#v:componentOutput"
        })
#endif
foreign import ccall "ibus_component_output_engines" ibus_component_output_engines :: 
    Ptr Component ->                        
    Ptr GLib.String.String ->               
    Int32 ->                                
    IO ()
componentOutputEngines ::
    (B.CallStack.HasCallStack, MonadIO m, IsComponent a) =>
    a
    
    -> GLib.String.String
    
    -> Int32
    
    -> m ()
componentOutputEngines :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsComponent a) =>
a -> String -> Int32 -> m ()
componentOutputEngines a
component String
output Int32
indent = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Component
component' <- a -> IO (Ptr Component)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
component
    Ptr String
output' <- String -> IO (Ptr String)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr String
output
    Ptr Component -> Ptr String -> Int32 -> IO ()
ibus_component_output_engines Ptr Component
component' Ptr String
output' Int32
indent
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
component
    String -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr String
output
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data ComponentOutputEnginesMethodInfo
instance (signature ~ (GLib.String.String -> Int32 -> m ()), MonadIO m, IsComponent a) => O.OverloadedMethod ComponentOutputEnginesMethodInfo a signature where
    overloadedMethod = componentOutputEngines
instance O.OverloadedMethodInfo ComponentOutputEnginesMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.IBus.Objects.Component.componentOutputEngines",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ibus-1.5.8/docs/GI-IBus-Objects-Component.html#v:componentOutputEngines"
        })
#endif