From: John Darrington Date: Sun, 10 Jul 2016 05:47:34 +0000 (+0200) Subject: Merge remote-tracking branch 'origin/master' into sheet X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f9b2322d7b0662bd313d9c63450638c39b88be70;hp=-c;p=pspp Merge remote-tracking branch 'origin/master' into sheet --- f9b2322d7b0662bd313d9c63450638c39b88be70 diff --combined src/ui/gui/automake.mk index 2d6862857c,0f0ea34662..1155cf70db --- a/src/ui/gui/automake.mk +++ b/src/ui/gui/automake.mk @@@ -69,7 -69,6 +69,7 @@@ EXTRA_DIST += src/ui/gui/marshaller-list \ src/ui/gui/pspplogo.svg +src_ui_gui_psppire_CPPFLAGS= if HAVE_GUI bin_PROGRAMS += src/ui/gui/psppire @@@ -242,6 -241,10 +242,10 @@@ src_ui_gui_psppire_SOURCES = src/ui/gui/psppire-dialog-action-rank.h \ src/ui/gui/psppire-dialog-action-recode.c \ src/ui/gui/psppire-dialog-action-recode.h \ + src/ui/gui/psppire-dialog-action-recode-same.c \ + src/ui/gui/psppire-dialog-action-recode-same.h \ + src/ui/gui/psppire-dialog-action-recode-different.c \ + src/ui/gui/psppire-dialog-action-recode-different.h \ src/ui/gui/psppire-dialog-action-regression.c \ src/ui/gui/psppire-dialog-action-regression.h \ src/ui/gui/psppire-dialog-action-reliability.c \ @@@ -303,9 -306,8 +307,9 @@@ src/ui/gui/psppire-value-entry.h \ src/ui/gui/psppire-var-ptr.c \ src/ui/gui/psppire-var-ptr.h \ - src/ui/gui/psppire-var-sheet.c \ src/ui/gui/psppire-var-sheet.h \ + src/ui/gui/psppire-var-sheet-header.h \ + src/ui/gui/psppire-var-sheet-header.c \ src/ui/gui/psppire-vbuttonbox.h \ src/ui/gui/psppire-window.c \ src/ui/gui/psppire-window.h \ @@@ -385,7 -387,6 +389,7 @@@ dist_appdata_DATA = src/ui/gui/pspp.app BUILT_SOURCES += src/ui/gui/psppire-marshal.c src/ui/gui/psppire-marshal.h CLEANFILES += src/ui/gui/psppire-marshal.c src/ui/gui/psppire-marshal.h \ $(nodist_src_ui_gui_psppire_DATA) +include $(top_srcdir)/src/ui/gui/efficient-sheet.mk endif HAVE_GUI #ensure the installcheck passes even if there is no X server available @@@ -393,7 -394,7 +397,7 @@@ installcheck-local DISPLAY=/invalid/port $(MAKE) $(AM_MAKEFLAGS) installcheck-binPROGRAMS # wrapper -src_ui_gui_psppire_CPPFLAGS = $(AM_CPPFLAGS) -Isrc/ui/gui/include +src_ui_gui_psppire_CPPFLAGS += $(AM_CPPFLAGS) -Isrc/ui/gui/include BUILT_SOURCES += src/ui/gui/include/gtk/gtk.h src/ui/gui/include/gtk/gtk.h: src/ui/gui/include/gtk/gtk.in.h @$(MKDIR_P) src/ui/gui/include/gtk diff --combined src/ui/gui/widgets.c index 042b8fcee7,b9a7a1ec3e..3f138291ec --- a/src/ui/gui/widgets.c +++ b/src/ui/gui/widgets.c @@@ -4,7 -4,6 +4,7 @@@ #include "widgets.h" +#include "gettext.h" #include "psppire-dialog.h" #include "psppire-selector.h" @@@ -43,7 -42,8 +43,8 @@@ #include "psppire-dialog-action-oneway.h" #include "psppire-means-layer.h" #include "psppire-dialog-action-rank.h" - #include "psppire-dialog-action-recode.h" + #include "psppire-dialog-action-recode-same.h" + #include "psppire-dialog-action-recode-different.h" #include "psppire-dialog-action-regression.h" #include "psppire-dialog-action-reliability.h" #include "psppire-dialog-action-roc.h" @@@ -92,7 -92,8 +93,8 @@@ static const get_type_func dialog_actio psppire_dialog_action_indep_samps_get_type, psppire_dialog_action_var_info_get_type, psppire_dialog_action_rank_get_type, - psppire_dialog_action_recode_get_type, + psppire_dialog_action_recode_same_get_type, + psppire_dialog_action_recode_different_get_type, psppire_dialog_action_reliability_get_type, psppire_dialog_action_regression_get_type, psppire_dialog_action_roc_get_type, @@@ -120,62 -121,6 +122,62 @@@ 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); +} + + +static void +tx_string_to_int (const GValue *src, GValue *dest) +{ + const gchar *str = g_value_get_string (src); + gint x = atoi (str); + g_value_set_int (dest, x); +} + +static void +enum_to_string (const GValue *src, GValue *dest) +{ + gint n = g_value_get_enum (src); + GType t = G_VALUE_TYPE (src); + GEnumClass *ec = g_type_class_ref (t); + GEnumValue *ev = g_enum_get_value (ec, n); + + g_value_set_string (dest, gettext (ev->value_nick)); +} + + + +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) +{ + 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); + + g_value_register_transform_func (G_TYPE_STRING, G_TYPE_DOUBLE, tx_string_to_double); + g_value_register_transform_func (G_TYPE_STRING, G_TYPE_INT, tx_string_to_int); + + g_value_register_transform_func (measure_enum_type, G_TYPE_STRING, enum_to_string); + g_value_register_transform_func (align_enum_type, G_TYPE_STRING, enum_to_string); + g_value_register_transform_func (role_enum_type, G_TYPE_STRING, enum_to_string); +} + /* Any custom widgets which are to be used in GtkBuilder ui files need to be preregistered, otherwise GtkBuilder refuses to @@@ -197,7 -142,6 +199,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. */