/*
PSPPIRE --- A Graphical User Interface for PSPP
Copyright (C) 2004, 2005, 2006 Free Software Foundation
- Written by John Darrington
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
#include "helper.h"
#include "menu-actions.h"
#include "psppire-dict.h"
-#include "psppire-variable.h"
#include "var-type-dialog.h"
#include "var-sheet.h"
#include "customentry.h"
change_alignment(GtkComboBox *cb,
gpointer user_data)
{
- struct PsppireVariable *pv = user_data;
+ struct variable *pv = user_data;
gint active_item = gtk_combo_box_get_active(cb);
if ( active_item < 0 ) return ;
- psppire_variable_set_alignment(pv, active_item);
+ var_set_alignment (pv, active_item);
}
/* Callback for when the measure combo box
item is selected */
-static void
+static void
change_measure(GtkComboBox *cb,
gpointer user_data)
{
- struct PsppireVariable *pv = user_data;
+ struct variable *pv = user_data;
gint active_item = gtk_combo_box_get_active(cb);
if ( active_item < 0 ) return ;
- psppire_variable_set_measure(pv, active_item);
+ var_set_measure (pv, active_item);
}
}
/* If the destination cell is outside the current variables, then
- accept the destination only as the name column of the first blank row
+ automatically create variables for the new rows.
*/
- if ( *new_row > n_vars)
- return FALSE;
-
- if ( *new_row >= n_vars && *new_column != COL_NAME)
- return FALSE;
+ if ( (*new_row > n_vars) ||
+ (*new_row == n_vars && *new_column != COL_NAME) )
+ {
+ gint i;
+ for ( i = n_vars ; i <= *new_row; ++i )
+ psppire_dict_insert_variable(var_store->dict, i, NULL);
+ }
return TRUE;
}
{
GtkSheetCellAttr attributes;
PsppireVarStore *var_store ;
- struct PsppireVariable *pv ;
+ struct variable *pv ;
g_return_val_if_fail(sheet != NULL, FALSE);
gtk_sheet_get_attributes(sheet, row, column, &attributes);
- pv = psppire_var_store_get_variable(var_store, row);
+ pv = psppire_var_store_get_var (var_store, row);
switch (column)
{
GTK_COMBO_BOX_ENTRY(gtk_sheet_get_entry(sheet)->parent);
- if ( ! list_store) list_store = create_label_list(measures);
+ if ( ! list_store) list_store = create_label_list (measures);
gtk_combo_box_set_model(GTK_COMBO_BOX(cbe),
GTK_TREE_MODEL(list_store));
gtk_combo_box_entry_set_text_column (cbe, 0);
- g_signal_connect(G_OBJECT(cbe),"changed",
- G_CALLBACK(change_measure), pv);
+ g_signal_connect (G_OBJECT(cbe),"changed",
+ G_CALLBACK (change_measure), pv);
}
break;
if (!missing_val_dialog )
missing_val_dialog = missing_val_dialog_create(xml);
- missing_val_dialog->pv = psppire_var_store_get_variable(var_store, row);
+ missing_val_dialog->pv = psppire_var_store_get_var (var_store, row);
g_signal_connect_swapped(GTK_OBJECT(customEntry),
"clicked",
const gint current_value = atoi(s);
GtkObject *adj ;
- const struct fmt_spec *fmt = psppire_variable_get_write_spec(pv);
+ const struct fmt_spec *fmt = var_get_write_format (pv);
switch (column)
{
case COL_WIDTH:
- r_min = fmt->d + 1;
- r_max = (psppire_variable_get_type(pv) == ALPHA) ? MAX_STRING : 40;
+ r_min = MAX (fmt->d + 1, fmt_min_output_width (fmt->type));
+ r_max = fmt_max_output_width (fmt->type);
break;
case COL_DECIMALS:
r_min = 0 ;
- r_max = MIN(fmt->w - 1, 16);
+ r_max = fmt_max_output_decimals (fmt->type, fmt->w);
break;
case COL_COLUMNS:
r_min = 1;