Save window contents on closing.
[pspp-builds.git] / src / ui / gui / psppire.c
index 737b965c116b35d5ac7c214ca465d341c00e3463..8a23346ce788667f611a5dede2ac4dd1cfff0b34 100644 (file)
@@ -27,6 +27,7 @@
 
 #include "psppire-data-window.h"
 #include "psppire.h"
+#include "widgets.h"
 
 #include <libpspp/getl.h>
 #include <unistd.h>
@@ -44,7 +45,6 @@
 #include <language/syntax-string-source.h>
 
 #include <gtk/gtk.h>
-#include <glade/glade.h>
 #include "psppire-dict.h"
 #include "psppire-var-store.h"
 #include "psppire-data-store.h"
@@ -52,7 +52,7 @@
 #include "message-dialog.h"
 #include <ui/syntax-gen.h>
 
-
+#include "psppire-window-register.h"
 #include "psppire-output-window.h"
 
 #include <data/sys-file-reader.h>
@@ -95,7 +95,7 @@ initialize (struct command_line_processor *clp, int argc, char **argv)
   bindtextdomain (PACKAGE, locale_dir);
 
 
-  glade_init ();
+  preregister_widgets ();
 
   gsl_set_error_handler_off ();
   fn_init ();
@@ -170,6 +170,24 @@ de_initialize (void)
 }
 
 
+static void
+func (gpointer key, gpointer value, gpointer data)
+{
+  gboolean rv;
+  PsppireWindow *window = PSPPIRE_WINDOW (value);
+
+  g_signal_emit_by_name (window, "delete-event", 0, &rv);
+}
+
+void
+psppire_quit (void)
+{
+  PsppireWindowRegister *reg = psppire_window_register_new ();
+  psppire_window_register_foreach (reg, func, NULL);
+
+  gtk_main_quit ();
+}
+
 
 struct icon_info
 {