200 |
} |
} |
201 |
|
|
202 |
|
|
203 |
/* Callback whenever the cell on the var sheet is entered */ |
/* Callback whenever the cell on the var sheet is entered or left. |
204 |
|
It sets the entry box type appropriately. |
205 |
|
*/ |
206 |
static gboolean |
static gboolean |
207 |
var_sheet_cell_change_entry (GtkSheet * sheet, gint row, gint column) |
var_sheet_cell_change_entry (GtkSheet * sheet, gint row, gint column, |
208 |
|
gpointer leaving) |
209 |
{ |
{ |
210 |
|
if ( leaving ) |
211 |
|
{ |
212 |
|
gtk_sheet_change_entry(sheet, GTK_TYPE_ENTRY); |
213 |
|
return TRUE; |
214 |
|
} |
215 |
|
|
216 |
GtkSheetCellAttr attributes; |
GtkSheetCellAttr attributes; |
217 |
gtk_sheet_get_attributes(sheet, row, column, &attributes); |
gtk_sheet_get_attributes(sheet, row, column, &attributes); |
225 |
{ |
{ |
226 |
if ( attributes.is_editable) |
if ( attributes.is_editable) |
227 |
{ |
{ |
228 |
|
const gint current_value = |
229 |
|
atoi(gtk_sheet_cell_get_text(sheet, row, column)); |
230 |
GtkAdjustment *adj = |
GtkAdjustment *adj = |
231 |
gtk_adjustment_new(0.0, /* initial */ |
gtk_adjustment_new(current_value, |
232 |
1.0, 100.0, /* min, max */ |
1.0, 100.0, /* min, max */ |
233 |
1.0, 1.0, 1.0 /* steps */ |
1.0, 1.0, 1.0 /* steps */ |
234 |
); |
); |
242 |
gtk_spin_button_set_digits(spinButton, 0); |
gtk_spin_button_set_digits(spinButton, 0); |
243 |
} |
} |
244 |
} |
} |
245 |
break; |
break; |
246 |
default: |
default: |
247 |
gtk_sheet_change_entry(sheet, GTK_TYPE_ENTRY); |
gtk_sheet_change_entry(sheet, GTK_TYPE_ENTRY); |
248 |
break; |
break; |
493 |
|
|
494 |
GtkSheet *sheet = GTK_SHEET(data); |
GtkSheet *sheet = GTK_SHEET(data); |
495 |
|
|
496 |
repopulate_rows(sheet, dict, idx, |
gtk_sheet_delete_rows(sheet, idx, 1); |
|
gtk_sheet_get_rows_count(sheet) - 1); |
|
497 |
|
|
498 |
last_populated_row--; |
last_populated_row--; |
499 |
|
|
527 |
GTK_SIGNAL_FUNC (var_sheet_cell_change_entry), |
GTK_SIGNAL_FUNC (var_sheet_cell_change_entry), |
528 |
0); |
0); |
529 |
|
|
530 |
|
g_signal_connect (GTK_OBJECT (sheet), "deactivate", |
531 |
|
GTK_SIGNAL_FUNC (var_sheet_cell_change_entry), |
532 |
|
1); |
533 |
|
|
534 |
|
|
535 |
|
|
536 |
g_signal_connect (GTK_OBJECT (sheet), "set_cell", |
g_signal_connect (GTK_OBJECT (sheet), "set_cell", |
537 |
GTK_SIGNAL_FUNC (update_variable), |
GTK_SIGNAL_FUNC (update_variable), |
585 |
case COL_NAME: |
case COL_NAME: |
586 |
{ |
{ |
587 |
const gchar *name = gtk_sheet_cell_get_text(sheet, row, col); |
const gchar *name = gtk_sheet_cell_get_text(sheet, row, col); |
|
|
|
588 |
if ( old_var && (0 == strcmp(old_var->name, name))) |
if ( old_var && (0 == strcmp(old_var->name, name))) |
589 |
return FALSE; |
return FALSE; |
590 |
|
|
601 |
&& |
&& |
602 |
/* Allow changes of case */ |
/* Allow changes of case */ |
603 |
( !old_var || |
( !old_var || |
604 |
0 != strncasecmp(old_var->name, name)) |
0 != strcasecmp(old_var->name, name)) |
605 |
) |
) |
606 |
{ |
{ |
607 |
g_print("Duplicate variable name\n"); |
g_print("Duplicate variable name\n"); |