![]() | ![]() | ![]() | GTK+ Reference Manual | ![]() |
---|
Types — Handle run-time type creation
#include <gtk/gtk.h> typedef GtkType; typedef GtkFundamentalType; #define GTK_CLASS_NAME (class) #define GTK_CLASS_TYPE (class) #define GTK_TYPE_IS_OBJECT (type) #define GTK_TYPE_FUNDAMENTAL_LAST #define GTK_TYPE_FUNDAMENTAL_MAX #define GTK_STRUCT_OFFSET #define GTK_CHECK_CAST #define GTK_CHECK_CLASS_CAST #define GTK_CHECK_TYPE #define GTK_CHECK_CLASS_TYPE #define GTK_CHECK_GET_CLASS #define GTK_FUNDAMENTAL_TYPE #define GTK_SIGNAL_FUNC (f) typedef GtkClassInitFunc; typedef GtkObjectInitFunc; void (*GtkSignalFunc) (void); gboolean (*GtkFunction) (gpointer data); void (*GtkDestroyNotify) (gpointer data); void (*GtkCallbackMarshal) (GtkObject *object, gpointer data, guint n_args, GtkArg *args); typedef GtkSignalMarshaller; typedef GtkTypeObject; struct GtkArg; #define GTK_VALUE_CHAR (a) #define GTK_VALUE_UCHAR (a) #define GTK_VALUE_BOOL (a) #define GTK_VALUE_INT (a) #define GTK_VALUE_UINT (a) #define GTK_VALUE_LONG (a) #define GTK_VALUE_ULONG (a) #define GTK_VALUE_FLOAT (a) #define GTK_VALUE_DOUBLE (a) #define GTK_VALUE_STRING (a) #define GTK_VALUE_ENUM (a) #define GTK_VALUE_FLAGS (a) #define GTK_VALUE_BOXED (a) #define GTK_VALUE_POINTER (a) #define GTK_VALUE_OBJECT (a) #define GTK_VALUE_SIGNAL (a) #define GTK_RETLOC_CHAR (a) #define GTK_RETLOC_UCHAR (a) #define GTK_RETLOC_BOOL (a) #define GTK_RETLOC_INT (a) #define GTK_RETLOC_UINT (a) #define GTK_RETLOC_LONG (a) #define GTK_RETLOC_ULONG (a) #define GTK_RETLOC_FLOAT (a) #define GTK_RETLOC_DOUBLE (a) #define GTK_RETLOC_STRING (a) #define GTK_RETLOC_ENUM (a) #define GTK_RETLOC_FLAGS (a) #define GTK_RETLOC_BOXED (a) #define GTK_RETLOC_POINTER (a) #define GTK_RETLOC_OBJECT (a) struct GtkTypeInfo; typedef GtkTypeClass; typedef GtkEnumValue; typedef GtkFlagValue; void gtk_type_init (GTypeDebugFlags debug_flags); GtkType gtk_type_unique (GtkType parent_type, const GtkTypeInfo *gtkinfo); #define gtk_type_name (type) #define gtk_type_from_name (name) #define gtk_type_parent (type) gpointer gtk_type_class (GtkType type); gpointer gtk_type_new (GtkType type); #define gtk_type_is_a (type, is_a_type) GtkEnumValue* gtk_type_enum_get_values (GtkType enum_type); GtkFlagValue* gtk_type_flags_get_values (GtkType flags_type); GtkEnumValue* gtk_type_enum_find_value (GtkType enum_type, const gchar *value_name); GtkFlagValue* gtk_type_flags_find_value (GtkType flags_type, const gchar *value_name);
The GTK+ type system is extensible. Because of that, types have to be managed at runtime.
typedef GType GtkType;
GtkType is unique integer identifying the type. The guts of the information about the type is held in a private struct named GtkTypeNode.
typedef GType GtkFundamentalType;
GtkFundamentalType is deprecated and should not be used in newly-written code.
GtkFundamentalType is an enumerated type which lists all the possible fundamental types (e.g. char, uchar, int, long, float, etc).
#define GTK_CLASS_NAME(class) (g_type_name (G_TYPE_FROM_CLASS (class)))
GTK_CLASS_NAME is deprecated and should not be used in newly-written code.
Returns the type name of class.
class : | a GtkTypeClass. |
#define GTK_CLASS_TYPE(class) (G_TYPE_FROM_CLASS (class))
GTK_CLASS_TYPE is deprecated and should not be used in newly-written code.
Returns the type of class.
class : | a GtkTypeClass. |
#define GTK_TYPE_IS_OBJECT(type) (g_type_is_a ((type), GTK_TYPE_OBJECT))
GTK_TYPE_IS_OBJECT is deprecated and should not be used in newly-written code.
Returns TRUE if type is a GTK_TYPE_OBJECT.
type : | a GtkType. |
#define GTK_TYPE_FUNDAMENTAL_LAST (G_TYPE_LAST_RESERVED_FUNDAMENTAL - 1)
GTK_TYPE_FUNDAMENTAL_LAST is deprecated and should not be used in newly-written code.
The highest-numbered structured or flat enumerated type value.
#define GTK_TYPE_FUNDAMENTAL_MAX (G_TYPE_FUNDAMENTAL_MAX)
GTK_TYPE_FUNDAMENTAL_MAX is deprecated and should not be used in newly-written code.
The maximum fundamental enumerated type value.
#define GTK_STRUCT_OFFSET G_STRUCT_OFFSET
GTK_STRUCT_OFFSET is deprecated and should not be used in newly-written code.
Use in place of offsetof(), which is used if it exists.
#define GTK_CHECK_CAST G_TYPE_CHECK_INSTANCE_CAST
Casts the object in tobj into cast. If G_DISABLE_CAST_CHECKS is defined, just cast it. Otherwise, check to see if we can cast tobj into a cast.
#define GTK_CHECK_CLASS_CAST G_TYPE_CHECK_CLASS_CAST
Casts the object in tobj into cast. If G_DISABLE_CAST_CHECKS is defined, just cast it. Otherwise, check to see if we can cast tobj into a cast.
#define GTK_CHECK_TYPE G_TYPE_CHECK_INSTANCE_TYPE
Determines whether type_object is a type of otype.
#define GTK_CHECK_CLASS_TYPE G_TYPE_CHECK_CLASS_TYPE
Determines whether type_class is a type of otype.
#define GTK_FUNDAMENTAL_TYPE G_TYPE_FUNDAMENTAL
GTK_FUNDAMENTAL_TYPE is deprecated and should not be used in newly-written code.
Converts a GTK+ type into a fundamental type.
#define GTK_SIGNAL_FUNC(f) ((GtkSignalFunc) (f))
Just a macroized cast into a GtkSignalFunc.
f : |
typedef GBaseInitFunc GtkClassInitFunc;
GtkClassInitFunc is deprecated and should not be used in newly-written code.
Defines a function pointer.
typedef GInstanceInitFunc GtkObjectInitFunc;
GtkObjectInitFunc is deprecated and should not be used in newly-written code.
Defines a function pointer.
void (*GtkDestroyNotify) (gpointer data);
Defines a function pointer.
data : | gpointer |
void (*GtkCallbackMarshal) (GtkObject *object, gpointer data, guint n_args, GtkArg *args);
Defines a function pointer.
typedef GSignalCMarshaller GtkSignalMarshaller;
GtkSignalMarshaller is deprecated and should not be used in newly-written code.
Defines a function pointer.
typedef GTypeInstance GtkTypeObject;
GtkTypeObject is deprecated and should not be used in newly-written code.
A GtkTypeObject defines the minimum structure requirements for type instances. Type instances returned from gtk_type_new() and initialized through a GtkObjectInitFunc need to directly inherit from this structure or at least copy its fields one by one.
struct GtkArg { GtkType type; gchar *name; /* this union only defines the required storage types for * the possibile values, thus there is no gint enum_data field, * because that would just be a mere alias for gint int_data. * use the GTK_VALUE_*() and GTK_RETLOC_*() macros to access * the discrete memebers. */ union { /* flat values */ gchar char_data; guchar uchar_data; gboolean bool_data; gint int_data; guint uint_data; glong long_data; gulong ulong_data; gfloat float_data; gdouble double_data; gchar *string_data; GtkObject *object_data; gpointer pointer_data; /* structured values */ struct { GtkSignalFunc f; gpointer d; } signal_data; } d; };
GtkArg is deprecated and should not be used in newly-written code.
This is a structure that we use to pass in typed values (and names).
#define GTK_VALUE_CHAR(a) ((a).d.char_data)
GTK_VALUE_CHAR is deprecated and should not be used in newly-written code.
Gets the value of a GtkArg whose GtkType is GTK_TYPE_CHAR.
a : | a GtkArg. |
#define GTK_VALUE_UCHAR(a) ((a).d.uchar_data)
GTK_VALUE_UCHAR is deprecated and should not be used in newly-written code.
Gets the value of a GtkArg whose GtkType is GTK_TYPE_UCHAR.
a : | a GtkArg. |
#define GTK_VALUE_BOOL(a) ((a).d.bool_data)
GTK_VALUE_BOOL is deprecated and should not be used in newly-written code.
Gets the value of a GtkArg whose GtkType is GTK_TYPE_BOOL.
a : | a GtkArg. |
#define GTK_VALUE_INT(a) ((a).d.int_data)
GTK_VALUE_INT is deprecated and should not be used in newly-written code.
Gets the value of a GtkArg whose GtkType is GTK_TYPE_INT.
a : | a GtkArg. |
#define GTK_VALUE_UINT(a) ((a).d.uint_data)
GTK_VALUE_UINT is deprecated and should not be used in newly-written code.
Gets the value of a GtkArg whose GtkType is GTK_TYPE_UINT.
a : | a GtkArg. |
#define GTK_VALUE_LONG(a) ((a).d.long_data)
GTK_VALUE_LONG is deprecated and should not be used in newly-written code.
Gets the value of a GtkArg whose GtkType is GTK_TYPE_LONG.
a : | a GtkArg. |
#define GTK_VALUE_ULONG(a) ((a).d.ulong_data)
GTK_VALUE_ULONG is deprecated and should not be used in newly-written code.
Gets the value of a GtkArg whose GtkType is GTK_TYPE_ULONG.
a : | a GtkArg. |
#define GTK_VALUE_FLOAT(a) ((a).d.float_data)
GTK_VALUE_FLOAT is deprecated and should not be used in newly-written code.
Gets the value of a GtkArg whose GtkType is GTK_TYPE_FLOAT.
a : | a GtkArg. |
#define GTK_VALUE_DOUBLE(a) ((a).d.double_data)
GTK_VALUE_DOUBLE is deprecated and should not be used in newly-written code.
Gets the value of a GtkArg whose GtkType is GTK_TYPE_DOUBLE.
a : | a GtkArg. |
#define GTK_VALUE_STRING(a) ((a).d.string_data)
GTK_VALUE_STRING is deprecated and should not be used in newly-written code.
Gets the value of a GtkArg whose GtkType is GTK_TYPE_STRING.
a : | a GtkArg. |
#define GTK_VALUE_ENUM(a) ((a).d.int_data)
GTK_VALUE_ENUM is deprecated and should not be used in newly-written code.
Gets the value of a GtkArg whose GtkType is GTK_TYPE_ENUM.
a : | a GtkArg. |
#define GTK_VALUE_FLAGS(a) ((a).d.uint_data)
GTK_VALUE_FLAGS is deprecated and should not be used in newly-written code.
Gets the value of a GtkArg whose GtkType is GTK_TYPE_FLAGS.
a : | a GtkArg. |
#define GTK_VALUE_BOXED(a) ((a).d.pointer_data)
GTK_VALUE_BOXED is deprecated and should not be used in newly-written code.
Gets the value of a GtkArg whose GtkType is GTK_TYPE_BOXED.
a : | a GtkArg. |
#define GTK_VALUE_POINTER(a) ((a).d.pointer_data)
GTK_VALUE_POINTER is deprecated and should not be used in newly-written code.
Gets the value of a GtkArg whose GtkType is GTK_TYPE_POINTER.
a : | a GtkArg. |
#define GTK_VALUE_OBJECT(a) ((a).d.object_data)
GTK_VALUE_OBJECT is deprecated and should not be used in newly-written code.
Gets the value of a GtkArg whose GtkType is GTK_TYPE_OBJECT.
a : | a GtkArg. |
#define GTK_VALUE_SIGNAL(a) ((a).d.signal_data)
GTK_VALUE_SIGNAL is deprecated and should not be used in newly-written code.
Gets the value of a GtkArg whose GtkType is GTK_TYPE_SIGNAL.
a : | a GtkArg. |
#define GTK_RETLOC_CHAR(a) ((gchar*) (a).d.pointer_data)
GTK_RETLOC_CHAR is deprecated and should not be used in newly-written code.
If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_CHAR.
a : | a GtkArg. |
#define GTK_RETLOC_UCHAR(a) ((guchar*) (a).d.pointer_data)
GTK_RETLOC_UCHAR is deprecated and should not be used in newly-written code.
If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_UCHAR.
a : | a GtkArg. |
#define GTK_RETLOC_BOOL(a) ((gboolean*) (a).d.pointer_data)
GTK_RETLOC_BOOL is deprecated and should not be used in newly-written code.
If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_BOOL.
a : | a GtkArg. |
#define GTK_RETLOC_INT(a) ((gint*) (a).d.pointer_data)
GTK_RETLOC_INT is deprecated and should not be used in newly-written code.
If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_INT.
a : | a GtkArg. |
#define GTK_RETLOC_UINT(a) ((guint*) (a).d.pointer_data)
GTK_RETLOC_UINT is deprecated and should not be used in newly-written code.
If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_UINT.
a : | a GtkArg. |
#define GTK_RETLOC_LONG(a) ((glong*) (a).d.pointer_data)
GTK_RETLOC_LONG is deprecated and should not be used in newly-written code.
If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_LONG.
a : | a GtkArg. |
#define GTK_RETLOC_ULONG(a) ((gulong*) (a).d.pointer_data)
GTK_RETLOC_ULONG is deprecated and should not be used in newly-written code.
If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_ULONG.
a : | a GtkArg. |
#define GTK_RETLOC_FLOAT(a) ((gfloat*) (a).d.pointer_data)
GTK_RETLOC_FLOAT is deprecated and should not be used in newly-written code.
If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_FLOAT.
a : | a GtkArg. |
#define GTK_RETLOC_DOUBLE(a) ((gdouble*) (a).d.pointer_data)
GTK_RETLOC_DOUBLE is deprecated and should not be used in newly-written code.
If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_DOUBLE.
a : | a GtkArg. |
#define GTK_RETLOC_STRING(a) ((gchar**) (a).d.pointer_data)
GTK_RETLOC_STRING is deprecated and should not be used in newly-written code.
If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_STRING.
a : | a GtkArg. |
#define GTK_RETLOC_ENUM(a) ((gint*) (a).d.pointer_data)
GTK_RETLOC_ENUM is deprecated and should not be used in newly-written code.
If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_ENUM.
a : | a GtkArg. |
#define GTK_RETLOC_FLAGS(a) ((guint*) (a).d.pointer_data)
GTK_RETLOC_FLAGS is deprecated and should not be used in newly-written code.
If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_FLAGS.
a : | a GtkArg. |
#define GTK_RETLOC_BOXED(a) ((gpointer*) (a).d.pointer_data)
GTK_RETLOC_BOXED is deprecated and should not be used in newly-written code.
If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_BOXED.
a : | a GtkArg. |
#define GTK_RETLOC_POINTER(a) ((gpointer*) (a).d.pointer_data)
GTK_RETLOC_POINTER is deprecated and should not be used in newly-written code.
If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_POINTER.
a : | a GtkArg. |
#define GTK_RETLOC_OBJECT(a) ((GtkObject**) (a).d.pointer_data)
GTK_RETLOC_OBJECT is deprecated and should not be used in newly-written code.
If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_OBJECT.
a : | a GtkArg. |
struct GtkTypeInfo { gchar *type_name; guint object_size; guint class_size; GtkClassInitFunc class_init_func; GtkObjectInitFunc object_init_func; gpointer reserved_1; gpointer reserved_2; GtkClassInitFunc base_class_init_func; };
GtkTypeInfo is deprecated and should not be used in newly-written code.
Holds information about the type. gtk_type_name() returns the name. object_size is somehow set to the number of bytes that an instance of the object will occupy. class_init_func holds the type's initialization function. object_init_func holds the initialization function for an instance of the object. reserved_1 is used for GtkEnumValue to hold the enumerated values.
typedef GTypeClass GtkTypeClass;
GtkTypeClass is deprecated and should not be used in newly-written code.
The base structure for a GTK+ type. Every type inherits this as a base structure.
typedef GEnumValue GtkEnumValue;
GtkEnumValue is deprecated and should not be used in newly-written code.
A structure which contains a single enum value, and its name, and it's nickname.
typedef GFlagsValue GtkFlagValue;
GtkFlagValue is deprecated and should not be used in newly-written code.
void gtk_type_init (GTypeDebugFlags debug_flags);
gtk_type_init is deprecated and should not be used in newly-written code.
Initializes the data structures associated with GTK+ types.
debug_flags : |
GtkType gtk_type_unique (GtkType parent_type, const GtkTypeInfo *gtkinfo);
gtk_type_unique is deprecated and should not be used in newly-written code.
Creates a new, unique type.
parent_type : | if zero, a fundamental type is created. |
gtkinfo : | |
Returns : | the new GtkType. |
#define gtk_type_name(type) g_type_name (type)
gtk_type_name is deprecated and should not be used in newly-written code.
Returns a pointer to the name of a type, or NULL if it has none.
type : | a GtkType. |
Returns : | a pointer to the name of a type, or NULL if it has none. |
#define gtk_type_from_name(name) g_type_from_name (name)
gtk_type_from_name is deprecated and should not be used in newly-written code.
Gets the internal representation of a type, given its name.
name : | the name of a GTK+ type |
Returns : | a GtkType. |
#define gtk_type_parent(type) g_type_parent (type)
gtk_type_parent is deprecated and should not be used in newly-written code.
Returns the parent type of a GtkType.
gpointer gtk_type_class (GtkType type);
Returns a pointer pointing to the class of type or NULL if there was any trouble identifying type. Initializes the class if necessary.
type : | a GtkType. |
Returns : | pointer to the class. |
gpointer gtk_type_new (GtkType type);
gtk_type_new is deprecated and should not be used in newly-written code.
Creates a new object of a given type, and return a pointer to it. Returns NULL if you give it an invalid type. It allocates the object out of the type's memory chunk if there is a memory chunk. The object has all the proper initializers called.
type : | a GtkType. |
Returns : | pointer to a GtkTypeObject. |
#define gtk_type_is_a(type, is_a_type) g_type_is_a ((type), (is_a_type))
gtk_type_is_a is deprecated and should not be used in newly-written code.
Looks in the type hierarchy to see if type has is_a_type among its ancestors. Do so with a simple lookup, not a loop.
GtkEnumValue* gtk_type_enum_get_values (GtkType enum_type);
gtk_type_enum_get_values is deprecated and should not be used in newly-written code.
If enum_type has values, then return a pointer to all of them.
enum_type : | a GtkType. |
Returns : | GtkEnumValue* |
GtkFlagValue* gtk_type_flags_get_values (GtkType flags_type);
gtk_type_flags_get_values is deprecated and should not be used in newly-written code.
If flags_type has values, then return a pointer to all of them.
flags_type : | a GtkType. |
Returns : | GtkFlagValue* |
GtkEnumValue* gtk_type_enum_find_value (GtkType enum_type, const gchar *value_name);
gtk_type_enum_find_value is deprecated and should not be used in newly-written code.
Returns a pointer to one of enum_type's GtkEnumValues's whose name (or nickname) matches value_name.
enum_type : | a GtkType. |
value_name : | the name to look for. |
Returns : | GtkEnumValue* |
GtkFlagValue* gtk_type_flags_find_value (GtkType flags_type, const gchar *value_name);
gtk_type_flags_find_value is deprecated and should not be used in newly-written code.
Returns a pointer to one of flag_type's GtkFlagValue's whose name (or nickname) matches value_name.
flags_type : | a GtkType. |
value_name : | the name to look for. |
Returns : | GtkFlagValue* |
<< Signals | Part III. GTK+ Widgets and Objects >> |