Frequencies Piecharts (gui): Emit 'NOMISSING' when appropriate.
[pspp] / src / ui / gui / psppire-output-window.c
index ba2dc8410d6aecc5f3bd439579634acfaeda6992..9ebc51d19640473648c1750d621939b2a4927f63 100644 (file)
@@ -38,6 +38,7 @@
 #include "ui/gui/help-menu.h"
 #include "ui/gui/builder-wrapper.h"
 #include "ui/gui/psppire-output-view.h"
+#include "ui/gui/psppire-conf.h"
 #include "ui/gui/windows-menu.h"
 
 #include "gl/xalloc.h"
@@ -94,7 +95,7 @@ psppire_output_window_dispose (GObject *obj)
 {
   PsppireOutputWindow *window = PSPPIRE_OUTPUT_WINDOW (obj);
 
-  if (window->dispose_has_run) 
+  if (window->dispose_has_run)
     return;
 
   window->dispose_has_run = TRUE;
@@ -112,7 +113,7 @@ psppire_output_window_class_init (PsppireOutputWindowClass *class)
 
   parent_class = g_type_class_peek_parent (class);
   object_class->dispose = psppire_output_window_dispose;
-  
+
   object_class->finalize = psppire_output_window_finalize;
 }
 \f
@@ -164,7 +165,27 @@ psppire_output_submit (struct output_driver *this,
       gtk_widget_show_all (GTK_WIDGET (pod->window));
     }
 
-  gtk_window_set_urgency_hint (GTK_WINDOW (pod->window), TRUE);
+  PsppireConf *conf = psppire_conf_new ();
+  {
+    gboolean status = true;
+    psppire_conf_get_boolean (conf, "OutputWindowAction", "alert",
+                             &status);
+    gtk_window_set_urgency_hint (GTK_WINDOW (pod->window), status);
+  }
+
+  {
+    gboolean status ;
+    if (psppire_conf_get_boolean (conf, "OutputWindowAction", "maximize",
+                                 &status) && status)
+      gtk_window_maximize (GTK_WINDOW (pod->window));
+  }
+
+  {
+    gboolean status ;
+    if (psppire_conf_get_boolean (conf, "OutputWindowAction", "raise",
+                                 &status) && status)
+      gtk_window_present (GTK_WINDOW (pod->window));
+  }
 }
 
 static struct output_driver_class psppire_output_class =
@@ -230,7 +251,7 @@ struct file_types
   const gchar *ext;
 };
 
-enum 
+enum
   {
     FT_AUTO = 0,
     FT_PDF,
@@ -263,7 +284,7 @@ on_combo_change (GtkFileChooser *chooser)
   gboolean sensitive = FALSE;
   GtkWidget *combo = gtk_file_chooser_get_extra_widget (chooser);
 
-  int x = 0; 
+  int x = 0;
   gchar *fn = gtk_file_chooser_get_filename (chooser);
 
   if (combo &&  gtk_widget_get_realized (combo))
@@ -332,7 +353,7 @@ create_file_type_list (void)
   int i;
   GtkTreeIter iter;
   GtkListStore *list = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING);
-  
+
   for (i = 0 ; i < n_FT ; ++i)
     {
       gtk_list_store_append (list, &iter);
@@ -341,7 +362,7 @@ create_file_type_list (void)
                          1,  ft[i].ext,
                          -1);
     }
-  
+
   return list;
 }
 
@@ -353,7 +374,7 @@ psppire_output_window_export (PsppireOutputWindow *window)
   GtkListStore *list;
 
   GtkFileChooser *chooser;
-  
+
   GtkWidget *dialog = gtk_file_chooser_dialog_new (_("Export Output"),
                                         GTK_WINDOW (window),
                                         GTK_FILE_CHOOSER_ACTION_SAVE,
@@ -427,7 +448,7 @@ psppire_output_window_export (PsppireOutputWindow *window)
           filename = g_strconcat (filename, ft[file_type].ext, NULL);
           g_free (of);
         }
-      
+
       string_map_init (&options);
       string_map_insert (&options, "output-file", filename);
 
@@ -484,7 +505,7 @@ psppire_output_window_init (PsppireOutputWindow *window)
   gtk_container_add (GTK_CONTAINER (window), box);
 
   GtkWidget *paned = get_widget_assert (xml, "paned1");
-  
+
   window->dispose_has_run = FALSE;
 
   window->view = psppire_output_view_new (
@@ -506,7 +527,7 @@ psppire_output_window_init (PsppireOutputWindow *window)
 
   gtk_menu_shell_append (GTK_MENU_SHELL (menubar),
                         create_windows_menu (GTK_WINDOW (window)));
-    
+
   gtk_menu_shell_append (GTK_MENU_SHELL (menubar),
                         create_help_menu (GTK_WINDOW (window)));
 
@@ -522,7 +543,7 @@ psppire_output_window_init (PsppireOutputWindow *window)
                                           accels);
   }
 
-  
+
   {
     GSimpleAction *export = g_simple_action_new ("export", NULL);
     g_signal_connect_swapped (export, "activate", G_CALLBACK (psppire_output_window_export), window);
@@ -544,7 +565,7 @@ psppire_output_window_init (PsppireOutputWindow *window)
                                           accels);
   }
 
-  
+
   g_object_unref (xml);
 
   g_signal_connect (window, "delete-event",