separate sack integration test binary
[pspp] / src / ui / gui / options-dialog.c
index 45f69f5226d1f61d3410a2fae4092d6f79ffdad2..1890f069f4481dd869fa4b0bdc745cf25b81d62a 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPPIRE - a graphical user interface for PSPP.
-   Copyright (C) 2017 Free Software Foundation
+   Copyright (C) 2017, 2021 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
@@ -41,6 +41,12 @@ struct options_dialog
   GtkWidget *sort_names;
   GtkWidget *sort_labels;
   GtkWidget *sort_none;
+
+  GtkWidget *maximize;
+  GtkWidget *alert;
+  GtkWidget *raise;
+
+  GtkWidget *show_tips;
 };
 
 GType
@@ -71,11 +77,14 @@ options_dialog (PsppireDataWindow *de)
   GtkWidget *dialog ;
 
   gboolean disp_labels = true;
+  gboolean show_tips = true;
 
   fd.xml = builder_new ("options.ui");
 
   dialog = get_widget_assert (fd.xml, "options-dialog");
 
+  fd.show_tips = get_widget_assert (fd.xml, "checkbutton-show-tips");
+
   fd.show_labels = get_widget_assert (fd.xml, "radiobutton-labels");
   fd.show_names  = get_widget_assert (fd.xml, "radiobutton-names");
 
@@ -83,8 +92,11 @@ options_dialog (PsppireDataWindow *de)
   fd.sort_names  = get_widget_assert (fd.xml, "radiobutton-sort-by-name");
   fd.sort_none   = get_widget_assert (fd.xml, "radiobutton-unsorted");
 
-  gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de));
+  fd.maximize = get_widget_assert (fd.xml, "checkbutton-maximize");
+  fd.alert    = get_widget_assert (fd.xml, "checkbutton-alert");
+  fd.raise    = get_widget_assert (fd.xml, "checkbutton-raise");
 
+  gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de));
 
   fd.conf = psppire_conf_new ();
 
@@ -98,6 +110,13 @@ options_dialog (PsppireDataWindow *de)
                                    !disp_labels);
     }
 
+  if (psppire_conf_get_boolean (fd.conf,
+                               "startup", "show-user-tips", &show_tips))
+    {
+      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fd.show_tips),
+                                   show_tips);
+    }
+
 
   int what = -1;
   psppire_conf_get_enum (fd.conf, "VariableLists", "sort-order",
@@ -116,6 +135,26 @@ options_dialog (PsppireDataWindow *de)
       break;
     }
 
+  {
+    gboolean status;
+    if (psppire_conf_get_boolean (fd.conf, "OutputWindowAction", "maximize",
+                                 &status))
+      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fd.maximize), status);
+  }
+
+  {
+    gboolean status = true;
+    psppire_conf_get_boolean (fd.conf, "OutputWindowAction", "alert", &status);
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fd.alert), status);
+  }
+
+  {
+    gboolean status;
+    if (psppire_conf_get_boolean (fd.conf, "OutputWindowAction", "raise",
+                                 &status))
+      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fd.raise), status);
+  }
+
   const int result = psppire_dialog_run (PSPPIRE_DIALOG (dialog));
 
   if (result == GTK_RESPONSE_OK)
@@ -138,11 +177,27 @@ options_dialog (PsppireDataWindow *de)
        {
          sort_order = PSPP_OPTIONS_VAR_ORDER_UNSORTED;
        }
-       
+
       psppire_conf_set_enum (fd.conf,
                             "VariableLists", "sort-order",
                             PSPP_TYPE_OPTIONS_VAR_ORDER,
                             sort_order);
+
+      psppire_conf_set_boolean (fd.conf, "OutputWindowAction", "maximize",
+                               gtk_toggle_button_get_active
+                               (GTK_TOGGLE_BUTTON (fd.maximize)));
+
+      psppire_conf_set_boolean (fd.conf, "OutputWindowAction", "raise",
+                               gtk_toggle_button_get_active
+                               (GTK_TOGGLE_BUTTON (fd.raise)));
+
+      psppire_conf_set_boolean (fd.conf, "OutputWindowAction", "alert",
+                               gtk_toggle_button_get_active
+                               (GTK_TOGGLE_BUTTON (fd.alert)));
+
+      psppire_conf_set_boolean (fd.conf, "startup", "show-user-tips",
+                               gtk_toggle_button_get_active
+                               (GTK_TOGGLE_BUTTON (fd.show_tips)));
     }
 
   g_object_unref (fd.xml);