Separated psppire_selector_set_subjects into two individual functions
[pspp-builds.git] / src / ui / gui / examine-dialog.c
index 14679d7000ab729f6d9274d7732a13371f33c9e2..09b5f8b819182e2ae24450e24ebf8f2e9b89bb3c 100644 (file)
 #include "examine-dialog.h"
 
 #include <gtk/gtk.h>
-#include <gtksheet/gtksheet.h>
 #include <stdlib.h>
 
 #include <language/syntax-string-source.h>
-#include <ui/gui/data-editor.h>
+#include <ui/gui/psppire-data-window.h>
 #include <ui/gui/dialog-common.h>
 #include <ui/gui/dict-display.h>
 #include <ui/gui/helper.h>
 #include <ui/gui/psppire-dialog.h>
 #include <ui/gui/psppire-var-store.h>
-#include <ui/gui/syntax-editor.h>
+#include "executor.h"
 
 #include "gettext.h"
 #define _(msgid) gettext (msgid)
@@ -237,13 +236,11 @@ void
 examine_dialog (GObject *o, gpointer data)
 {
   gint response;
-  struct data_editor *de = data;
+  PsppireDataWindow *de = PSPPIRE_DATA_WINDOW (data);
 
   struct examine_dialog ex_d;
 
-
-  GladeXML *xml = XML_NEW ("examine.glade");
-
+  GtkBuilder *xml = builder_new ("examine.ui");
 
   GtkWidget *dialog = get_widget_assert   (xml, "examine-dialog");
   GtkWidget *source = get_widget_assert   (xml, "treeview1");
@@ -256,10 +253,9 @@ examine_dialog (GObject *o, gpointer data)
   GtkWidget *fct_selector = get_widget_assert (xml, "psppire-selector2");
   GtkWidget *id_selector = get_widget_assert (xml, "psppire-selector3");
 
-  GtkSheet *var_sheet =
-    GTK_SHEET (get_widget_assert (de->xml, "variable_sheet"));
+  PsppireVarStore *vs = NULL;
 
-  PsppireVarStore *vs = PSPPIRE_VAR_STORE (gtk_sheet_get_model (var_sheet));
+  g_object_get (de->data_editor, "var-store", &vs, NULL);
 
   ex_d.dep_list =   get_widget_assert   (xml, "treeview2");
   ex_d.fct_list =   get_widget_assert   (xml, "treeview3");
@@ -279,43 +275,34 @@ examine_dialog (GObject *o, gpointer data)
   ex_d.percentiles_button = GTK_TOGGLE_BUTTON
     (get_widget_assert (xml, "percentiles-button"));
 
-  gtk_window_set_transient_for (GTK_WINDOW (dialog), de->parent.window);
-  gtk_window_set_transient_for (GTK_WINDOW (ex_d.stats_dialog), de->parent.window);
-  gtk_window_set_transient_for (GTK_WINDOW (ex_d.opts_dialog), de->parent.window);
-
-  attach_dictionary_to_treeview (GTK_TREE_VIEW (source),
-                                vs->dict,
-                                GTK_SELECTION_MULTIPLE, NULL);
+  gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de));
+  gtk_window_set_transient_for (GTK_WINDOW (ex_d.stats_dialog), GTK_WINDOW (de));
+  gtk_window_set_transient_for (GTK_WINDOW (ex_d.opts_dialog), GTK_WINDOW (de));
 
+  g_object_get (vs, "dictionary", &ex_d.dict, NULL);
+  g_object_set (source, "model", ex_d.dict, NULL);
 
-  set_dest_model (GTK_TREE_VIEW (ex_d.dep_list), vs->dict);
-  ex_d.dict = vs->dict;
+  set_dest_model (GTK_TREE_VIEW (ex_d.dep_list), ex_d.dict);
 
 
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (dep_selector),
-                                source,
-                                ex_d.dep_list,
+  psppire_selector_set_select_func (PSPPIRE_SELECTOR (dep_selector),
                                 insert_source_row_into_tree_view,
-                                NULL, NULL);
+                                NULL);
 
   psppire_selector_set_allow (PSPPIRE_SELECTOR (dep_selector),
                              numeric_only);
 
-  set_dest_model (GTK_TREE_VIEW (ex_d.fct_list), vs->dict);
+  set_dest_model (GTK_TREE_VIEW (ex_d.fct_list), ex_d.dict);
 
 
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (fct_selector),
-                                source,
-                                ex_d.fct_list,
+  psppire_selector_set_select_func (PSPPIRE_SELECTOR (fct_selector),
                                 insert_source_row_into_tree_view,
-                                NULL, NULL);
+                                NULL);
 
 
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (id_selector),
-                                source,
-                                ex_d.id_entry,
+  psppire_selector_set_select_func (PSPPIRE_SELECTOR (id_selector),
                                 insert_source_row_into_entry,
-                                NULL, NULL);
+                                NULL);
 
   g_signal_connect (dialog, "refresh", G_CALLBACK (refresh),  &ex_d);
 
@@ -348,12 +335,7 @@ examine_dialog (GObject *o, gpointer data)
     case PSPPIRE_RESPONSE_PASTE:
       {
        gchar *syntax = generate_syntax (&ex_d);
-
-       struct syntax_editor *se =
-         (struct syntax_editor *) window_create (WINDOW_SYNTAX, NULL);
-
-       gtk_text_buffer_insert_at_cursor (se->buffer, syntax, -1);
-
+       paste_syntax_in_new_window (syntax);
        g_free (syntax);
       }
       break;