Types

Types — Handle run-time type creation

Functions

Types and Values

Includes

#include <gtk/gtk.h>

Description

The GTK+ type system is extensible. Because of that, types have to be managed at runtime.

Functions

GTK_CLASS_NAME()

#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.

Use g_type_name() and G_TYPE_FROM_CLASS() instead.

Returns the type name of class.

Parameters

class

a GtkTypeClass.

 

GTK_CLASS_TYPE()

#define GTK_CLASS_TYPE(class)		(G_TYPE_FROM_CLASS (class))

GTK_CLASS_TYPE is deprecated and should not be used in newly-written code.

Use G_TYPE_FROM_CLASS() instead.

Returns the type of class.

Parameters

class

a GtkTypeClass.

 

GTK_TYPE_IS_OBJECT()

#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.

Use G_TYPE_IS_OBJECT() instead.

Returns TRUE if type is a GTK_TYPE_OBJECT.

Parameters

type

a GtkType.

 

GTK_TYPE_FUNDAMENTAL_LAST

#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.

Use G_TYPE_LAST_RESERVED_FUNDAMENTAL - 1 instead.

The highest-numbered structured or flat enumerated type value.


GTK_TYPE_FUNDAMENTAL_MAX

#define GTK_TYPE_FUNDAMENTAL_MAX         (G_TYPE_FUNDAMENTAL_MAX)

GTK_TYPE_FUNDAMENTAL_MAX is deprecated and should not be used in newly-written code.

Use G_TYPE_FUNDAMENTAL_MAX instead.

The maximum fundamental enumerated type value.


GTK_SIGNAL_FUNC()

#define GTK_SIGNAL_FUNC(f)	    G_CALLBACK(f)

GTK_SIGNAL_FUNC is deprecated and should not be used in newly-written code.

Just a macroized cast into a GtkSignalFunc.


GtkSignalFunc ()

void
(*GtkSignalFunc) (void);

GtkSignalFunc is deprecated and should not be used in newly-written code.

Defines a function pointer.


GtkFunction ()

gboolean
(*GtkFunction) (gpointer data);

GtkFunction has been deprecated since version 2.24 and should not be used in newly-written code.

Use GSourceFunc() instead.

Defines a function pointer.

Parameters

data

gpointer

 

Returns

gint


GtkDestroyNotify ()

void
(*GtkDestroyNotify) (gpointer data);

GtkDestroyNotify is deprecated and should not be used in newly-written code.

Defines a function pointer.

Parameters

data

gpointer

 

GtkCallbackMarshal ()

void
(*GtkCallbackMarshal) (GtkObject *object,
                       gpointer data,
                       guint n_args,
                       GtkArg *args);

GtkCallbackMarshal has been deprecated since version 2.24 and should not be used in newly-written code.

Defines a function pointer.

Parameters

object

GtkObject*

 

data

gpointer

 

n_args

guint

 

args

GtkArg*

 

GTK_VALUE_CHAR()

#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.

Parameters

a

a GtkArg.

 

GTK_VALUE_UCHAR()

#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.

Parameters

a

a GtkArg.

 

GTK_VALUE_BOOL()

#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.

Parameters

a

a GtkArg.

 

GTK_VALUE_INT()

#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.

Parameters

a

a GtkArg.

 

GTK_VALUE_UINT()

#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.

Parameters

a

a GtkArg.

 

GTK_VALUE_LONG()

#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.

Parameters

a

a GtkArg.

 

GTK_VALUE_ULONG()

#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.

Parameters

a

a GtkArg.

 

GTK_VALUE_FLOAT()

#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.

Parameters

a

a GtkArg.

 

GTK_VALUE_DOUBLE()

#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.

Parameters

a

a GtkArg.

 

GTK_VALUE_STRING()

#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.

Parameters

a

a GtkArg.

 

GTK_VALUE_ENUM()

#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.

Parameters

a

a GtkArg.

 

GTK_VALUE_FLAGS()

#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.

Parameters

a

a GtkArg.

 

GTK_VALUE_BOXED()

#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.

Parameters

a

a GtkArg.

 

GTK_VALUE_POINTER()

#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.

Parameters

a

a GtkArg.

 

GTK_VALUE_OBJECT()

#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.

Parameters

a

a GtkArg.

 

GTK_VALUE_SIGNAL()

#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.

Parameters

a

a GtkArg.

 

GTK_RETLOC_CHAR()

#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.

Parameters

a

a GtkArg.

 

GTK_RETLOC_UCHAR()

#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.

Parameters

a

a GtkArg.

 

GTK_RETLOC_BOOL()

#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.

Parameters

a

a GtkArg.

 

GTK_RETLOC_INT()

#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.

Parameters

a

a GtkArg.

 

GTK_RETLOC_UINT()

#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.

Parameters

a

a GtkArg.

 

GTK_RETLOC_LONG()

#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.

Parameters

a

a GtkArg.

 

GTK_RETLOC_ULONG()

#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.

Parameters

a

a GtkArg.

 

GTK_RETLOC_FLOAT()

#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.

Parameters

a

a GtkArg.

 

GTK_RETLOC_DOUBLE()

#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.

Parameters

a

a GtkArg.

 

GTK_RETLOC_STRING()

#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.

Parameters

a

a GtkArg.

 

GTK_RETLOC_ENUM()

#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.

Parameters

a

a GtkArg.

 

GTK_RETLOC_FLAGS()

#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.

Parameters

a

a GtkArg.

 

GTK_RETLOC_BOXED()

#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.

Parameters

a

a GtkArg.

 

GTK_RETLOC_POINTER()

#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.

Parameters

a

a GtkArg.

 

GTK_RETLOC_OBJECT()

#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.

Parameters

a

a GtkArg.

 

gtk_type_init ()

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.

Parameters

debug_flags

debug flags

 

gtk_type_unique ()

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.

Parameters

parent_type

if zero, a fundamental type is created

 

gtkinfo

must not be NULL, and type_info->type_name must also not be NULL

 

Returns

the new GtkType


gtk_type_name()

#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.

Parameters

type

a GtkType.

 

Returns

a pointer to the name of a type, or NULL if it has none.


gtk_type_from_name()

#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.

Parameters

name

the name of a GTK+ type

 

Returns

a GtkType.


gtk_type_parent()

#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.

Parameters

type

a GtkType.

 

Returns

the GtkType of the parent.


gtk_type_class ()

gpointer
gtk_type_class (GtkType type);

gtk_type_class has been deprecated since version 2.14 and should not be used in newly-written code.

Use g_type_class_peek() or g_type_class_ref() instead.

Returns a pointer pointing to the class of type or NULL if there was any trouble identifying type . Initializes the class if necessary.

Returns a pointer pointing to the class of type or NULL if there was any trouble identifying type . Initializes the class if necessary.

Parameters

type

a GtkType.

 

Returns

pointer to the class.


gtk_type_new ()

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.

Parameters

type

a GtkType.

 

Returns

pointer to a GtkTypeObject.


gtk_type_is_a()

#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.

Parameters

type

a GtkType.

 

is_a_type

another GtkType.

 

Returns

TRUE if type is a is_a_type .


gtk_type_enum_get_values ()

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.

Parameters

enum_type

a GtkType.

 

Returns

GtkEnumValue*


gtk_type_flags_get_values ()

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.

Parameters

flags_type

a GtkType.

 

Returns

GtkFlagValue*


gtk_type_enum_find_value ()

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.

Parameters

enum_type

a GtkType.

 

value_name

the name to look for.

 

Returns

GtkEnumValue*


gtk_type_flags_find_value ()

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.

Parameters

flags_type

a GtkType.

 

value_name

the name to look for.

 

Returns

GtkFlagValue*

Types and Values

GtkType

typedef GType                   GtkType;

GtkType is deprecated and should not be used in newly-written code.

GtkType is unique integer identifying the type. The guts of the information about the type is held in a private struct named GtkTypeNode.


GtkFundamentalType

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).


GTK_STRUCT_OFFSET

#define GTK_STRUCT_OFFSET G_STRUCT_OFFSET

GTK_STRUCT_OFFSET is deprecated and should not be used in newly-written code.

Use G_STRUCT_OFFSET() instead.

Use in place of offsetof(), which is used if it exists.


GTK_CHECK_CAST

#define GTK_CHECK_CAST		G_TYPE_CHECK_INSTANCE_CAST

GTK_CHECK_CAST is deprecated and should not be used in newly-written code.

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.


GTK_CHECK_CLASS_CAST

#define GTK_CHECK_CLASS_CAST G_TYPE_CHECK_CLASS_CAST

GTK_CHECK_CLASS_CAST is deprecated and should not be used in newly-written code.

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.


GTK_CHECK_TYPE

#define GTK_CHECK_TYPE		G_TYPE_CHECK_INSTANCE_TYPE

GTK_CHECK_TYPE is deprecated and should not be used in newly-written code.

Determines whether type_object is a type of otype.


GTK_CHECK_CLASS_TYPE

#define GTK_CHECK_CLASS_TYPE G_TYPE_CHECK_CLASS_TYPE

GTK_CHECK_CLASS_TYPE is deprecated and should not be used in newly-written code.

Determines whether type_class is a type of otype.


GTK_CHECK_GET_CLASS

#define GTK_CHECK_GET_CLASS G_TYPE_INSTANCE_GET_CLASS

GTK_CHECK_GET_CLASS is deprecated and should not be used in newly-written code.

Gets the class of tobj.


GTK_FUNDAMENTAL_TYPE

#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.


GtkClassInitFunc

typedef GBaseInitFunc           GtkClassInitFunc;

GtkClassInitFunc is deprecated and should not be used in newly-written code.

Defines a function pointer.


GtkObjectInitFunc

typedef GInstanceInitFunc       GtkObjectInitFunc;

GtkObjectInitFunc is deprecated and should not be used in newly-written code.

Defines a function pointer.


GtkSignalMarshaller

typedef GSignalCMarshaller      GtkSignalMarshaller;

GtkSignalMarshaller is deprecated and should not be used in newly-written code.

Defines a function pointer.


GtkTypeObject

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

struct GtkArg {
  GType 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 {
      GCallback 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).


struct GtkTypeInfo

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.


GtkTypeClass

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.


GtkEnumValue

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 its nickname.


GtkFlagValue

typedef GFlagsValue GtkFlagValue;

GtkFlagValue is deprecated and should not be used in newly-written code.