static inline gboolean gtk_arg_set_from_value (GtkArg *arg, GValue *value, gboolean copy_string) { switch (G_TYPE_FUNDAMENTAL (arg->type)) { case G_TYPE_CHAR: GTK_VALUE_CHAR (*arg) = g_value_get_char (value); break; case G_TYPE_UCHAR: GTK_VALUE_UCHAR (*arg) = g_value_get_uchar (value); break; case G_TYPE_BOOLEAN: GTK_VALUE_BOOL (*arg) = g_value_get_boolean (value); break; case G_TYPE_INT: GTK_VALUE_INT (*arg) = g_value_get_int (value); break; case G_TYPE_UINT: GTK_VALUE_UINT (*arg) = g_value_get_uint (value); break; case G_TYPE_LONG: GTK_VALUE_LONG (*arg) = g_value_get_long (value); break; case G_TYPE_ULONG: GTK_VALUE_ULONG (*arg) = g_value_get_ulong (value); break; case G_TYPE_ENUM: GTK_VALUE_ENUM (*arg) = g_value_get_enum (value); break; case G_TYPE_FLAGS: GTK_VALUE_FLAGS (*arg) = g_value_get_flags (value); break; case G_TYPE_FLOAT: GTK_VALUE_FLOAT (*arg) = g_value_get_float (value); break; case G_TYPE_DOUBLE: GTK_VALUE_DOUBLE (*arg) = g_value_get_double (value); break; case G_TYPE_BOXED: GTK_VALUE_BOXED (*arg) = g_value_get_boxed (value); break; case G_TYPE_POINTER: GTK_VALUE_POINTER (*arg) = g_value_get_pointer (value); break; case G_TYPE_OBJECT: GTK_VALUE_POINTER (*arg) = g_value_get_object (value); break; case G_TYPE_STRING: if (copy_string) GTK_VALUE_STRING (*arg) = g_value_dup_string (value); else GTK_VALUE_STRING (*arg) = (char *) g_value_get_string (value); break; default: return FALSE; } return TRUE; }
static void gtk_hex_entry_set_arg (GtkObject *object, GtkArg *arg, guint arg_id) { GtkHexEntry *hex_entry; hex_entry = GTK_HEX_ENTRY (object); switch (arg_id) { case ARG_VALUE: gtk_hex_entry_set_value (hex_entry, GTK_VALUE_ULONG (*arg)); break; default: break; } }