gui: Make AGGREGATE dialog initially show all of the right pane.
[pspp-builds.git] / src / ui / gui / aggregate-dialog.c
index a8d1d20e51ccde9faa5055100820c7b5be76f97d..207bbd4d8d884826e08464a73d6524504aaeb0b3 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPPIRE - a graphical user interface for PSPP.
-   Copyright (C) 2010  Free Software Foundation
+   Copyright (C) 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
@@ -17,7 +17,6 @@
 #include <config.h>
 
 #include "dialog-common.h"
-#include <language/syntax-string-source.h>
 
 #include <language/stats/aggregate.h>
 
@@ -85,6 +84,8 @@ struct aggregate
 
   GtkWidget *sorted_button;
   GtkWidget *needs_sort_button;
+
+  GtkWidget *pane;
 };
 
 
@@ -120,9 +121,10 @@ refresh (struct aggregate *agg)
   gtk_entry_set_text (GTK_ENTRY (agg->summary_arg1_entry), "");
   gtk_entry_set_text (GTK_ENTRY (agg->summary_arg2_entry), "");
   gtk_entry_set_text (GTK_ENTRY (agg->summary_var_label_entry), "");
-  gtk_entry_set_text (GTK_ENTRY (agg->summary_var_name_entry), "");
+  gtk_entry_set_text (GTK_ENTRY (agg->summary_var_name_entry), "N_BREAK");
+  gtk_editable_select_region (GTK_EDITABLE (agg->summary_var_name_entry), 0, -1);
 
-  gtk_combo_box_set_active (GTK_COMBO_BOX (agg->function_combo), -1);
+  gtk_combo_box_set_active (GTK_COMBO_BOX (agg->function_combo), N);
 
   gtk_list_store_clear (PSPPIRE_ACR (agg->summary_acr)->list_store);
 
@@ -211,7 +213,7 @@ populate_combo_model (GtkComboBox *cb)
 
       gtk_list_store_append (list, &iter);
       gtk_list_store_set (list, &iter,
-                          COMBO_MODEL_COL_DESC, s,
+                          COMBO_MODEL_COL_DESC, gettext (s),
                          COMBO_MODEL_COL_SYNTAX, af->name,
                          COMBO_MODEL_COL_SRC_VARS, af->src_vars,
                          COMBO_MODEL_COL_ARITY, af->n_args,
@@ -445,6 +447,20 @@ on_acr_change (const struct aggregate *agg, GtkTreeView *tv)
 }
 
 
+/* Set the pane to 50% of its maximum size */
+static void
+set_initial_pos (GtkPaned *pane)
+{
+  int max_pos;
+  g_object_get (pane, 
+               "max-position", &max_pos,
+               NULL);
+
+  gtk_paned_set_position (pane, max_pos);
+}
+
+
+
 /* Pops up the Aggregate dialog box */
 void
 aggregate_dialog (PsppireDataWindow *dw)
@@ -467,6 +483,8 @@ aggregate_dialog (PsppireDataWindow *dw)
   source = get_widget_assert   (fd.xml, "dict-view");
   break_selector = get_widget_assert   (fd.xml, "break-selector");
 
+  fd.pane = get_widget_assert (fd.xml, "hbox1");
+  
   fd.break_variables = get_widget_assert (fd.xml, "psppire-var-view1");
   fd.filename_radiobutton = get_widget_assert (fd.xml, "filename-radiobutton");
   fd.filename_button = get_widget_assert (fd.xml, "filename-button");
@@ -535,6 +553,10 @@ aggregate_dialog (PsppireDataWindow *dw)
   g_signal_connect_swapped (fd.summary_arg1_entry, "changed", G_CALLBACK (update_acr),  &fd);  
   g_signal_connect_swapped (fd.summary_arg2_entry, "changed", G_CALLBACK (update_acr),  &fd);  
 
+
+  g_signal_connect (fd.pane, "realize", G_CALLBACK (set_initial_pos),  &fd);  
+
+
   g_signal_connect_swapped (fd.function_combo, "changed",
                            G_CALLBACK (update_arguments),  &fd);
 
@@ -568,22 +590,10 @@ aggregate_dialog (PsppireDataWindow *dw)
   switch (response)
     {
     case GTK_RESPONSE_OK:
-      {
-       gchar *syntax = generate_syntax (&fd);
-
-       struct getl_interface *sss = create_syntax_string_source (syntax);
-       execute_syntax (sss);
-
-       g_free (syntax);
-      }
+      g_free (execute_syntax_string (dw, generate_syntax (&fd)));
       break;
     case PSPPIRE_RESPONSE_PASTE:
-      {
-       gchar *syntax = generate_syntax (&fd);
-        paste_syntax_to_window (syntax);
-
-       g_free (syntax);
-      }
+      g_free (paste_syntax_to_window (generate_syntax (&fd)));
       break;
     default:
       break;