227 |
{ |
{ |
228 |
if ( attributes.is_editable) |
if ( attributes.is_editable) |
229 |
{ |
{ |
230 |
|
gint r_min, r_max; |
231 |
|
|
232 |
const gint current_value = |
const gint current_value = |
233 |
atoi(gtk_sheet_cell_get_text(sheet, row, column)); |
atoi(gtk_sheet_cell_get_text(sheet, row, column)); |
234 |
|
|
235 |
|
struct variable *var = pspp_dict_get_var(pspp_dictionary, row); |
236 |
|
|
237 |
|
switch (column) |
238 |
|
{ |
239 |
|
case COL_WIDTH: |
240 |
|
r_min = 1; |
241 |
|
r_max = var->type == ALPHA ? 255 : 40; |
242 |
|
break; |
243 |
|
case COL_DECIMALS: |
244 |
|
r_min = 0; |
245 |
|
r_max = 16; |
246 |
|
break; |
247 |
|
case COL_COLUMNS: |
248 |
|
r_min = 1; |
249 |
|
r_max = 255 ; /* Is this a sensible value ? */ |
250 |
|
break; |
251 |
|
default: |
252 |
|
g_assert_not_reached(); |
253 |
|
} |
254 |
|
|
255 |
|
|
256 |
GtkObject *adj = |
GtkObject *adj = |
257 |
gtk_adjustment_new(current_value, |
gtk_adjustment_new(current_value, |
258 |
1.0, 100.0, /* min, max */ |
r_min, r_max, |
259 |
1.0, 1.0, 1.0 /* steps */ |
1.0, 1.0, 1.0 /* steps */ |
260 |
); |
); |
261 |
|
|
541 |
GtkWidget *sheet; |
GtkWidget *sheet; |
542 |
GtkWidget *entry; |
GtkWidget *entry; |
543 |
gint i; |
gint i; |
|
const gint columns = 10; |
|
544 |
const gint rows = 25; |
const gint rows = 25; |
545 |
|
|
546 |
sheet = gtk_sheet_new(rows,columns,"variable sheet"); |
sheet = gtk_sheet_new(rows, n_COLS, "variable sheet"); |
547 |
|
|
548 |
gtk_sheet_range_set_editable (GTK_SHEET(sheet), 0, TRUE); |
gtk_sheet_range_set_editable (GTK_SHEET(sheet), 0, TRUE); |
549 |
|
|
564 |
GTK_SIGNAL_FUNC (update_variable), |
GTK_SIGNAL_FUNC (update_variable), |
565 |
0); |
0); |
566 |
|
|
567 |
for (i = 0 ; i < columns ; ++i ) |
for (i = 0 ; i < n_COLS ; ++i ) |
568 |
{ |
{ |
569 |
gtk_sheet_column_button_add_label(GTK_SHEET(sheet), i, |
gtk_sheet_column_button_add_label(GTK_SHEET(sheet), i, |
570 |
column_def[i].label); |
column_def[i].label); |