Canonicalized on American orthography in source files.
[pspp-builds.git] / src / ui / gui / var-sheet.c
index 7d5b4465676686cd2f690816ad2a9f79c655fc0b..9e73cce6220a8cc358e9e7f255de35fb7f4b62e7 100644 (file)
@@ -1,10 +1,9 @@
-/*
-   PSPPIRE --- A Graphical User Interface for PSPP
-   Copyright (C) 2004, 2005, 2006  Free Software Foundation
+/* PSPPIRE - a graphical user interface for PSPP.
+   Copyright (C) 2004, 2005, 2006, 2007  Free Software Foundation
 
-   This program is free software; you can redistribute it and/or modify
+   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
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -13,9 +12,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-   02110-1301, USA. */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>. */
 
 
 /* This module creates the Variable Sheet used for inputing the
@@ -41,6 +38,7 @@
 #include <gtksheet/gsheet-uniform-row.h>
 
 #include "localcharset.h"
+#include "xalloc.h"
 #include "psppire-var-store.h"
 #include "helper.h"
 #include "psppire-dict.h"
@@ -81,7 +79,7 @@ static const struct column_parameters column_def[] = {
 const gchar *const alignments[n_ALIGNMENTS + 1]={
   N_("Left"),
   N_("Right"),
-  N_("Centre"),
+  N_("Center"),
   0
 };
 
@@ -209,7 +207,7 @@ var_sheet_cell_entry_enter (GtkSheet * sheet, gint row, gint column,
 {
   GtkSheetCellAttr attributes;
   PsppireVarStore *var_store ;
-  struct variable *pv ;
+  struct variable *var ;
 
   GladeXML *xml;
 
@@ -226,13 +224,13 @@ var_sheet_cell_entry_enter (GtkSheet * sheet, gint row, gint column,
 
   gtk_sheet_get_attributes (sheet, row, column, &attributes);
 
-  pv = psppire_var_store_get_var (var_store, row);
+  var = psppire_var_store_get_var (var_store, row);
 
   switch (column)
     {
     case COL_ALIGN:
       {
-       static GtkListStore *list_store = 0;
+       static GtkListStore *list_store = NULL;
        GtkComboBoxEntry *cbe;
        gtk_sheet_change_entry (sheet, GTK_TYPE_COMBO_BOX_ENTRY);
        cbe =
@@ -248,9 +246,10 @@ var_sheet_cell_entry_enter (GtkSheet * sheet, gint row, gint column,
 
 
        g_signal_connect (G_OBJECT (cbe),"changed",
-                        G_CALLBACK (change_alignment), pv);
+                        G_CALLBACK (change_alignment), var);
       }
       break;
+
     case COL_MEASURE:
       {
        static GtkListStore *list_store = 0;
@@ -268,13 +267,13 @@ var_sheet_cell_entry_enter (GtkSheet * sheet, gint row, gint column,
        gtk_combo_box_entry_set_text_column (cbe, 0);
 
        g_signal_connect (G_OBJECT (cbe),"changed",
-                         G_CALLBACK (change_measure), pv);
+                         G_CALLBACK (change_measure), var);
       }
       break;
 
     case COL_VALUES:
       {
-       static struct val_labs_dialog *val_labs_dialog = 0;
+       static struct val_labs_dialog *val_labs_dialog = NULL;
 
        PsppireCustomEntry *customEntry;
 
@@ -283,11 +282,15 @@ var_sheet_cell_entry_enter (GtkSheet * sheet, gint row, gint column,
        customEntry =
          PSPPIRE_CUSTOM_ENTRY (gtk_sheet_get_entry (sheet));
 
+       if ( var_is_long_string (var))
+         g_object_set (customEntry,
+                       "editable", FALSE,
+                       NULL);
 
        if (!val_labs_dialog )
            val_labs_dialog = val_labs_dialog_create (xml);
 
-       val_labs_dialog_set_target_variable (val_labs_dialog, pv);
+       val_labs_dialog_set_target_variable (val_labs_dialog, var);
 
        g_signal_connect_swapped (GTK_OBJECT (customEntry),
                                 "clicked",
@@ -295,6 +298,7 @@ var_sheet_cell_entry_enter (GtkSheet * sheet, gint row, gint column,
                                 val_labs_dialog);
       }
       break;
+
     case COL_MISSING:
       {
        static struct missing_val_dialog *missing_val_dialog = 0;
@@ -305,6 +309,11 @@ var_sheet_cell_entry_enter (GtkSheet * sheet, gint row, gint column,
        customEntry =
          PSPPIRE_CUSTOM_ENTRY (gtk_sheet_get_entry (sheet));
 
+       if ( var_is_long_string (var))
+         g_object_set (customEntry,
+                       "editable", FALSE,
+                       NULL);
+
        if (!missing_val_dialog )
            missing_val_dialog = missing_val_dialog_create (xml);
 
@@ -334,7 +343,7 @@ var_sheet_cell_entry_enter (GtkSheet * sheet, gint row, gint column,
            var_type_dialog = var_type_dialog_create (xml);
 
 
-       var_type_dialog->pv = pv;
+       var_type_dialog->pv = var;
 
        g_signal_connect_swapped (GTK_OBJECT (customEntry),
                                 "clicked",
@@ -342,6 +351,7 @@ var_sheet_cell_entry_enter (GtkSheet * sheet, gint row, gint column,
                                 var_type_dialog);
       }
       break;
+
     case COL_WIDTH:
     case COL_DECIMALS:
     case COL_COLUMNS:
@@ -358,7 +368,7 @@ var_sheet_cell_entry_enter (GtkSheet * sheet, gint row, gint column,
                const gint current_value  = atoi (s);
                GtkObject *adj ;
 
-               const struct fmt_spec *fmt = var_get_write_format (pv);
+               const struct fmt_spec *fmt = var_get_write_format (var);
                switch (column)
                  {
                  case COL_WIDTH:
@@ -446,7 +456,7 @@ psppire_variable_sheet_create (gchar *widget_name,
 
   /* Since this happens inside glade_xml_new, we must prevent strings from
    * being re-encoded twice */
-  codeset = bind_textdomain_codeset (PACKAGE, 0);
+  codeset = xstrdup (bind_textdomain_codeset (PACKAGE, 0));
   bind_textdomain_codeset (PACKAGE, locale_charset ());
 
   for (i = 0 ; i < n_COLS ; ++i )
@@ -459,6 +469,7 @@ psppire_variable_sheet_create (gchar *widget_name,
     }
 
   bind_textdomain_codeset (PACKAGE, codeset);
+  free (codeset);
 
   gtk_widget_show (sheet);