📄 gtype.h
字号:
/* GObject - GLib Type, Object, Parameter and Signal Library * Copyright (C) 1998-1999, 2000-2001 Tim Janik and 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. *//*#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION)#error "Only <glib-object.h> can be included directly."#endif*/#ifndef __G_TYPE_H__#define __G_TYPE_H__#include "glib.h"G_BEGIN_DECLS/* Basic Type Macros */#define G_TYPE_FUNDAMENTAL(type) (g_type_fundamental (type))#define G_TYPE_FUNDAMENTAL_MAX (255 << G_TYPE_FUNDAMENTAL_SHIFT)/* Constant fundamental types, * introduced by g_type_init(). */#define G_TYPE_INVALID G_TYPE_MAKE_FUNDAMENTAL (0)#define G_TYPE_NONE G_TYPE_MAKE_FUNDAMENTAL (1)#define G_TYPE_INTERFACE G_TYPE_MAKE_FUNDAMENTAL (2)#define G_TYPE_CHAR G_TYPE_MAKE_FUNDAMENTAL (3)#define G_TYPE_UCHAR G_TYPE_MAKE_FUNDAMENTAL (4)#define G_TYPE_BOOLEAN G_TYPE_MAKE_FUNDAMENTAL (5)#define G_TYPE_INT G_TYPE_MAKE_FUNDAMENTAL (6)#define G_TYPE_UINT G_TYPE_MAKE_FUNDAMENTAL (7)#define G_TYPE_LONG G_TYPE_MAKE_FUNDAMENTAL (8)#define G_TYPE_ULONG G_TYPE_MAKE_FUNDAMENTAL (9)#define G_TYPE_INT64 G_TYPE_MAKE_FUNDAMENTAL (10)#define G_TYPE_UINT64 G_TYPE_MAKE_FUNDAMENTAL (11)#define G_TYPE_ENUM G_TYPE_MAKE_FUNDAMENTAL (12)#define G_TYPE_FLAGS G_TYPE_MAKE_FUNDAMENTAL (13)#define G_TYPE_FLOAT G_TYPE_MAKE_FUNDAMENTAL (14)#define G_TYPE_DOUBLE G_TYPE_MAKE_FUNDAMENTAL (15)#define G_TYPE_STRING G_TYPE_MAKE_FUNDAMENTAL (16)#define G_TYPE_POINTER G_TYPE_MAKE_FUNDAMENTAL (17)#define G_TYPE_BOXED G_TYPE_MAKE_FUNDAMENTAL (18)#define G_TYPE_PARAM G_TYPE_MAKE_FUNDAMENTAL (19)#define G_TYPE_OBJECT G_TYPE_MAKE_FUNDAMENTAL (20)/* Reserved fundamental type numbers to create new fundamental * type IDs with G_TYPE_MAKE_FUNDAMENTAL(). * Send email to gtk-devel-list@redhat.com for reservations. */#define G_TYPE_FUNDAMENTAL_SHIFT (2)#define G_TYPE_MAKE_FUNDAMENTAL(x) ((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))#define G_TYPE_RESERVED_GLIB_FIRST (21)#define G_TYPE_RESERVED_GLIB_LAST (31)#define G_TYPE_RESERVED_BSE_FIRST (32)#define G_TYPE_RESERVED_BSE_LAST (48)#define G_TYPE_RESERVED_USER_FIRST (49)/* Type Checking Macros */#define G_TYPE_IS_FUNDAMENTAL(type) ((type) <= G_TYPE_FUNDAMENTAL_MAX)#define G_TYPE_IS_DERIVED(type) ((type) > G_TYPE_FUNDAMENTAL_MAX)#define G_TYPE_IS_INTERFACE(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_INTERFACE)#define G_TYPE_IS_CLASSED(type) (g_type_test_flags ((type), G_TYPE_FLAG_CLASSED))#define G_TYPE_IS_INSTANTIATABLE(type) (g_type_test_flags ((type), G_TYPE_FLAG_INSTANTIATABLE))#define G_TYPE_IS_DERIVABLE(type) (g_type_test_flags ((type), G_TYPE_FLAG_DERIVABLE))#define G_TYPE_IS_DEEP_DERIVABLE(type) (g_type_test_flags ((type), G_TYPE_FLAG_DEEP_DERIVABLE))#define G_TYPE_IS_ABSTRACT(type) (g_type_test_flags ((type), G_TYPE_FLAG_ABSTRACT))#define G_TYPE_IS_VALUE_ABSTRACT(type) (g_type_test_flags ((type), G_TYPE_FLAG_VALUE_ABSTRACT))#define G_TYPE_IS_VALUE_TYPE(type) (g_type_check_is_value_type (type))#define G_TYPE_HAS_VALUE_TABLE(type) (g_type_value_table_peek (type) != NULL)/* Typedefs */#if GLIB_SIZEOF_LONG == GLIB_SIZEOF_SIZE_Ttypedef gulong GType;#else /* hm, shouldn't happen? */typedef gsize GType;#endiftypedef struct _GValue GValue;typedef union _GTypeCValue GTypeCValue;typedef struct _GTypePlugin GTypePlugin;typedef struct _GTypeClass GTypeClass;typedef struct _GTypeInterface GTypeInterface;typedef struct _GTypeInstance GTypeInstance;typedef struct _GTypeInfo GTypeInfo;typedef struct _GTypeFundamentalInfo GTypeFundamentalInfo;typedef struct _GInterfaceInfo GInterfaceInfo;typedef struct _GTypeValueTable GTypeValueTable;typedef struct _GTypeQuery GTypeQuery;/* Basic Type Structures */struct _GTypeClass{ /*< private >*/ GType g_type;};struct _GTypeInstance{ /*< private >*/ GTypeClass *g_class;};struct _GTypeInterface{ /*< private >*/ GType g_type; /* iface type */ GType g_instance_type;};struct _GTypeQuery{ GType type; const gchar *type_name; guint class_size; guint instance_size;};/* Casts, checks and accessors for structured types * usage of these macros is reserved to type implementations only *//*< protected >*/#define G_TYPE_CHECK_INSTANCE(instance) (_G_TYPE_CHI ((GTypeInstance*) (instance)))#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type) (_G_TYPE_CIC ((instance), (g_type), c_type))#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type) (_G_TYPE_CIT ((instance), (g_type)))#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type) (_G_TYPE_IGC ((instance), (g_type), c_type))#define G_TYPE_INSTANCE_GET_INTERFACE(instance, g_type, c_type) (_G_TYPE_IGI ((instance), (g_type), c_type))#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type) (_G_TYPE_CCC ((g_class), (g_type), c_type))#define G_TYPE_CHECK_CLASS_TYPE(g_class, g_type) (_G_TYPE_CCT ((g_class), (g_type)))#define G_TYPE_CHECK_VALUE(value) (_G_TYPE_CHV ((value)))#define G_TYPE_CHECK_VALUE_TYPE(value, g_type) (_G_TYPE_CVH ((value), (g_type)))#define G_TYPE_FROM_INSTANCE(instance) (G_TYPE_FROM_CLASS (((GTypeInstance*) (instance))->g_class))#define G_TYPE_FROM_CLASS(g_class) (((GTypeClass*) (g_class))->g_type)#define G_TYPE_FROM_INTERFACE(g_iface) (((GTypeInterface*) (g_iface))->g_type)/* debug flags for g_type_init_with_debug_flags() */typedef enum /*< skip >*/{ G_TYPE_DEBUG_NONE = 0, G_TYPE_DEBUG_OBJECTS = 1 << 0, G_TYPE_DEBUG_SIGNALS = 1 << 1, G_TYPE_DEBUG_MASK = 0x03} GTypeDebugFlags;/* --- prototypes --- */void g_type_init (void);void g_type_init_with_debug_flags (GTypeDebugFlags debug_flags);G_CONST_RETURN gchar* g_type_name (GType type);GQuark g_type_qname (GType type);GType g_type_from_name (const gchar *name);GType g_type_parent (GType type);guint g_type_depth (GType type);GType g_type_next_base (GType leaf_type, GType root_type);gboolean g_type_is_a (GType type, GType is_a_type);gpointer g_type_class_ref (GType type);gpointer g_type_class_peek (GType type);void g_type_class_unref (gpointer g_class);gpointer g_type_class_peek_parent (gpointer g_class);gpointer g_type_interface_peek (gpointer instance_class, GType iface_type);gpointer g_type_interface_peek_parent (gpointer g_iface);/* g_free() the returned arrays */GType* g_type_children (GType type, guint *n_children);GType* g_type_interfaces (GType type, guint *n_interfaces);/* per-type _static_ data */void g_type_set_qdata (GType type,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -