X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fvar-sheet.c;h=9e73cce6220a8cc358e9e7f255de35fb7f4b62e7;hb=0bd0098aec2ee31d9460c8d4c1263d0b5ccc4324;hp=7936144951e15070fb0e1dd828ea20df53399cd0;hpb=efad80c9e538d0be3cfd766fd2db20e958b684da;p=pspp-builds.git diff --git a/src/ui/gui/var-sheet.c b/src/ui/gui/var-sheet.c index 79361449..9e73cce6 100644 --- a/src/ui/gui/var-sheet.c +++ b/src/ui/gui/var-sheet.c @@ -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 . */ /* This module creates the Variable Sheet used for inputing the @@ -41,6 +38,7 @@ #include #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; @@ -222,17 +220,17 @@ var_sheet_cell_entry_enter (GtkSheet * sheet, gint row, gint column, if ( row >= psppire_var_store_get_var_cnt (var_store)) return TRUE; - xml = glade_xml_new (PKGDATADIR "/data-editor.glade", NULL, NULL); + xml = XML_NEW ("data-editor.glade"); 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);