{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.IBus.Objects.EngineSimple
(
EngineSimple(..) ,
IsEngineSimple ,
toEngineSimple ,
#if defined(ENABLE_OVERLOADING)
ResolveEngineSimpleMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
EngineSimpleAddComposeFileMethodInfo ,
#endif
engineSimpleAddComposeFile ,
#if defined(ENABLE_OVERLOADING)
EngineSimpleAddTableMethodInfo ,
#endif
engineSimpleAddTable ,
#if defined(ENABLE_OVERLOADING)
EngineSimpleAddTableByLocaleMethodInfo ,
#endif
engineSimpleAddTableByLocale ,
) 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 {-# SOURCE #-} qualified GI.IBus.Objects.Engine as IBus.Engine
import {-# SOURCE #-} qualified GI.IBus.Objects.Object as IBus.Object
import {-# SOURCE #-} qualified GI.IBus.Objects.Service as IBus.Service
newtype EngineSimple = EngineSimple (SP.ManagedPtr EngineSimple)
deriving (EngineSimple -> EngineSimple -> Bool
(EngineSimple -> EngineSimple -> Bool)
-> (EngineSimple -> EngineSimple -> Bool) -> Eq EngineSimple
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EngineSimple -> EngineSimple -> Bool
$c/= :: EngineSimple -> EngineSimple -> Bool
== :: EngineSimple -> EngineSimple -> Bool
$c== :: EngineSimple -> EngineSimple -> Bool
Eq)
instance SP.ManagedPtrNewtype EngineSimple where
toManagedPtr :: EngineSimple -> ManagedPtr EngineSimple
toManagedPtr (EngineSimple ManagedPtr EngineSimple
p) = ManagedPtr EngineSimple
p
foreign import ccall "ibus_engine_simple_get_type"
c_ibus_engine_simple_get_type :: IO B.Types.GType
instance B.Types.TypedObject EngineSimple where
glibType :: IO GType
glibType = IO GType
c_ibus_engine_simple_get_type
instance B.Types.GObject EngineSimple
class (SP.GObject o, O.IsDescendantOf EngineSimple o) => IsEngineSimple o
instance (SP.GObject o, O.IsDescendantOf EngineSimple o) => IsEngineSimple o
instance O.HasParentTypes EngineSimple
type instance O.ParentTypes EngineSimple = '[IBus.Engine.Engine, IBus.Service.Service, IBus.Object.Object, GObject.Object.Object]
toEngineSimple :: (MIO.MonadIO m, IsEngineSimple o) => o -> m EngineSimple
toEngineSimple :: forall (m :: * -> *) o.
(MonadIO m, IsEngineSimple o) =>
o -> m EngineSimple
toEngineSimple = IO EngineSimple -> m EngineSimple
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO EngineSimple -> m EngineSimple)
-> (o -> IO EngineSimple) -> o -> m EngineSimple
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr EngineSimple -> EngineSimple) -> o -> IO EngineSimple
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr EngineSimple -> EngineSimple
EngineSimple
instance B.GValue.IsGValue (Maybe EngineSimple) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_ibus_engine_simple_get_type
gvalueSet_ :: Ptr GValue -> Maybe EngineSimple -> IO ()
gvalueSet_ Ptr GValue
gv Maybe EngineSimple
P.Nothing = Ptr GValue -> Ptr EngineSimple -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr EngineSimple
forall a. Ptr a
FP.nullPtr :: FP.Ptr EngineSimple)
gvalueSet_ Ptr GValue
gv (P.Just EngineSimple
obj) = EngineSimple -> (Ptr EngineSimple -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr EngineSimple
obj (Ptr GValue -> Ptr EngineSimple -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe EngineSimple)
gvalueGet_ Ptr GValue
gv = do
Ptr EngineSimple
ptr <- Ptr GValue -> IO (Ptr EngineSimple)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr EngineSimple)
if Ptr EngineSimple
ptr Ptr EngineSimple -> Ptr EngineSimple -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr EngineSimple
forall a. Ptr a
FP.nullPtr
then EngineSimple -> Maybe EngineSimple
forall a. a -> Maybe a
P.Just (EngineSimple -> Maybe EngineSimple)
-> IO EngineSimple -> IO (Maybe EngineSimple)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr EngineSimple -> EngineSimple)
-> Ptr EngineSimple -> IO EngineSimple
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr EngineSimple -> EngineSimple
EngineSimple Ptr EngineSimple
ptr
else Maybe EngineSimple -> IO (Maybe EngineSimple)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe EngineSimple
forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveEngineSimpleMethod (t :: Symbol) (o :: *) :: * where
ResolveEngineSimpleMethod "addComposeFile" o = EngineSimpleAddComposeFileMethodInfo
ResolveEngineSimpleMethod "addTable" o = EngineSimpleAddTableMethodInfo
ResolveEngineSimpleMethod "addTableByLocale" o = EngineSimpleAddTableByLocaleMethodInfo
ResolveEngineSimpleMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveEngineSimpleMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveEngineSimpleMethod "commitText" o = IBus.Engine.EngineCommitTextMethodInfo
ResolveEngineSimpleMethod "deleteSurroundingText" o = IBus.Engine.EngineDeleteSurroundingTextMethodInfo
ResolveEngineSimpleMethod "destroy" o = IBus.Object.ObjectDestroyMethodInfo
ResolveEngineSimpleMethod "emitSignal" o = IBus.Service.ServiceEmitSignalMethodInfo
ResolveEngineSimpleMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveEngineSimpleMethod "forwardKeyEvent" o = IBus.Engine.EngineForwardKeyEventMethodInfo
ResolveEngineSimpleMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveEngineSimpleMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveEngineSimpleMethod "hideAuxiliaryText" o = IBus.Engine.EngineHideAuxiliaryTextMethodInfo
ResolveEngineSimpleMethod "hideLookupTable" o = IBus.Engine.EngineHideLookupTableMethodInfo
ResolveEngineSimpleMethod "hidePreeditText" o = IBus.Engine.EngineHidePreeditTextMethodInfo
ResolveEngineSimpleMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveEngineSimpleMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveEngineSimpleMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveEngineSimpleMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveEngineSimpleMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveEngineSimpleMethod "register" o = IBus.Service.ServiceRegisterMethodInfo
ResolveEngineSimpleMethod "registerProperties" o = IBus.Engine.EngineRegisterPropertiesMethodInfo
ResolveEngineSimpleMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveEngineSimpleMethod "showAuxiliaryText" o = IBus.Engine.EngineShowAuxiliaryTextMethodInfo
ResolveEngineSimpleMethod "showLookupTable" o = IBus.Engine.EngineShowLookupTableMethodInfo
ResolveEngineSimpleMethod "showPreeditText" o = IBus.Engine.EngineShowPreeditTextMethodInfo
ResolveEngineSimpleMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveEngineSimpleMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveEngineSimpleMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveEngineSimpleMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveEngineSimpleMethod "unregister" o = IBus.Service.ServiceUnregisterMethodInfo
ResolveEngineSimpleMethod "updateAuxiliaryText" o = IBus.Engine.EngineUpdateAuxiliaryTextMethodInfo
ResolveEngineSimpleMethod "updateLookupTable" o = IBus.Engine.EngineUpdateLookupTableMethodInfo
ResolveEngineSimpleMethod "updateLookupTableFast" o = IBus.Engine.EngineUpdateLookupTableFastMethodInfo
ResolveEngineSimpleMethod "updatePreeditText" o = IBus.Engine.EngineUpdatePreeditTextMethodInfo
ResolveEngineSimpleMethod "updatePreeditTextWithMode" o = IBus.Engine.EngineUpdatePreeditTextWithModeMethodInfo
ResolveEngineSimpleMethod "updateProperty" o = IBus.Engine.EngineUpdatePropertyMethodInfo
ResolveEngineSimpleMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveEngineSimpleMethod "getConnection" o = IBus.Service.ServiceGetConnectionMethodInfo
ResolveEngineSimpleMethod "getContentType" o = IBus.Engine.EngineGetContentTypeMethodInfo
ResolveEngineSimpleMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveEngineSimpleMethod "getName" o = IBus.Engine.EngineGetNameMethodInfo
ResolveEngineSimpleMethod "getObjectPath" o = IBus.Service.ServiceGetObjectPathMethodInfo
ResolveEngineSimpleMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveEngineSimpleMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveEngineSimpleMethod "getSurroundingText" o = IBus.Engine.EngineGetSurroundingTextMethodInfo
ResolveEngineSimpleMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveEngineSimpleMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveEngineSimpleMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveEngineSimpleMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveEngineSimpleMethod t EngineSimple, O.OverloadedMethod info EngineSimple p) => OL.IsLabel t (EngineSimple -> 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 ~ ResolveEngineSimpleMethod t EngineSimple, O.OverloadedMethod info EngineSimple p, R.HasField t EngineSimple p) => R.HasField t EngineSimple p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveEngineSimpleMethod t EngineSimple, O.OverloadedMethodInfo info EngineSimple) => OL.IsLabel t (O.MethodProxy info EngineSimple) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList EngineSimple
type instance O.AttributeList EngineSimple = EngineSimpleAttributeList
type EngineSimpleAttributeList = ('[ '("connection", IBus.Service.ServiceConnectionPropertyInfo), '("engineName", IBus.Engine.EngineEngineNamePropertyInfo), '("objectPath", IBus.Service.ServiceObjectPathPropertyInfo)] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING)
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList EngineSimple = EngineSimpleSignalList
type EngineSimpleSignalList = ('[ '("cancelHandWriting", IBus.Engine.EngineCancelHandWritingSignalInfo), '("candidateClicked", IBus.Engine.EngineCandidateClickedSignalInfo), '("cursorDown", IBus.Engine.EngineCursorDownSignalInfo), '("cursorUp", IBus.Engine.EngineCursorUpSignalInfo), '("destroy", IBus.Object.ObjectDestroySignalInfo), '("disable", IBus.Engine.EngineDisableSignalInfo), '("enable", IBus.Engine.EngineEnableSignalInfo), '("focusIn", IBus.Engine.EngineFocusInSignalInfo), '("focusOut", IBus.Engine.EngineFocusOutSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("pageDown", IBus.Engine.EnginePageDownSignalInfo), '("pageUp", IBus.Engine.EnginePageUpSignalInfo), '("processHandWritingEvent", IBus.Engine.EngineProcessHandWritingEventSignalInfo), '("processKeyEvent", IBus.Engine.EngineProcessKeyEventSignalInfo), '("propertyActivate", IBus.Engine.EnginePropertyActivateSignalInfo), '("propertyHide", IBus.Engine.EnginePropertyHideSignalInfo), '("propertyShow", IBus.Engine.EnginePropertyShowSignalInfo), '("reset", IBus.Engine.EngineResetSignalInfo), '("setCapabilities", IBus.Engine.EngineSetCapabilitiesSignalInfo), '("setContentType", IBus.Engine.EngineSetContentTypeSignalInfo), '("setCursorLocation", IBus.Engine.EngineSetCursorLocationSignalInfo), '("setSurroundingText", IBus.Engine.EngineSetSurroundingTextSignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "ibus_engine_simple_add_compose_file" ibus_engine_simple_add_compose_file ::
Ptr EngineSimple ->
CString ->
IO CInt
engineSimpleAddComposeFile ::
(B.CallStack.HasCallStack, MonadIO m, IsEngineSimple a) =>
a
-> T.Text
-> m Bool
engineSimpleAddComposeFile :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsEngineSimple a) =>
a -> Text -> m Bool
engineSimpleAddComposeFile a
simple Text
file = IO Bool -> m Bool
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 EngineSimple
simple' <- a -> IO (Ptr EngineSimple)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
simple
CString
file' <- Text -> IO CString
textToCString Text
file
CInt
result <- Ptr EngineSimple -> CString -> IO CInt
ibus_engine_simple_add_compose_file Ptr EngineSimple
simple' CString
file'
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
simple
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
file'
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data EngineSimpleAddComposeFileMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m, IsEngineSimple a) => O.OverloadedMethod EngineSimpleAddComposeFileMethodInfo a signature where
overloadedMethod = engineSimpleAddComposeFile
instance O.OverloadedMethodInfo EngineSimpleAddComposeFileMethodInfo a where
overloadedMethodInfo = O.MethodInfo {
O.overloadedMethodName = "GI.IBus.Objects.EngineSimple.engineSimpleAddComposeFile",
O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-ibus-1.5.3/docs/GI-IBus-Objects-EngineSimple.html#v:engineSimpleAddComposeFile"
}
#endif
foreign import ccall "ibus_engine_simple_add_table" ibus_engine_simple_add_table ::
Ptr EngineSimple ->
Ptr Word16 ->
Int32 ->
Int32 ->
IO ()
engineSimpleAddTable ::
(B.CallStack.HasCallStack, MonadIO m, IsEngineSimple a) =>
a
-> [Word16]
-> Int32
-> Int32
-> m ()
engineSimpleAddTable :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsEngineSimple a) =>
a -> [Word16] -> Int32 -> Int32 -> m ()
engineSimpleAddTable a
simple [Word16]
data_ Int32
maxSeqLen Int32
nSeqs = 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 EngineSimple
simple' <- a -> IO (Ptr EngineSimple)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
simple
Ptr Word16
data_' <- [Word16] -> IO (Ptr Word16)
forall a. Storable a => [a] -> IO (Ptr a)
packStorableArray [Word16]
data_
Ptr EngineSimple -> Ptr Word16 -> Int32 -> Int32 -> IO ()
ibus_engine_simple_add_table Ptr EngineSimple
simple' Ptr Word16
data_' Int32
maxSeqLen Int32
nSeqs
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
simple
Ptr Word16 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word16
data_'
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data EngineSimpleAddTableMethodInfo
instance (signature ~ ([Word16] -> Int32 -> Int32 -> m ()), MonadIO m, IsEngineSimple a) => O.OverloadedMethod EngineSimpleAddTableMethodInfo a signature where
overloadedMethod = engineSimpleAddTable
instance O.OverloadedMethodInfo EngineSimpleAddTableMethodInfo a where
overloadedMethodInfo = O.MethodInfo {
O.overloadedMethodName = "GI.IBus.Objects.EngineSimple.engineSimpleAddTable",
O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-ibus-1.5.3/docs/GI-IBus-Objects-EngineSimple.html#v:engineSimpleAddTable"
}
#endif
foreign import ccall "ibus_engine_simple_add_table_by_locale" ibus_engine_simple_add_table_by_locale ::
Ptr EngineSimple ->
CString ->
IO CInt
engineSimpleAddTableByLocale ::
(B.CallStack.HasCallStack, MonadIO m, IsEngineSimple a) =>
a
-> Maybe (T.Text)
-> m Bool
engineSimpleAddTableByLocale :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsEngineSimple a) =>
a -> Maybe Text -> m Bool
engineSimpleAddTableByLocale a
simple Maybe Text
locale = IO Bool -> m Bool
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 EngineSimple
simple' <- a -> IO (Ptr EngineSimple)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
simple
CString
maybeLocale <- case Maybe Text
locale of
Maybe Text
Nothing -> CString -> IO CString
forall (m :: * -> *) a. Monad m => a -> m a
return CString
forall a. Ptr a
nullPtr
Just Text
jLocale -> do
CString
jLocale' <- Text -> IO CString
textToCString Text
jLocale
CString -> IO CString
forall (m :: * -> *) a. Monad m => a -> m a
return CString
jLocale'
CInt
result <- Ptr EngineSimple -> CString -> IO CInt
ibus_engine_simple_add_table_by_locale Ptr EngineSimple
simple' CString
maybeLocale
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
simple
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
maybeLocale
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data EngineSimpleAddTableByLocaleMethodInfo
instance (signature ~ (Maybe (T.Text) -> m Bool), MonadIO m, IsEngineSimple a) => O.OverloadedMethod EngineSimpleAddTableByLocaleMethodInfo a signature where
overloadedMethod = engineSimpleAddTableByLocale
instance O.OverloadedMethodInfo EngineSimpleAddTableByLocaleMethodInfo a where
overloadedMethodInfo = O.MethodInfo {
O.overloadedMethodName = "GI.IBus.Objects.EngineSimple.engineSimpleAddTableByLocale",
O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-ibus-1.5.3/docs/GI-IBus-Objects-EngineSimple.html#v:engineSimpleAddTableByLocale"
}
#endif