MEANS: Fix potential errors in gui syntax generation
[pspp] / src / ui / gui / page-intro.c
index 4034834c345957f2905f11d657e4fe4c22bfa5f5..4c47530be16ad45c668ac49d890ab14fa8b97f92 100644 (file)
 
 #include <config.h>
 
+#include "page-intro.h"
+
 #include "ui/gui/text-data-import-dialog.h"
 
 #include <errno.h>
 #include <fcntl.h>
-#include <gtk-contrib/psppire-sheet.h>
 #include <gtk/gtk.h>
 #include <limits.h>
 #include <stdlib.h>
@@ -36,7 +37,6 @@
 #include "libpspp/i18n.h"
 #include "libpspp/line-reader.h"
 #include "libpspp/message.h"
-#include "ui/gui/checkbox-treeview.h"
 #include "ui/gui/dialog-common.h"
 #include "ui/gui/executor.h"
 #include "ui/gui/helper.h"
 #include "ui/gui/psppire-encoding-selector.h"
 #include "ui/gui/psppire-empty-list-store.h"
 #include "ui/gui/psppire-var-sheet.h"
-#include "ui/gui/psppire-var-store.h"
 #include "ui/gui/psppire-scanf.h"
 #include "ui/syntax-gen.h"
 
-#include "gl/error.h"
 #include "gl/intprops.h"
 #include "gl/xalloc.h"
 
@@ -64,6 +62,17 @@ struct import_assistant;
 \f
 /* The "intro" page of the assistant. */
 
+/* The introduction page of the assistant. */
+struct intro_page
+  {
+    GtkWidget *page;
+    GtkWidget *all_cases_button;
+    GtkWidget *n_cases_button;
+    GtkWidget *n_cases_spin;
+    GtkWidget *percent_button;
+    GtkWidget *percent_spin;
+  };
+
 static void on_intro_amount_changed (struct intro_page *);
 
 /* Initializes IA's intro substructure. */
@@ -171,3 +180,17 @@ on_intro_amount_changed (struct intro_page *p)
                             gtk_toggle_button_get_active (
                               GTK_TOGGLE_BUTTON (p->percent_button)));
 }
+
+
+void
+intro_append_syntax (const struct intro_page *p, struct string *s)
+{
+  if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (p->n_cases_button)))
+    ds_put_format (s, "  /IMPORTCASES=FIRST %d\n",
+                  gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (p->n_cases_spin)));
+  else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (p->percent_button)))
+    ds_put_format (s, "  /IMPORTCASES=PERCENT %d\n",
+                  gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (p->percent_spin)));
+  else
+    ds_put_cstr (s, "  /IMPORTCASES=ALL\n");
+}