Remove awkward dependency from psppire-selector.c
[pspp-builds.git] / src / ui / gui / psppire.c
index 599d8108ddb7d8b91897eb6f16bf0cf27003ec1b..8491851383f4405805bbf71d0a35d5e172500b29 100644 (file)
 
 #include <config.h>
 
-#include <locale.h>
+#include <libpspp/i18n.h>
 #include <assert.h>
 #include <libintl.h>
 #include <gsl/gsl_errno.h>
 
+#include <xalloc.h>
 #include <argp.h>
 #include <ui/command-line.h>
 #include "relocatable.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,12 +92,7 @@ initialize (struct command_line_processor *clp, int argc, char **argv)
 {
   PsppireDict *dictionary = 0;
 
-  /* gtk_init messes with the locale.
-     So unset the bits we want to control ourselves */
-  setlocale (LC_NUMERIC, "C");
-
-  bindtextdomain (PACKAGE, locale_dir);
-
+  i18n_init ();
 
   preregister_widgets ();
 
@@ -151,6 +149,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);
@@ -171,6 +173,7 @@ de_initialize (void)
   message_dialog_done ();
   settings_done ();
   outp_done ();
+  i18n_done ();
 }
 
 
@@ -297,7 +300,7 @@ parse_non_options (int key, char *arg, struct argp_state *state)
 
        if ( local_is_utf8)
          {
-           utf8 = strdup (arg);
+           utf8 = xstrdup (arg);
          }
        else
          {
@@ -327,7 +330,7 @@ parse_non_options (int key, char *arg, struct argp_state *state)
        g_free (utf8);
 
        if ( filename == NULL)
-         filename = strdup (arg);
+         filename = xstrdup (arg);
 
        psppire_window_load (PSPPIRE_WINDOW (the_data_window), filename);