Rewrite PSPP output engine.
[pspp-builds.git] / src / ui / gui / psppire.c
index 7a369a607d6acd44f3755d354c51b08c3bf3c0d1..ddf915f272eddf4dcc427b24faa8da1a8cd590fc 100644 (file)
@@ -21,6 +21,7 @@
 #include <libintl.h>
 #include <gsl/gsl_errno.h>
 
+#include <xalloc.h>
 #include <argp.h>
 #include <ui/command-line.h>
 #include "relocatable.h"
 #include <libpspp/getl.h>
 #include <language/lexer/lexer.h>
 #include <libpspp/version.h>
-#include <output/output.h>
+#include <output/driver.h>
 #include <output/journal.h>
 #include <language/syntax-string-source.h>
 
 #include <gtk/gtk.h>
 #include "psppire-dict.h"
+#include "dict-display.h"
+#include "psppire-selector.h"
+#include "psppire-var-view.h"
 #include "psppire-var-store.h"
 #include "psppire-data-store.h"
-#include "helper.h"
+#include "executor.h"
 #include "message-dialog.h"
 #include <ui/syntax-gen.h>
 
@@ -81,7 +85,6 @@ replace_casereader (struct casereader *s)
 #define N_(msgid) msgid
 
 
-const char * output_file_name (void);
 
 
 void
@@ -89,14 +92,12 @@ initialize (struct command_line_processor *clp, int argc, char **argv)
 {
   PsppireDict *dictionary = 0;
 
-
   i18n_init ();
 
   preregister_widgets ();
 
   gsl_set_error_handler_off ();
   fn_init ();
-  outp_init ();
   settings_init (&viewer_width, &viewer_length);
   fh_init ();
   the_source_stream =
@@ -121,25 +122,7 @@ initialize (struct command_line_processor *clp, int argc, char **argv)
 
   create_icon_factory ();
 
-  {
-    const char *filename = output_file_name ();
-
-    struct string config_string;
-
-    ds_init_empty (&config_string);
-
-    ds_put_format (&config_string,
-                  "gui:ascii:screen:squeeze=on headers=off top-margin=0 "
-                  "bottom-margin=0 paginate=off length=auto width=auto "
-                  "emphasis=none "
-                  "output-file=\"%s\" append=yes", filename);
-
-    outp_configure_driver_line (ds_ss (&config_string));
-
-    unlink (filename);
-
-    ds_destroy (&config_string);
-  }
+  psppire_output_window_setup ();
 
   journal_enable ();
   textdomain (PACKAGE);
@@ -147,6 +130,10 @@ initialize (struct command_line_processor *clp, int argc, char **argv)
 
   the_recent_mgr = gtk_recent_manager_get_default ();
 
+  psppire_selector_set_default_selection_func (GTK_TYPE_ENTRY, insert_source_row_into_entry);
+  psppire_selector_set_default_selection_func (PSPPIRE_VAR_VIEW_TYPE, insert_source_row_into_tree_view);
+  psppire_selector_set_default_selection_func (GTK_TYPE_TREE_VIEW, insert_source_row_into_tree_view);
+
   the_data_window = psppire_data_window_new ();
 
   command_line_processor_replace_aux (clp, &post_init_argp, the_source_stream);
@@ -166,7 +153,7 @@ de_initialize (void)
   destroy_source_stream (the_source_stream);
   message_dialog_done ();
   settings_done ();
-  outp_done ();
+  output_close ();
   i18n_done ();
 }
 
@@ -339,16 +326,3 @@ parse_non_options (int key, char *arg, struct argp_state *state)
 
 
 const struct argp non_option_argp = {NULL, parse_non_options, 0, 0, 0, 0, 0};
-
-
-const char *
-output_file_name (void)
-{
-  const char *dir = default_output_path ();
-  static char *filename = NULL;
-
-  if ( NULL == filename )
-    filename = xasprintf ("%s%s", dir, OUTPUT_FILE_NAME);
-
-  return filename;
-}