mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-10 19:36:18 +01:00
6d51857f01
To avoid cyclic dependencies
265 lines
5.8 KiB
C
265 lines
5.8 KiB
C
/* GObject introspection: types
|
|
*
|
|
* Copyright (C) 2005 Matthias Clasen
|
|
* Copyright (C) 2008,2009 Red Hat, Inc.
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the
|
|
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
* Boston, MA 02111-1307, USA.
|
|
*/
|
|
|
|
#ifndef __GITYPES_H__
|
|
#define __GITYPES_H__
|
|
|
|
#if !defined (__GIREPOSITORY_H_INSIDE__) && !defined (GI_COMPILATION)
|
|
#error "Only <girepository.h> can be included directly."
|
|
#endif
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
typedef struct _GIBaseInfoStub GIBaseInfo;
|
|
|
|
/**
|
|
* GICallableInfo:
|
|
*
|
|
* Represents a callable, either #GIFunctionInfo, #GICallbackInfo or
|
|
* #GIVFuncInfo.
|
|
*/
|
|
typedef GIBaseInfo GICallableInfo;
|
|
|
|
/**
|
|
* GIFunctionInfo:
|
|
*
|
|
* Represents a function, eg arguments and return value.
|
|
*/
|
|
typedef GIBaseInfo GIFunctionInfo;
|
|
|
|
/**
|
|
* GICallbackInfo:
|
|
*
|
|
* Represents a callback, eg arguments and return value.
|
|
*/
|
|
typedef GIBaseInfo GICallbackInfo;
|
|
|
|
/**
|
|
* GIRegisteredTypeInfo:
|
|
*
|
|
* Represent a registered type.
|
|
*/
|
|
typedef GIBaseInfo GIRegisteredTypeInfo;
|
|
|
|
/**
|
|
* GIStructInfo:
|
|
*
|
|
* Represents a struct.
|
|
*/
|
|
typedef GIBaseInfo GIStructInfo;
|
|
|
|
/**
|
|
* GIUnionInfo:
|
|
*
|
|
* Represents a union.
|
|
*/
|
|
typedef GIBaseInfo GIUnionInfo;
|
|
|
|
/**
|
|
* GIEnumInfo:
|
|
*
|
|
* Represents an enum or a flag.
|
|
*/
|
|
typedef GIBaseInfo GIEnumInfo;
|
|
|
|
/**
|
|
* GIObjectInfo:
|
|
*
|
|
* Represents an object.
|
|
*/
|
|
typedef GIBaseInfo GIObjectInfo;
|
|
|
|
/**
|
|
* GIInterfaceInfo:
|
|
*
|
|
* Represents an interface.
|
|
*/
|
|
typedef GIBaseInfo GIInterfaceInfo;
|
|
|
|
/**
|
|
* GIConstantInfo:
|
|
*
|
|
* Represents a constant.
|
|
*/
|
|
typedef GIBaseInfo GIConstantInfo;
|
|
|
|
/**
|
|
* GIValueInfo:
|
|
*
|
|
* Represents a enum value of a #GIEnumInfo.
|
|
*/
|
|
typedef GIBaseInfo GIValueInfo;
|
|
|
|
/**
|
|
* GISignalInfo:
|
|
*
|
|
* Represents a signal.
|
|
*/
|
|
typedef GIBaseInfo GISignalInfo;
|
|
|
|
/**
|
|
* GIVFuncInfo
|
|
*
|
|
* Represents a virtual function.
|
|
*/
|
|
typedef GIBaseInfo GIVFuncInfo;
|
|
|
|
/**
|
|
* GIPropertyInfo:
|
|
*
|
|
* Represents a property of a #GIObjectInfo or a #GIInterfaceInfo.
|
|
*/
|
|
typedef GIBaseInfo GIPropertyInfo;
|
|
|
|
/**
|
|
* GIFieldInfo:
|
|
*
|
|
* Represents a field of a #GIStructInfo or a #GIUnionInfo.
|
|
*/
|
|
typedef GIBaseInfo GIFieldInfo;
|
|
|
|
/**
|
|
* GIArgInfo:
|
|
*
|
|
* Represents an argument.
|
|
*/
|
|
typedef GIBaseInfo GIArgInfo;
|
|
|
|
/**
|
|
* GITypeInfo:
|
|
*
|
|
* Represents type information, direction, transfer etc.
|
|
*/
|
|
typedef GIBaseInfo GITypeInfo;
|
|
|
|
/**
|
|
* GIErrorDomainInfo:
|
|
*
|
|
* Represents a #GError error domain.
|
|
*/
|
|
typedef GIBaseInfo GIErrorDomainInfo;
|
|
|
|
/**
|
|
* GIUnresolvedInfo:
|
|
*
|
|
* Represents a unresolved type in a typelib.
|
|
*/
|
|
typedef struct _GIUnresolvedInfo GIUnresolvedInfo;
|
|
|
|
typedef union
|
|
{
|
|
gboolean v_boolean;
|
|
gint8 v_int8;
|
|
guint8 v_uint8;
|
|
gint16 v_int16;
|
|
guint16 v_uint16;
|
|
gint32 v_int32;
|
|
guint32 v_uint32;
|
|
gint64 v_int64;
|
|
guint64 v_uint64;
|
|
gfloat v_float;
|
|
gdouble v_double;
|
|
gshort v_short;
|
|
gushort v_ushort;
|
|
gint v_int;
|
|
guint v_uint;
|
|
glong v_long;
|
|
gulong v_ulong;
|
|
gssize v_ssize;
|
|
gsize v_size;
|
|
gchar * v_string;
|
|
gpointer v_pointer;
|
|
} GArgument;
|
|
|
|
/* Types of objects registered in the repository */
|
|
|
|
/**
|
|
* GIInfoType:
|
|
* @GI_INFO_TYPE_INVALID: invalid type
|
|
* @GI_INFO_TYPE_FUNCTION: function, see #GIFunctionInfo
|
|
* @GI_INFO_TYPE_CALLBACK: callback, see #GIFunctionInfo
|
|
* @GI_INFO_TYPE_STRUCT: struct, see #GIStructInfo
|
|
* @GI_INFO_TYPE_BOXED: boxed, see #GIStructInfo or #GIUnionInfo
|
|
* @GI_INFO_TYPE_ENUM: enum, see #GIEnumInfo
|
|
* @GI_INFO_TYPE_FLAGS: flags, see #GIEnumInfo
|
|
* @GI_INFO_TYPE_OBJECT: object, see #GIObjectInfo
|
|
* @GI_INFO_TYPE_INTERFACE: interface, see #GIInterfaceInfo
|
|
* @GI_INFO_TYPE_CONSTANT: contant, see #GIConstantInfo
|
|
* @GI_INFO_TYPE_ERROR_DOMAIN: error domain for a #GError, see #GIErrorDomainInfo
|
|
* @GI_INFO_TYPE_UNION: union, see #GIUnionInfo
|
|
* @GI_INFO_TYPE_VALUE: enum value, see #GIValueInfo
|
|
* @GI_INFO_TYPE_SIGNAL: signal, see #GISignalInfo
|
|
* @GI_INFO_TYPE_VFUNC: virtual function, see #GIVFuncInfo
|
|
* @GI_INFO_TYPE_PROPERTY: GObject property, see #GIPropertyInfo
|
|
* @GI_INFO_TYPE_FIELD: struct or union field, see #GIFieldInfo
|
|
* @GI_INFO_TYPE_ARG: argument of a function or callback, see #GIArgInfo
|
|
* @GI_INFO_TYPE_TYPE: type information, see #GITypeInfo
|
|
* @GI_INFO_TYPE_UNRESOLVED: unresolved type, a type which is not present in
|
|
* the typelib, or any of its dependencies.
|
|
*
|
|
* The type of a GIBaseInfo struct.
|
|
*/
|
|
typedef enum
|
|
{
|
|
GI_INFO_TYPE_INVALID,
|
|
GI_INFO_TYPE_FUNCTION,
|
|
GI_INFO_TYPE_CALLBACK,
|
|
GI_INFO_TYPE_STRUCT,
|
|
GI_INFO_TYPE_BOXED,
|
|
GI_INFO_TYPE_ENUM, /* 5 */
|
|
GI_INFO_TYPE_FLAGS,
|
|
GI_INFO_TYPE_OBJECT,
|
|
GI_INFO_TYPE_INTERFACE,
|
|
GI_INFO_TYPE_CONSTANT,
|
|
GI_INFO_TYPE_ERROR_DOMAIN, /* 10 */
|
|
GI_INFO_TYPE_UNION,
|
|
GI_INFO_TYPE_VALUE,
|
|
GI_INFO_TYPE_SIGNAL,
|
|
GI_INFO_TYPE_VFUNC,
|
|
GI_INFO_TYPE_PROPERTY, /* 15 */
|
|
GI_INFO_TYPE_FIELD,
|
|
GI_INFO_TYPE_ARG,
|
|
GI_INFO_TYPE_TYPE,
|
|
GI_INFO_TYPE_UNRESOLVED
|
|
} GIInfoType;
|
|
|
|
/**
|
|
* GITransfer:
|
|
* @GI_TRANSFER_NOTHING: transfer nothing to the caller
|
|
* @GI_TRANSFER_CONTAINER: transfer the container (eg list, array,
|
|
* hashtable), but no the contents to the caller.
|
|
* @GI_TRANSFER_EVERYTHING: transfer everything to the caller.
|
|
*
|
|
* Represent the transfer ownership information of a #GICallableInfo or
|
|
* a #GIArgInfo.
|
|
*/
|
|
typedef enum {
|
|
GI_TRANSFER_NOTHING,
|
|
GI_TRANSFER_CONTAINER,
|
|
GI_TRANSFER_EVERYTHING
|
|
} GITransfer;
|
|
|
|
|
|
G_END_DECLS
|
|
|
|
#endif /* __GITYPES_H__ */
|
|
|