data-in: Get rid of first_column, last_column arguments.
[pspp] / src / ui / gui / helper.c
index e25342ed0dc2a472a54db9c256bc3fa48642fed6..1ad77bc96ebf0190a633ca02b70179970980e3fb 100644 (file)
@@ -40,6 +40,7 @@
 #include <data/settings.h>
 
 #include "psppire-data-store.h"
+#include "psppire.h"
 
 #include "gl/configmake.h"
 #include "xalloc.h"
@@ -96,11 +97,8 @@ text_to_value (const gchar *text,
     }
 
   value_init (val, width);
-  msg_disable ();
-  data_in (ss_cstr (text), UTF8, format->type, 0, 0, 0,
-               dict->dict,
-                val, width);
-  msg_enable ();
+  free (data_in (ss_cstr (text), UTF8, format->type, val, width,
+                 dict_get_encoding (dict->dict)));
 
   return val;
 }
@@ -131,10 +129,10 @@ get_object_assert (GtkBuilder *builder, const gchar *name, GType type)
   o = gtk_builder_get_object (builder, name);
 
   if ( !o )
-    g_critical ("Object \"%s\" could not be found\n", name);
+    g_critical ("Object `%s' could not be found\n", name);
   else if ( ! g_type_is_a (G_OBJECT_TYPE (o), type))
    {
-     g_critical ("Object \"%s\" was expected to have type %s, but in fact has type %s", 
+     g_critical ("Object `%s' was expected to have type %s, but in fact has type %s", 
        name, g_type_name (type), G_OBJECT_TYPE_NAME (o));
    }
 
@@ -274,14 +272,38 @@ clone_list_store (const GtkListStore *src)
 }
 
 
+
+
+static gboolean 
+on_delete (GtkWindow *window, GdkEvent *e, GtkWindow **addr)
+{
+  *addr = NULL;
+
+  return FALSE;
+}
+
 void
-paste_syntax_in_new_window (const gchar *syntax)
+paste_syntax_to_window (const gchar *syntax)
 {
-  GtkWidget *se = psppire_syntax_window_new ();
+  static GtkWidget *the_syntax_pasteboard = NULL;
+
+  GtkTextBuffer *buffer = NULL;
+
+  if ( NULL == the_syntax_pasteboard)
+    {
+      the_syntax_pasteboard = psppire_syntax_window_new ();
+      g_signal_connect (the_syntax_pasteboard, "delete-event", G_CALLBACK (on_delete),
+                       &the_syntax_pasteboard);
+    }
+
+  buffer = GTK_TEXT_BUFFER (PSPPIRE_SYNTAX_WINDOW (the_syntax_pasteboard)->buffer);
 
-  gtk_text_buffer_insert_at_cursor (PSPPIRE_SYNTAX_WINDOW (se)->buffer, syntax, -1);
+  gtk_text_buffer_begin_user_action (buffer);
+  gtk_text_buffer_insert_at_cursor (buffer, syntax, -1);
+  gtk_text_buffer_insert_at_cursor (buffer, "\n", 1);
+  gtk_text_buffer_end_user_action (buffer);
 
-  gtk_widget_show (se);
+  gtk_widget_show (the_syntax_pasteboard);
 }