gui: Make text import assistant accept only one quote character.
[pspp] / src / ui / gui / psppire-import-assistant.h
index 3de7e08ff82ce2c123972e2a9f6f85da55e36a42..deec75c8789931ac0fb8aeddbeb346d040cc8ca3 100644 (file)
@@ -28,6 +28,8 @@
 #include "psppire-text-file.h"
 #include "psppire-delimited-text.h"
 
+#include <ssw-sheet.h>
+
 G_BEGIN_DECLS
 
 struct spreadsheet;
@@ -58,18 +60,25 @@ struct spreadsheet;
 typedef struct _PsppireImportAssistant       PsppireImportAssistant;
 typedef struct _PsppireImportAssistantClass  PsppireImportAssistantClass;
 
-
-typedef void page_func (PsppireImportAssistant *, GtkWidget *page);
+enum IMPORT_ASSISTANT_DIRECTION {IMPORT_ASSISTANT_FORWARDS, IMPORT_ASSISTANT_BACKWARDS};
 
 struct _PsppireImportAssistant
 {
   GtkAssistant parent;
 
-  GtkBuilder *builder;
+  gint previous_page;
+  gchar *file_name;
+  GMainLoop *main_loop;
+  GtkWidget *paste_button;
+  GtkWidget *reset_button;
+  int response;
+
+  struct dictionary *dict;
+  struct dictionary *casereader_dict;
 
-  gint current_page;
+  GtkWidget *var_sheet;
+  GtkWidget *data_sheet;
 
-  gchar *file_name;
 
   /* START The chooser page of the assistant. */
   GtkWidget *encoding_selector;
@@ -77,6 +86,9 @@ struct _PsppireImportAssistant
   /* END The chooser page of the assistant. */
 
 
+  GtkBuilder *text_builder;
+
+
   /* START The introduction page of the assistant. */
     GtkWidget *all_cases_button;
     GtkWidget *n_cases_button;
@@ -86,15 +98,18 @@ struct _PsppireImportAssistant
   /* END The introduction page of the assistant. */
 
 
-/* START Page where the user chooses field separators. */
+  /* START Page where the user chooses field separators. */
 
   /* How to break lines into columns. */
   struct string quotes;       /* Quote characters. */
 
   GtkWidget *custom_cb;
   GtkWidget *custom_entry;
-  GtkWidget *quote_cb;
-  GtkWidget *quote_combo;
+  GtkWidget *quote_none;
+  GtkWidget *quote_single;
+  GtkWidget *quote_double;
+  GtkWidget *quote_custom;
+  GtkWidget *quote_custom_entry;
 
   GtkWidget *fields_tree_view;
 
@@ -106,21 +121,15 @@ struct _PsppireImportAssistant
   GtkWidget *variable_names_cb;
   /* END first line page */
 
-  GMainLoop *main_loop;
-  GtkWidget *paste_button;
-  GtkWidget *reset_button;
-  int response;
-
   PsppireTextFile *text_file;
   PsppireDelimitedText *delimiters_model;
 
-  struct dictionary *dict;
-  struct dictionary *casereader_dict;
-
-  GtkWidget *var_sheet;
-  GtkWidget *data_sheet;
-
+  /* START spreadsheet related things */
+  GtkBuilder *spread_builder;
+  GtkWidget *preview_sheet;
   struct spreadsheet *spreadsheet;
+  SswRange selection;
+  bool updating_selection;
 };
 
 struct _PsppireImportAssistantClass
@@ -137,6 +146,9 @@ gchar *psppire_import_assistant_generate_syntax (PsppireImportAssistant *);
 
 int psppire_import_assistant_run (PsppireImportAssistant *asst);
 
+GtkWidget *add_page_to_assistant (PsppireImportAssistant *ia,
+                                  GtkWidget *page, GtkAssistantPageType type, const gchar *title);
+
 G_END_DECLS
 
 #endif /* __PSPPIRE_IMPORT_ASSISTANT_H__ */