From 45fc3e8c3de0ef3904ffa68199f1a8254c0f48fe Mon Sep 17 00:00:00 2001 From: John Darrington Date: Mon, 14 Mar 2016 21:08:54 +0100 Subject: [PATCH] Register enums and transform functions --- src/ui/gui/widgets.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/ui/gui/widgets.c b/src/ui/gui/widgets.c index 488ec94e1a..50b07a5cec 100644 --- a/src/ui/gui/widgets.c +++ b/src/ui/gui/widgets.c @@ -119,6 +119,34 @@ preregister_actions (void) } +static void +tx_string_to_double (const GValue *src, GValue *dest) +{ + const gchar *str = g_value_get_string (src); + gdouble dble = g_strtod (str, NULL); + g_value_set_double (dest, dble); +} + + +GType align_enum_type; +GType measure_enum_type; +GType role_enum_type; + +extern const GEnumValue align[]; +extern const GEnumValue measure[]; +extern const GEnumValue role[]; + +static void +preregister_misc (void) +{ + g_value_register_transform_func (G_TYPE_STRING, G_TYPE_DOUBLE, tx_string_to_double); + + align_enum_type = g_enum_register_static ("PsppAlignment", align); + measure_enum_type = g_enum_register_static ("PsppMeasure", measure); + role_enum_type = g_enum_register_static ("PsppRole", role); + +} + /* Any custom widgets which are to be used in GtkBuilder ui files need to be preregistered, otherwise GtkBuilder refuses to @@ -140,6 +168,7 @@ preregister_widgets (void) psppire_means_layer_get_type (); preregister_actions (); + preregister_misc (); /* This seems to be necessary on Cygwin. It ought not to be necessary. Having it here can't do any harm. */ -- 2.30.2