gi-gtk-0.3.16.12: GI/Gtk/Objects/Builder.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}
module GI.Gtk.Objects.Builder
(
-- * Exported types
Builder(..) ,
BuilderK ,
toBuilder ,
noBuilder ,
-- * Methods
-- ** builderAddCallbackSymbol
builderAddCallbackSymbol ,
-- ** builderAddFromFile
builderAddFromFile ,
-- ** builderAddFromResource
builderAddFromResource ,
-- ** builderAddFromString
builderAddFromString ,
-- ** builderAddObjectsFromFile
builderAddObjectsFromFile ,
-- ** builderAddObjectsFromResource
builderAddObjectsFromResource ,
-- ** builderAddObjectsFromString
builderAddObjectsFromString ,
-- ** builderConnectSignals
builderConnectSignals ,
-- ** builderConnectSignalsFull
builderConnectSignalsFull ,
-- ** builderExposeObject
builderExposeObject ,
-- ** builderGetApplication
builderGetApplication ,
-- ** builderGetObject
builderGetObject ,
-- ** builderGetObjects
builderGetObjects ,
-- ** builderGetTranslationDomain
builderGetTranslationDomain ,
-- ** builderGetTypeFromName
builderGetTypeFromName ,
-- ** builderNew
builderNew ,
-- ** builderNewFromFile
builderNewFromFile ,
-- ** builderNewFromResource
builderNewFromResource ,
-- ** builderNewFromString
builderNewFromString ,
-- ** builderSetApplication
builderSetApplication ,
-- ** builderSetTranslationDomain
builderSetTranslationDomain ,
-- ** builderValueFromString
builderValueFromString ,
-- ** builderValueFromStringType
builderValueFromStringType ,
-- * Properties
-- ** TranslationDomain
BuilderTranslationDomainPropertyInfo ,
constructBuilderTranslationDomain ,
getBuilderTranslationDomain ,
setBuilderTranslationDomain ,
) where
import Prelude ()
import Data.GI.Base.ShortPrelude
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import GI.Gtk.Types
import GI.Gtk.Callbacks
import qualified GI.GObject as GObject
newtype Builder = Builder (ForeignPtr Builder)
foreign import ccall "gtk_builder_get_type"
c_gtk_builder_get_type :: IO GType
type instance ParentTypes Builder = BuilderParentTypes
type BuilderParentTypes = '[GObject.Object]
instance GObject Builder where
gobjectIsInitiallyUnowned _ = False
gobjectType _ = c_gtk_builder_get_type
class GObject o => BuilderK o
instance (GObject o, IsDescendantOf Builder o) => BuilderK o
toBuilder :: BuilderK o => o -> IO Builder
toBuilder = unsafeCastTo Builder
noBuilder :: Maybe Builder
noBuilder = Nothing
-- VVV Prop "translation-domain"
-- Type: TBasicType TUTF8
-- Flags: [PropertyReadable,PropertyWritable]
getBuilderTranslationDomain :: (MonadIO m, BuilderK o) => o -> m T.Text
getBuilderTranslationDomain obj = liftIO $ getObjectPropertyString obj "translation-domain"
setBuilderTranslationDomain :: (MonadIO m, BuilderK o) => o -> T.Text -> m ()
setBuilderTranslationDomain obj val = liftIO $ setObjectPropertyString obj "translation-domain" val
constructBuilderTranslationDomain :: T.Text -> IO ([Char], GValue)
constructBuilderTranslationDomain val = constructObjectPropertyString "translation-domain" val
data BuilderTranslationDomainPropertyInfo
instance AttrInfo BuilderTranslationDomainPropertyInfo where
type AttrAllowedOps BuilderTranslationDomainPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint BuilderTranslationDomainPropertyInfo = (~) T.Text
type AttrBaseTypeConstraint BuilderTranslationDomainPropertyInfo = BuilderK
type AttrGetType BuilderTranslationDomainPropertyInfo = T.Text
type AttrLabel BuilderTranslationDomainPropertyInfo = "Builder::translation-domain"
attrGet _ = getBuilderTranslationDomain
attrSet _ = setBuilderTranslationDomain
attrConstruct _ = constructBuilderTranslationDomain
type instance AttributeList Builder = BuilderAttributeList
type BuilderAttributeList = ('[ '("translation-domain", BuilderTranslationDomainPropertyInfo)] :: [(Symbol, *)])
type instance SignalList Builder = BuilderSignalList
type BuilderSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
-- method Builder::new
-- method type : Constructor
-- Args : []
-- Lengths : []
-- hInArgs : []
-- returnType : TInterface "Gtk" "Builder"
-- throws : False
-- Skip return : False
foreign import ccall "gtk_builder_new" gtk_builder_new ::
IO (Ptr Builder)
builderNew ::
(MonadIO m) =>
m Builder
builderNew = liftIO $ do
result <- gtk_builder_new
checkUnexpectedReturnNULL "gtk_builder_new" result
result' <- (wrapObject Builder) result
return result'
-- method Builder::new_from_file
-- method type : Constructor
-- Args : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "Builder"
-- throws : False
-- Skip return : False
foreign import ccall "gtk_builder_new_from_file" gtk_builder_new_from_file ::
CString -> -- filename : TBasicType TUTF8
IO (Ptr Builder)
builderNewFromFile ::
(MonadIO m) =>
T.Text -> -- filename
m Builder
builderNewFromFile filename = liftIO $ do
filename' <- textToCString filename
result <- gtk_builder_new_from_file filename'
checkUnexpectedReturnNULL "gtk_builder_new_from_file" result
result' <- (wrapObject Builder) result
freeMem filename'
return result'
-- method Builder::new_from_resource
-- method type : Constructor
-- Args : [Arg {argName = "resource_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "resource_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "Builder"
-- throws : False
-- Skip return : False
foreign import ccall "gtk_builder_new_from_resource" gtk_builder_new_from_resource ::
CString -> -- resource_path : TBasicType TUTF8
IO (Ptr Builder)
builderNewFromResource ::
(MonadIO m) =>
T.Text -> -- resource_path
m Builder
builderNewFromResource resource_path = liftIO $ do
resource_path' <- textToCString resource_path
result <- gtk_builder_new_from_resource resource_path'
checkUnexpectedReturnNULL "gtk_builder_new_from_resource" result
result' <- (wrapObject Builder) result
freeMem resource_path'
return result'
-- method Builder::new_from_string
-- method type : Constructor
-- Args : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "Builder"
-- throws : False
-- Skip return : False
foreign import ccall "gtk_builder_new_from_string" gtk_builder_new_from_string ::
CString -> -- string : TBasicType TUTF8
Int64 -> -- length : TBasicType TInt64
IO (Ptr Builder)
builderNewFromString ::
(MonadIO m) =>
T.Text -> -- string
Int64 -> -- length
m Builder
builderNewFromString string length_ = liftIO $ do
string' <- textToCString string
result <- gtk_builder_new_from_string string' length_
checkUnexpectedReturnNULL "gtk_builder_new_from_string" result
result' <- (wrapObject Builder) result
freeMem string'
return result'
-- method Builder::add_callback_symbol
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback_symbol", argType = TInterface "GObject" "Callback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback_symbol", argType = TInterface "GObject" "Callback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "gtk_builder_add_callback_symbol" gtk_builder_add_callback_symbol ::
Ptr Builder -> -- _obj : TInterface "Gtk" "Builder"
CString -> -- callback_name : TBasicType TUTF8
FunPtr GObject.CallbackC -> -- callback_symbol : TInterface "GObject" "Callback"
IO ()
builderAddCallbackSymbol ::
(MonadIO m, BuilderK a) =>
a -> -- _obj
T.Text -> -- callback_name
GObject.Callback -> -- callback_symbol
m ()
builderAddCallbackSymbol _obj callback_name callback_symbol = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
callback_name' <- textToCString callback_name
ptrcallback_symbol <- callocMem :: IO (Ptr (FunPtr GObject.CallbackC))
callback_symbol' <- GObject.mkCallback (GObject.callbackWrapper (Just ptrcallback_symbol) callback_symbol)
poke ptrcallback_symbol callback_symbol'
gtk_builder_add_callback_symbol _obj' callback_name' callback_symbol'
touchManagedPtr _obj
freeMem callback_name'
return ()
-- method Builder::add_from_file
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUInt32
-- throws : True
-- Skip return : False
foreign import ccall "gtk_builder_add_from_file" gtk_builder_add_from_file ::
Ptr Builder -> -- _obj : TInterface "Gtk" "Builder"
CString -> -- filename : TBasicType TUTF8
Ptr (Ptr GError) -> -- error
IO Word32
builderAddFromFile ::
(MonadIO m, BuilderK a) =>
a -> -- _obj
T.Text -> -- filename
m Word32
builderAddFromFile _obj filename = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
filename' <- textToCString filename
onException (do
result <- propagateGError $ gtk_builder_add_from_file _obj' filename'
touchManagedPtr _obj
freeMem filename'
return result
) (do
freeMem filename'
)
-- method Builder::add_from_resource
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "resource_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "resource_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUInt32
-- throws : True
-- Skip return : False
foreign import ccall "gtk_builder_add_from_resource" gtk_builder_add_from_resource ::
Ptr Builder -> -- _obj : TInterface "Gtk" "Builder"
CString -> -- resource_path : TBasicType TUTF8
Ptr (Ptr GError) -> -- error
IO Word32
builderAddFromResource ::
(MonadIO m, BuilderK a) =>
a -> -- _obj
T.Text -> -- resource_path
m Word32
builderAddFromResource _obj resource_path = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
resource_path' <- textToCString resource_path
onException (do
result <- propagateGError $ gtk_builder_add_from_resource _obj' resource_path'
touchManagedPtr _obj
freeMem resource_path'
return result
) (do
freeMem resource_path'
)
-- method Builder::add_from_string
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buffer", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buffer", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUInt32
-- throws : True
-- Skip return : False
foreign import ccall "gtk_builder_add_from_string" gtk_builder_add_from_string ::
Ptr Builder -> -- _obj : TInterface "Gtk" "Builder"
CString -> -- buffer : TBasicType TUTF8
Word64 -> -- length : TBasicType TUInt64
Ptr (Ptr GError) -> -- error
IO Word32
builderAddFromString ::
(MonadIO m, BuilderK a) =>
a -> -- _obj
T.Text -> -- buffer
Word64 -> -- length
m Word32
builderAddFromString _obj buffer length_ = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
buffer' <- textToCString buffer
onException (do
result <- propagateGError $ gtk_builder_add_from_string _obj' buffer' length_
touchManagedPtr _obj
freeMem buffer'
return result
) (do
freeMem buffer'
)
-- method Builder::add_objects_from_file
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "object_ids", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "object_ids", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUInt32
-- throws : True
-- Skip return : False
foreign import ccall "gtk_builder_add_objects_from_file" gtk_builder_add_objects_from_file ::
Ptr Builder -> -- _obj : TInterface "Gtk" "Builder"
CString -> -- filename : TBasicType TUTF8
Ptr CString -> -- object_ids : TCArray True (-1) (-1) (TBasicType TUTF8)
Ptr (Ptr GError) -> -- error
IO Word32
builderAddObjectsFromFile ::
(MonadIO m, BuilderK a) =>
a -> -- _obj
T.Text -> -- filename
[T.Text] -> -- object_ids
m Word32
builderAddObjectsFromFile _obj filename object_ids = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
filename' <- textToCString filename
object_ids' <- packZeroTerminatedUTF8CArray object_ids
onException (do
result <- propagateGError $ gtk_builder_add_objects_from_file _obj' filename' object_ids'
touchManagedPtr _obj
freeMem filename'
mapZeroTerminatedCArray freeMem object_ids'
freeMem object_ids'
return result
) (do
freeMem filename'
mapZeroTerminatedCArray freeMem object_ids'
freeMem object_ids'
)
-- method Builder::add_objects_from_resource
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "resource_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "object_ids", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "resource_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "object_ids", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUInt32
-- throws : True
-- Skip return : False
foreign import ccall "gtk_builder_add_objects_from_resource" gtk_builder_add_objects_from_resource ::
Ptr Builder -> -- _obj : TInterface "Gtk" "Builder"
CString -> -- resource_path : TBasicType TUTF8
Ptr CString -> -- object_ids : TCArray True (-1) (-1) (TBasicType TUTF8)
Ptr (Ptr GError) -> -- error
IO Word32
builderAddObjectsFromResource ::
(MonadIO m, BuilderK a) =>
a -> -- _obj
T.Text -> -- resource_path
[T.Text] -> -- object_ids
m Word32
builderAddObjectsFromResource _obj resource_path object_ids = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
resource_path' <- textToCString resource_path
object_ids' <- packZeroTerminatedUTF8CArray object_ids
onException (do
result <- propagateGError $ gtk_builder_add_objects_from_resource _obj' resource_path' object_ids'
touchManagedPtr _obj
freeMem resource_path'
mapZeroTerminatedCArray freeMem object_ids'
freeMem object_ids'
return result
) (do
freeMem resource_path'
mapZeroTerminatedCArray freeMem object_ids'
freeMem object_ids'
)
-- method Builder::add_objects_from_string
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buffer", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "object_ids", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buffer", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "object_ids", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUInt32
-- throws : True
-- Skip return : False
foreign import ccall "gtk_builder_add_objects_from_string" gtk_builder_add_objects_from_string ::
Ptr Builder -> -- _obj : TInterface "Gtk" "Builder"
CString -> -- buffer : TBasicType TUTF8
Word64 -> -- length : TBasicType TUInt64
Ptr CString -> -- object_ids : TCArray True (-1) (-1) (TBasicType TUTF8)
Ptr (Ptr GError) -> -- error
IO Word32
builderAddObjectsFromString ::
(MonadIO m, BuilderK a) =>
a -> -- _obj
T.Text -> -- buffer
Word64 -> -- length
[T.Text] -> -- object_ids
m Word32
builderAddObjectsFromString _obj buffer length_ object_ids = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
buffer' <- textToCString buffer
object_ids' <- packZeroTerminatedUTF8CArray object_ids
onException (do
result <- propagateGError $ gtk_builder_add_objects_from_string _obj' buffer' length_ object_ids'
touchManagedPtr _obj
freeMem buffer'
mapZeroTerminatedCArray freeMem object_ids'
freeMem object_ids'
return result
) (do
freeMem buffer'
mapZeroTerminatedCArray freeMem object_ids'
freeMem object_ids'
)
-- method Builder::connect_signals
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "gtk_builder_connect_signals" gtk_builder_connect_signals ::
Ptr Builder -> -- _obj : TInterface "Gtk" "Builder"
Ptr () -> -- user_data : TBasicType TVoid
IO ()
builderConnectSignals ::
(MonadIO m, BuilderK a) =>
a -> -- _obj
Ptr () -> -- user_data
m ()
builderConnectSignals _obj user_data = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
gtk_builder_connect_signals _obj' user_data
touchManagedPtr _obj
return ()
-- method Builder::connect_signals_full
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "Gtk" "BuilderConnectFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "Gtk" "BuilderConnectFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "gtk_builder_connect_signals_full" gtk_builder_connect_signals_full ::
Ptr Builder -> -- _obj : TInterface "Gtk" "Builder"
FunPtr BuilderConnectFuncC -> -- func : TInterface "Gtk" "BuilderConnectFunc"
Ptr () -> -- user_data : TBasicType TVoid
IO ()
builderConnectSignalsFull ::
(MonadIO m, BuilderK a) =>
a -> -- _obj
BuilderConnectFunc -> -- func
m ()
builderConnectSignalsFull _obj func = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
func' <- mkBuilderConnectFunc (builderConnectFuncWrapper Nothing func)
let user_data = nullPtr
gtk_builder_connect_signals_full _obj' func' user_data
safeFreeFunPtr $ castFunPtrToPtr func'
touchManagedPtr _obj
return ()
-- method Builder::expose_object
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "object", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "object", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "gtk_builder_expose_object" gtk_builder_expose_object ::
Ptr Builder -> -- _obj : TInterface "Gtk" "Builder"
CString -> -- name : TBasicType TUTF8
Ptr GObject.Object -> -- object : TInterface "GObject" "Object"
IO ()
builderExposeObject ::
(MonadIO m, BuilderK a, GObject.ObjectK b) =>
a -> -- _obj
T.Text -> -- name
b -> -- object
m ()
builderExposeObject _obj name object = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
name' <- textToCString name
let object' = unsafeManagedPtrCastPtr object
gtk_builder_expose_object _obj' name' object'
touchManagedPtr _obj
touchManagedPtr object
freeMem name'
return ()
-- method Builder::get_application
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "Application"
-- throws : False
-- Skip return : False
foreign import ccall "gtk_builder_get_application" gtk_builder_get_application ::
Ptr Builder -> -- _obj : TInterface "Gtk" "Builder"
IO (Ptr Application)
builderGetApplication ::
(MonadIO m, BuilderK a) =>
a -> -- _obj
m Application
builderGetApplication _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- gtk_builder_get_application _obj'
checkUnexpectedReturnNULL "gtk_builder_get_application" result
result' <- (newObject Application) result
touchManagedPtr _obj
return result'
-- method Builder::get_object
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GObject" "Object"
-- throws : False
-- Skip return : False
foreign import ccall "gtk_builder_get_object" gtk_builder_get_object ::
Ptr Builder -> -- _obj : TInterface "Gtk" "Builder"
CString -> -- name : TBasicType TUTF8
IO (Ptr GObject.Object)
builderGetObject ::
(MonadIO m, BuilderK a) =>
a -> -- _obj
T.Text -> -- name
m GObject.Object
builderGetObject _obj name = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
name' <- textToCString name
result <- gtk_builder_get_object _obj' name'
checkUnexpectedReturnNULL "gtk_builder_get_object" result
result' <- (newObject GObject.Object) result
touchManagedPtr _obj
freeMem name'
return result'
-- method Builder::get_objects
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TGSList (TInterface "GObject" "Object")
-- throws : False
-- Skip return : False
foreign import ccall "gtk_builder_get_objects" gtk_builder_get_objects ::
Ptr Builder -> -- _obj : TInterface "Gtk" "Builder"
IO (Ptr (GSList (Ptr GObject.Object)))
builderGetObjects ::
(MonadIO m, BuilderK a) =>
a -> -- _obj
m [GObject.Object]
builderGetObjects _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- gtk_builder_get_objects _obj'
checkUnexpectedReturnNULL "gtk_builder_get_objects" result
result' <- unpackGSList result
result'' <- mapM (newObject GObject.Object) result'
g_slist_free result
touchManagedPtr _obj
return result''
-- method Builder::get_translation_domain
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False
foreign import ccall "gtk_builder_get_translation_domain" gtk_builder_get_translation_domain ::
Ptr Builder -> -- _obj : TInterface "Gtk" "Builder"
IO CString
builderGetTranslationDomain ::
(MonadIO m, BuilderK a) =>
a -> -- _obj
m T.Text
builderGetTranslationDomain _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- gtk_builder_get_translation_domain _obj'
checkUnexpectedReturnNULL "gtk_builder_get_translation_domain" result
result' <- cstringToText result
touchManagedPtr _obj
return result'
-- method Builder::get_type_from_name
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TGType
-- throws : False
-- Skip return : False
foreign import ccall "gtk_builder_get_type_from_name" gtk_builder_get_type_from_name ::
Ptr Builder -> -- _obj : TInterface "Gtk" "Builder"
CString -> -- type_name : TBasicType TUTF8
IO CGType
builderGetTypeFromName ::
(MonadIO m, BuilderK a) =>
a -> -- _obj
T.Text -> -- type_name
m GType
builderGetTypeFromName _obj type_name = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
type_name' <- textToCString type_name
result <- gtk_builder_get_type_from_name _obj' type_name'
let result' = GType result
touchManagedPtr _obj
freeMem type_name'
return result'
-- method Builder::set_application
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "application", argType = TInterface "Gtk" "Application", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "application", argType = TInterface "Gtk" "Application", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "gtk_builder_set_application" gtk_builder_set_application ::
Ptr Builder -> -- _obj : TInterface "Gtk" "Builder"
Ptr Application -> -- application : TInterface "Gtk" "Application"
IO ()
builderSetApplication ::
(MonadIO m, BuilderK a, ApplicationK b) =>
a -> -- _obj
b -> -- application
m ()
builderSetApplication _obj application = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let application' = unsafeManagedPtrCastPtr application
gtk_builder_set_application _obj' application'
touchManagedPtr _obj
touchManagedPtr application
return ()
-- method Builder::set_translation_domain
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "gtk_builder_set_translation_domain" gtk_builder_set_translation_domain ::
Ptr Builder -> -- _obj : TInterface "Gtk" "Builder"
CString -> -- domain : TBasicType TUTF8
IO ()
builderSetTranslationDomain ::
(MonadIO m, BuilderK a) =>
a -> -- _obj
Maybe (T.Text) -> -- domain
m ()
builderSetTranslationDomain _obj domain = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
maybeDomain <- case domain of
Nothing -> return nullPtr
Just jDomain -> do
jDomain' <- textToCString jDomain
return jDomain'
gtk_builder_set_translation_domain _obj' maybeDomain
touchManagedPtr _obj
freeMem maybeDomain
return ()
-- method Builder::value_from_string
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : True
-- Skip return : False
foreign import ccall "gtk_builder_value_from_string" gtk_builder_value_from_string ::
Ptr Builder -> -- _obj : TInterface "Gtk" "Builder"
Ptr GParamSpec -> -- pspec : TParamSpec
CString -> -- string : TBasicType TUTF8
Ptr GValue -> -- value : TInterface "GObject" "Value"
Ptr (Ptr GError) -> -- error
IO CInt
builderValueFromString ::
(MonadIO m, BuilderK a) =>
a -> -- _obj
GParamSpec -> -- pspec
T.Text -> -- string
m (GValue)
builderValueFromString _obj pspec string = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let pspec' = unsafeManagedPtrGetPtr pspec
string' <- textToCString string
value <- callocBoxedBytes 24 :: IO (Ptr GValue)
onException (do
_ <- propagateGError $ gtk_builder_value_from_string _obj' pspec' string' value
value' <- (wrapBoxed GValue) value
touchManagedPtr _obj
freeMem string'
return value'
) (do
freeMem string'
freeMem value
)
-- method Builder::value_from_string_type
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Builder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : True
-- Skip return : False
foreign import ccall "gtk_builder_value_from_string_type" gtk_builder_value_from_string_type ::
Ptr Builder -> -- _obj : TInterface "Gtk" "Builder"
CGType -> -- type : TBasicType TGType
CString -> -- string : TBasicType TUTF8
Ptr GValue -> -- value : TInterface "GObject" "Value"
Ptr (Ptr GError) -> -- error
IO CInt
builderValueFromStringType ::
(MonadIO m, BuilderK a) =>
a -> -- _obj
GType -> -- type
T.Text -> -- string
m (GValue)
builderValueFromStringType _obj type_ string = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let type_' = gtypeToCGType type_
string' <- textToCString string
value <- callocBoxedBytes 24 :: IO (Ptr GValue)
onException (do
_ <- propagateGError $ gtk_builder_value_from_string_type _obj' type_' string' value
value' <- (wrapBoxed GValue) value
touchManagedPtr _obj
freeMem string'
return value'
) (do
freeMem string'
freeMem value
)