bindings: Add more variant types

Also marshal types that the code in gtkbindings.c doesn't use. These
will be used by gtk_widget_class_add_binding_signal().
This commit is contained in:
Benjamin Otte 2018-08-04 12:27:30 +02:00 committed by Matthias Clasen
parent e19b49f5aa
commit c7f10e570e

View File

@ -541,10 +541,22 @@ binding_compose_params (GObject *object,
switch ((guint) g_variant_classify (tmp_variant)) switch ((guint) g_variant_classify (tmp_variant))
{ {
case G_VARIANT_CLASS_BOOLEAN:
g_value_init (&tmp_value, G_TYPE_BOOLEAN);
g_value_set_boolean (&tmp_value, g_variant_get_boolean (tmp_variant));
break;
case G_VARIANT_CLASS_DOUBLE: case G_VARIANT_CLASS_DOUBLE:
g_value_init (&tmp_value, G_TYPE_DOUBLE); g_value_init (&tmp_value, G_TYPE_DOUBLE);
g_value_set_double (&tmp_value, g_variant_get_double (tmp_variant)); g_value_set_double (&tmp_value, g_variant_get_double (tmp_variant));
break; break;
case G_VARIANT_CLASS_INT32:
g_value_init (&tmp_value, G_TYPE_LONG);
g_value_set_long (&tmp_value, g_variant_get_int32 (tmp_variant));
break;
case G_VARIANT_CLASS_UINT32:
g_value_init (&tmp_value, G_TYPE_LONG);
g_value_set_long (&tmp_value, g_variant_get_uint32 (tmp_variant));
break;
case G_VARIANT_CLASS_INT64: case G_VARIANT_CLASS_INT64:
g_value_init (&tmp_value, G_TYPE_LONG); g_value_init (&tmp_value, G_TYPE_LONG);
g_value_set_long (&tmp_value, g_variant_get_int64 (tmp_variant)); g_value_set_long (&tmp_value, g_variant_get_int64 (tmp_variant));