gui: Simplify value_to_text() parameters.
[pspp-builds.git] / src / ui / gui / helper.c
index b8936e6c3b091427521a81a209192207b953ccaf..f5803d9f244fe88413a15ff55161b75f45a6bf35 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPPIRE - a graphical user interface for PSPP.
-   Copyright (C) 2007, 2009, 2010  Free Software Foundation
+   Copyright (C) 2007, 2009, 2010, 2011  Free Software Foundation
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -31,7 +31,7 @@
 #include <data/casereader-provider.h>
 #include <libpspp/message.h>
 #include "psppire-syntax-window.h"
-#include <gtk/gtkbuilder.h>
+#include <gtk/gtk.h>
 #include <libpspp/i18n.h>
 
 #include <ctype.h>
 
 #include <gettext.h>
 
-/* Formats a value according to FORMAT
-   The returned string must be freed when no longer required */
+/* Formats a value according to VAR's print format.
+   The returned string must be freed when no longer required. */
 gchar *
-value_to_text (union value v, const PsppireDict *dict, struct fmt_spec format)
+value_to_text (union value v, const struct variable *var)
 {
-  gchar *s = 0;
-
-  s = data_out (&v, dict_get_encoding (dict->dict),  &format);
-  g_strchug (s);
-
-  return s;
+  gchar *s = data_out (&v, var_get_encoding (var), var_get_print_format (var));
+  return g_strchug (s);
 }
 
 
@@ -65,14 +61,12 @@ value_to_text (union value v, const PsppireDict *dict, struct fmt_spec format)
 
    VAL will be initialised and filled by this function.
    It is the caller's responsibility to destroy VAL when no longer needed.
-   VAR and DICT must be the variable and dictionary with which VAL
-   is associated.
+   VAR must be the variable with which VAL is associated.
 
    On success, VAL is returned, NULL otherwise.
 */
 union value *
 text_to_value (const gchar *text,
-              const PsppireDict *dict,
               const struct variable *var,
               union value *val)
 {
@@ -97,10 +91,8 @@ text_to_value (const gchar *text,
     }
 
   value_init (val, width);
-  msg_disable ();
-  data_in (ss_cstr (text), UTF8, format->type, 0, 0, val, width,
-           dict_get_encoding (dict->dict));
-  msg_enable ();
+  free (data_in (ss_cstr (text), UTF8, format->type, val, width,
+                 var_get_encoding (var)));
 
   return val;
 }
@@ -210,9 +202,8 @@ connect_help (GtkBuilder *xml)
       GObject *o = i->data;
       if ( GTK_IS_WIDGET (o) )
        {
-         gchar *name = NULL;
+         const gchar *name = gtk_buildable_get_name (GTK_BUILDABLE (o));
          gchar s[12] = {0};
-         g_object_get (o, "name", &name, NULL);
 
          if ( name)
            strncpy (s, name, 11);
@@ -284,8 +275,8 @@ on_delete (GtkWindow *window, GdkEvent *e, GtkWindow **addr)
   return FALSE;
 }
 
-void
-paste_syntax_to_window (const gchar *syntax)
+char *
+paste_syntax_to_window (gchar *syntax)
 {
   static GtkWidget *the_syntax_pasteboard = NULL;
 
@@ -293,7 +284,7 @@ paste_syntax_to_window (const gchar *syntax)
 
   if ( NULL == the_syntax_pasteboard)
     {
-      the_syntax_pasteboard = psppire_syntax_window_new ();
+      the_syntax_pasteboard = psppire_syntax_window_new (NULL);
       g_signal_connect (the_syntax_pasteboard, "delete-event", G_CALLBACK (on_delete),
                        &the_syntax_pasteboard);
     }
@@ -306,6 +297,8 @@ paste_syntax_to_window (const gchar *syntax)
   gtk_text_buffer_end_user_action (buffer);
 
   gtk_widget_show (the_syntax_pasteboard);
+
+  return syntax;
 }