## Types Types — Handle run-time type creation |

## Functions

#define | GTK_CLASS_NAME()
#define | GTK_CLASS_TYPE()
#define | GTK_TYPE_IS_OBJECT()
#define | GTK_SIGNAL_FUNC()
void | (*GtkSignalFunc) ()
gboolean | (*GtkFunction) ()
void | (*GtkDestroyNotify) ()
void | (*GtkCallbackMarshal) ()
#define | GTK_VALUE_CHAR()
#define | GTK_VALUE_UCHAR()
#define | GTK_VALUE_BOOL()
#define | GTK_VALUE_INT()
#define | GTK_VALUE_UINT()
#define | GTK_VALUE_LONG()
#define | GTK_VALUE_ULONG()
#define | GTK_VALUE_FLOAT()
#define | GTK_VALUE_DOUBLE()
#define | GTK_VALUE_STRING()
#define | GTK_VALUE_ENUM()
#define | GTK_VALUE_FLAGS()
#define | GTK_VALUE_BOXED()
#define | GTK_VALUE_POINTER()
#define | GTK_VALUE_OBJECT()
#define | GTK_VALUE_SIGNAL()
#define | GTK_RETLOC_CHAR()
#define | GTK_RETLOC_UCHAR()
#define | GTK_RETLOC_BOOL()
#define | GTK_RETLOC_INT()
#define | GTK_RETLOC_UINT()
#define | GTK_RETLOC_LONG()
#define | GTK_RETLOC_ULONG()
#define | GTK_RETLOC_FLOAT()
#define | GTK_RETLOC_DOUBLE()
#define | GTK_RETLOC_STRING()
#define | GTK_RETLOC_ENUM()
#define | GTK_RETLOC_FLAGS()
#define | GTK_RETLOC_BOXED()
#define | GTK_RETLOC_POINTER()
#define | GTK_RETLOC_OBJECT()
void | gtk_type_init ()
GtkType | gtk_type_unique ()
#define | gtk_type_name()
#define | gtk_type_from_name()
#define | gtk_type_parent()
gpointer | gtk_type_class ()
gpointer | gtk_type_new ()
#define | gtk_type_is_a()
GtkEnumValue * | gtk_type_enum_get_values ()
GtkFlagValue * | gtk_type_flags_get_values ()
GtkEnumValue * | gtk_type_enum_find_value ()
GtkFlagValue * | gtk_type_flags_find_value ()

## Types and Values

typedef | GtkType
typedef | GtkFundamentalType
#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
typedef | GtkClassInitFunc
typedef | GtkObjectInitFunc
typedef | GtkSignalMarshaller
typedef | GtkTypeObject
struct | GtkArg
struct | GtkTypeInfo
typedef | GtkTypeClass
typedef | GtkEnumValue
typedef | GtkFlagValue

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