Merge 'master' into 'psppsheet'.
[pspp] / src / ui / gui / select-cases-dialog.c
index c5a7fa72c23835ad09d864f97f0200dd0107771f..c03906a6a8a2fedec3c5301864a9bf2224bd430b 100644 (file)
 #include "dict-display.h"
 #include "dialog-common.h"
 #include "widget-io.h"
+#include "psppire-scanf.h"
+#include "builder-wrapper.h"
 #include "helper.h"
+
 #include <xalloc.h>
 
 
@@ -57,27 +60,6 @@ struct select_cases_dialog
 static gchar * generate_syntax (const struct select_cases_dialog *scd);
 
 
-static void
-set_sensitivity_from_toggle (GtkToggleButton *togglebutton,  gpointer data)
-{
-  GtkWidget *w = data;
-  gboolean active = gtk_toggle_button_get_active (togglebutton);
-
-  gtk_widget_set_sensitive (w, active);
-}
-
-static void
-set_sensitivity_from_toggle_invert (GtkToggleButton *togglebutton,
-                                   gpointer data)
-{
-  GtkWidget *w = data;
-  gboolean active = gtk_toggle_button_get_active (togglebutton);
-
-  gtk_widget_set_sensitive (w, !active);
-}
-
-
-
 static const gchar label1[]=N_("Approximately %3d%% of all cases.");
 static const gchar label2[]=N_("Exactly %3d cases from the first %3d cases.");
 
@@ -103,7 +85,7 @@ sample_subdialog (GtkButton *b, gpointer data)
 
   if ( ! scd->hbox1 )
     {
-      scd->hbox1 = widget_scanf (gettext (label1), &scd->spinbutton);
+      scd->hbox1 = psppire_scanf_new (gettext (label1), &scd->spinbutton);
 
       gtk_widget_show (scd->hbox1);
 
@@ -120,7 +102,7 @@ sample_subdialog (GtkButton *b, gpointer data)
   if ( ! scd->hbox2 )
     {
       scd->hbox2 =
-       widget_scanf (gettext (label2), &scd->spinbutton1, &scd->spinbutton2);
+       psppire_scanf_new (gettext (label2), &scd->spinbutton1, &scd->spinbutton2);
 
       gtk_spin_button_set_range (GTK_SPIN_BUTTON (scd->spinbutton1),
                                 1, case_count);
@@ -366,7 +348,7 @@ generate_syntax_filter (const struct select_cases_dialog *scd)
   gchar *text = NULL;
   GString *string = g_string_new ("");
 
-  const gchar filter[]="filter_$";
+  const gchar *filter = "filter_$";
   const gchar key[]="case_$";
 
   if ( gtk_toggle_button_get_active
@@ -462,6 +444,13 @@ generate_syntax_filter (const struct select_cases_dialog *scd)
       g_string_append (string, "EXECUTE.\n");
 
     }
+  else
+    {
+      GtkEntry *entry =
+       GTK_ENTRY (get_widget_assert (scd->xml,
+                                     "filter-variable-entry"));
+      filter = gtk_entry_get_text (entry);
+    }
 
 
   g_string_append_printf  (string, "FILTER BY %s.\n", filter);