{- | 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.GObject.Interfaces.TypePlugin ( -- * Exported types TypePlugin(..) , noTypePlugin , TypePluginK , -- * Methods -- ** typePluginCompleteInterfaceInfo typePluginCompleteInterfaceInfo , -- ** typePluginCompleteTypeInfo typePluginCompleteTypeInfo , -- ** typePluginUnuse typePluginUnuse , -- ** typePluginUse typePluginUse , ) 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.GObject.Types import GI.GObject.Callbacks -- interface TypePlugin newtype TypePlugin = TypePlugin (ForeignPtr TypePlugin) noTypePlugin :: Maybe TypePlugin noTypePlugin = Nothing type instance AttributeList TypePlugin = TypePluginAttributeList type TypePluginAttributeList = ('[ ] :: [(Symbol, *)]) type instance SignalList TypePlugin = TypePluginSignalList type TypePluginSignalList = ('[ ] :: [(Symbol, *)]) class ForeignPtrNewtype a => TypePluginK a instance (ForeignPtrNewtype o, IsDescendantOf TypePlugin o) => TypePluginK o type instance ParentTypes TypePlugin = TypePluginParentTypes type TypePluginParentTypes = '[] -- method TypePlugin::complete_interface_info -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "instance_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "info", argType = TInterface "GObject" "InterfaceInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "instance_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "info", argType = TInterface "GObject" "InterfaceInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "g_type_plugin_complete_interface_info" g_type_plugin_complete_interface_info :: Ptr TypePlugin -> -- _obj : TInterface "GObject" "TypePlugin" CGType -> -- instance_type : TBasicType TGType CGType -> -- interface_type : TBasicType TGType Ptr InterfaceInfo -> -- info : TInterface "GObject" "InterfaceInfo" IO () typePluginCompleteInterfaceInfo :: (MonadIO m, TypePluginK a) => a -> -- _obj GType -> -- instance_type GType -> -- interface_type InterfaceInfo -> -- info m () typePluginCompleteInterfaceInfo _obj instance_type interface_type info = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj let instance_type' = gtypeToCGType instance_type let interface_type' = gtypeToCGType interface_type let info' = unsafeManagedPtrGetPtr info g_type_plugin_complete_interface_info _obj' instance_type' interface_type' info' touchManagedPtr _obj touchManagedPtr info return () -- method TypePlugin::complete_type_info -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "g_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "info", argType = TInterface "GObject" "TypeInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value_table", argType = TInterface "GObject" "TypeValueTable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "g_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "info", argType = TInterface "GObject" "TypeInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value_table", argType = TInterface "GObject" "TypeValueTable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "g_type_plugin_complete_type_info" g_type_plugin_complete_type_info :: Ptr TypePlugin -> -- _obj : TInterface "GObject" "TypePlugin" CGType -> -- g_type : TBasicType TGType Ptr TypeInfo -> -- info : TInterface "GObject" "TypeInfo" Ptr TypeValueTable -> -- value_table : TInterface "GObject" "TypeValueTable" IO () typePluginCompleteTypeInfo :: (MonadIO m, TypePluginK a) => a -> -- _obj GType -> -- g_type TypeInfo -> -- info TypeValueTable -> -- value_table m () typePluginCompleteTypeInfo _obj g_type info value_table = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj let g_type' = gtypeToCGType g_type let info' = unsafeManagedPtrGetPtr info let value_table' = unsafeManagedPtrGetPtr value_table g_type_plugin_complete_type_info _obj' g_type' info' value_table' touchManagedPtr _obj touchManagedPtr info touchManagedPtr value_table return () -- method TypePlugin::unuse -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "g_type_plugin_unuse" g_type_plugin_unuse :: Ptr TypePlugin -> -- _obj : TInterface "GObject" "TypePlugin" IO () typePluginUnuse :: (MonadIO m, TypePluginK a) => a -> -- _obj m () typePluginUnuse _obj = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj g_type_plugin_unuse _obj' touchManagedPtr _obj return () -- method TypePlugin::use -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "g_type_plugin_use" g_type_plugin_use :: Ptr TypePlugin -> -- _obj : TInterface "GObject" "TypePlugin" IO () typePluginUse :: (MonadIO m, TypePluginK a) => a -> -- _obj m () typePluginUse _obj = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj g_type_plugin_use _obj' touchManagedPtr _obj return ()