|  |  |  | GTK+ Reference Manual |  | 
|---|---|---|---|---|
| Top | Description | ||||
#include <gtk/gtk.h> gboolean (*GtkFunction) (gpointer data); void (*GtkCallbackMarshal) (GtkObject *object,gpointer data,guint n_args,GtkArg *args); GtkArg;
The GTK+ type system is extensible. Because of that, types have to be managed at runtime.
void (*GtkCallbackMarshal) (GtkObject *object,gpointer data,guint n_args,GtkArg *args);
Defines a function pointer.
typedef struct {
  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;
This is a structure that we use to pass in typed values (and names).