Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
Safe Haskell | None |
Language | Haskell2010 |
GI.GObject.Structs.TypeInterface
Description
An opaque structure used as the base of all interface types.
- newtype TypeInterface = TypeInterface (ManagedPtr TypeInterface)
- newZeroTypeInterface :: MonadIO m => m TypeInterface
- noTypeInterface :: Maybe TypeInterface
- typeInterfaceAddPrerequisite :: (HasCallStack, MonadIO m) => GType -> GType -> m ()
- typeInterfaceGetPlugin :: (HasCallStack, MonadIO m) => GType -> GType -> m TypePlugin
- typeInterfacePeek :: (HasCallStack, MonadIO m) => TypeClass -> GType -> m TypeInterface
- data TypeInterfacePeekParentMethodInfo
- typeInterfacePeekParent :: (HasCallStack, MonadIO m) => TypeInterface -> m TypeInterface
- typeInterfacePrerequisites :: (HasCallStack, MonadIO m) => GType -> m [GType]
Exported types
newtype TypeInterface #
Constructors
TypeInterface (ManagedPtr TypeInterface) |
Instances
WrappedPtr TypeInterface # | |
(~) AttrOpTag tag AttrSet => Constructible TypeInterface tag # | |
((~) * info (ResolveTypeInterfaceMethod t TypeInterface), MethodInfo * info TypeInterface p) => IsLabel t (TypeInterface -> p) # | |
((~) * info (ResolveTypeInterfaceMethod t TypeInterface), MethodInfo * info TypeInterface p) => IsLabelProxy t (TypeInterface -> p) # | |
HasAttributeList * TypeInterface # | |
((~) * signature (m TypeInterface), MonadIO m) => MethodInfo * TypeInterfacePeekParentMethodInfo TypeInterface signature # | |
type AttributeList TypeInterface # | |
newZeroTypeInterface :: MonadIO m => m TypeInterface #
Construct a TypeInterface
struct initialized to zero.
Methods
addPrerequisite
typeInterfaceAddPrerequisite #
Arguments
:: (HasCallStack, MonadIO m) | |
=> GType |
|
-> GType |
|
-> m () |
Adds prerequisiteType
to the list of prerequisites of interfaceType
.
This means that any type implementing interfaceType
must also implement
prerequisiteType
. Prerequisites can be thought of as an alternative to
interface derivation (which GType doesn't support). An interface can have
at most one instantiatable prerequisite type.
getPlugin
Arguments
:: (HasCallStack, MonadIO m) | |
=> GType |
|
-> GType |
|
-> m TypePlugin | Returns: the |
Returns the TypePlugin
structure for the dynamic interface
interfaceType
which has been added to instanceType
, or Nothing
if interfaceType
has not been added to instanceType
or does
not have a TypePlugin
structure. See typeAddInterfaceDynamic
.
peek
Arguments
:: (HasCallStack, MonadIO m) | |
=> TypeClass |
|
-> GType |
|
-> m TypeInterface | Returns: the |
Returns the TypeInterface
structure of an interface to which the
passed in class conforms.
peekParent
data TypeInterfacePeekParentMethodInfo #
Instances
((~) * signature (m TypeInterface), MonadIO m) => MethodInfo * TypeInterfacePeekParentMethodInfo TypeInterface signature # | |
Arguments
:: (HasCallStack, MonadIO m) | |
=> TypeInterface |
|
-> m TypeInterface | Returns: the
corresponding |
Returns the corresponding TypeInterface
structure of the parent type
of the instance type to which gIface
belongs. This is useful when
deriving the implementation of an interface from the parent type and
then possibly overriding some methods.
prerequisites
Arguments
:: (HasCallStack, MonadIO m) | |
=> GType |
|
-> m [GType] | Returns: a
newly-allocated zero-terminated array of |
Returns the prerequisites of an interfaces type.
Since: 2.2