work on docs
[pspp] / src / ui / gui / widgets.c
index c66c42a58f18f974d9b625c8a12da4666b791644..25aff745c4f9913dba123c3331b00b0986987890 100644 (file)
@@ -1,14 +1,32 @@
+/*
+PSPP - a program for statistical analysis.
+Copyright (C) 2017 Free Software Foundation, Inc.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include <config.h>
 
-#include <gtksourceview/gtksourceview.h>
+#include <gtksourceview/gtksource.h>
 
 #include "widgets.h"
 
+#include "gettext.h"
 
 #include "psppire-dialog.h"
 #include "psppire-selector.h"
-#include "psppire-vbuttonbox.h"
-#include "psppire-hbuttonbox.h"
+#include "psppire-buttonbox.h"
 #include "psppire-keypad.h"
 #include "psppire-acr.h"
 #include "psppire-dictview.h"
@@ -34,6 +52,7 @@
 #include "psppire-dialog-action-histogram.h"
 #include "psppire-dialog-action-indep-samps.h"
 #include "psppire-dialog-action-k-related.h"
+#include "psppire-dialog-action-k-independent.h"
 #include "psppire-dialog-action-1sks.h"
 #include "psppire-dialog-action-kmeans.h"
 #include "psppire-dialog-action-logistic.h"
@@ -42,7 +61,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"
 #include "psppire-dialog-action-var-info.h"
 #include "psppire-dialog-action-weight.h"
 #include "psppire-value-entry.h"
+#include "psppire-data-sheet.h"
+#include "psppire-var-sheet-header.h"
+#include "psppire-var-info.h"
+#include "psppire-variable-sheet.h"
+#include <ssw-sheet.h>
+
 
 static  volatile GType kludge;
 
@@ -84,6 +110,7 @@ static const get_type_func dialog_action_types[]=
   psppire_dialog_action_histogram_get_type,
   psppire_dialog_action_logistic_get_type,
   psppire_dialog_action_kmeans_get_type,
+  psppire_dialog_action_k_independent_get_type,
   psppire_dialog_action_k_related_get_type,
   psppire_dialog_action_means_get_type,
   psppire_dialog_action_oneway_get_type,
@@ -91,7 +118,8 @@ static const get_type_func dialog_action_types[]=
   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,
@@ -136,31 +164,48 @@ tx_string_to_int (const GValue *src, GValue *dest)
   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 GType align_enum_type;
+extern GType measure_enum_type;
+extern 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);
-  g_value_register_transform_func (G_TYPE_STRING, G_TYPE_INT, tx_string_to_int);
-
   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 
+   need to be preregistered, otherwise GtkBuilder refuses to
    acknowledge their existence. */
 void
 preregister_widgets (void)
@@ -168,8 +213,7 @@ preregister_widgets (void)
   psppire_val_chooser_get_type ();
   psppire_dialog_get_type ();
   psppire_selector_get_type ();
-  psppire_vbutton_box_get_type ();
-  psppire_hbutton_box_get_type ();
+  psppire_button_box_get_type ();
   psppire_keypad_get_type ();
   psppire_acr_get_type ();
   psppire_dict_view_get_type ();
@@ -177,6 +221,11 @@ preregister_widgets (void)
   psppire_value_entry_get_type ();
   psppire_checkbox_treeview_get_type ();
   psppire_means_layer_get_type ();
+  ssw_sheet_get_type ();
+  psppire_data_sheet_get_type ();
+  psppire_var_sheet_header_get_type ();
+  psppire_variable_sheet_get_type ();
+  psppire_var_info_get_type ();
 
   preregister_actions ();
   preregister_misc ();