35 |
#define N_(A) A |
#define N_(A) A |
36 |
|
|
37 |
|
|
38 |
extern PSPP_Dict *pspp_dictionary; |
static struct G_Object *pspp_dictionary; |
39 |
extern GtkWindow *window1; |
extern GtkWindow *window1; |
40 |
|
|
41 |
|
|
97 |
n_COLS}; |
n_COLS}; |
98 |
|
|
99 |
|
|
100 |
#if 1 |
|
101 |
static gint exit_column = -1; |
static gint exit_column = -1; |
102 |
|
|
103 |
|
|
129 |
} |
} |
130 |
|
|
131 |
|
|
|
#endif |
|
|
|
|
132 |
void |
void |
133 |
psppire_construct_entry(GtkSheet *sheet) |
psppire_construct_entry(GtkSheet *sheet) |
134 |
{ |
{ |
219 |
|
|
220 |
/* Makes a row non editable */ |
/* Makes a row non editable */ |
221 |
void |
void |
222 |
var_sheet_row_close(GtkSheet *sheet,gint row) |
var_sheet_row_close(GtkSheet *sheet, gint row) |
223 |
{ |
{ |
224 |
GtkSheetRange range; |
GtkSheetRange range; |
225 |
const gint columns = gtk_sheet_get_columns_count(sheet); |
const gint columns = gtk_sheet_get_columns_count(sheet); |
242 |
} |
} |
243 |
|
|
244 |
|
|
245 |
|
/* Closes the entire sheet, ready for new input */ |
246 |
|
void |
247 |
|
var_sheet_close_all(GtkSheet *sheet) |
248 |
|
{ |
249 |
|
GtkSheetRange range; |
250 |
|
const gint columns = gtk_sheet_get_columns_count(sheet); |
251 |
|
const gint rows = gtk_sheet_get_rows_count(sheet); |
252 |
|
gint c; |
253 |
|
|
254 |
|
range.row0 = 0 ; range.rowi = rows - 1; |
255 |
|
range.col0 = 0 ; range.coli = columns - 1; |
256 |
|
|
257 |
|
gtk_sheet_range_set_editable (sheet, &range, FALSE); |
258 |
|
|
259 |
|
gtk_sheet_range_set_background (sheet,&range,&colour_disabled); |
260 |
|
|
261 |
|
|
262 |
|
gtk_sheet_range_clear (sheet, NULL); |
263 |
|
|
264 |
|
/* Set row 0 ready for input */ |
265 |
|
var_sheet_set_next_row(sheet, 0); |
266 |
|
|
267 |
|
} |
268 |
|
|
269 |
|
|
270 |
|
|
271 |
|
|
272 |
|
|
273 |
static GString * |
static GString * |
274 |
gint_to_gstring(gint x) |
gint_to_gstring(gint x) |
275 |
{ |
{ |
363 |
GtkWidget *sheet; |
GtkWidget *sheet; |
364 |
GtkWidget *entry; |
GtkWidget *entry; |
365 |
gint i; |
gint i; |
366 |
const gint columns=10; |
const gint columns = 10; |
367 |
const gint rows= 25; |
const gint rows = 25; |
368 |
|
|
369 |
sheet = gtk_sheet_new(rows,columns,"variable sheet"); |
sheet = gtk_sheet_new(rows,columns,"variable sheet"); |
370 |
|
|
379 |
&colour_enabled,FALSE,TRUE); |
&colour_enabled,FALSE,TRUE); |
380 |
|
|
381 |
|
|
|
g_signal_connect(pspp_dictionary, "variable_changed", |
|
|
G_CALLBACK(var_sheet_update_callback), sheet); |
|
|
|
|
|
g_signal_connect(pspp_dictionary, "variable_deleted", |
|
|
G_CALLBACK(remove_variable), sheet); |
|
|
|
|
|
|
|
382 |
g_signal_connect (GTK_OBJECT (sheet), "activate", |
g_signal_connect (GTK_OBJECT (sheet), "activate", |
383 |
GTK_SIGNAL_FUNC (var_sheet_cell_enter), |
GTK_SIGNAL_FUNC (var_sheet_cell_enter), |
384 |
0); |
0); |
420 |
|
|
421 |
struct variable *old_var = pspp_dict_get_var(pspp_dictionary, row); |
struct variable *old_var = pspp_dict_get_var(pspp_dictionary, row); |
422 |
|
|
423 |
switch (col) |
switch (col) |
424 |
{ |
{ |
425 |
case COL_NAME: |
case COL_NAME: |
426 |
{ |
{ |
427 |
const gchar *name = gtk_sheet_cell_get_text(sheet, row, col); |
const gchar *name = gtk_sheet_cell_get_text(sheet, row, col); |
428 |
|
|
429 |
if ( old_var && (0 == strcmp(old_var->name, name))) |
if ( old_var && (0 == strcmp(old_var->name, name))) |
430 |
return FALSE; |
return FALSE; |
431 |
|
|
432 |
if ( ! var_is_valid_name(name, 0 ) ) |
if ( ! var_is_valid_name(name, 0 ) ) |
433 |
{ |
{ |
437 |
else |
else |
438 |
gtk_sheet_cell_clear(sheet, row, col); |
gtk_sheet_cell_clear(sheet, row, col); |
439 |
} |
} |
440 |
else if ( pspp_dict_lookup_var(pspp_dictionary, name)) |
else if ( |
441 |
|
pspp_dict_lookup_var(pspp_dictionary, name) |
442 |
|
&& ( !old_var || |
443 |
|
0 != strncasecmp(old_var->name, name)) |
444 |
|
) |
445 |
{ |
{ |
446 |
g_print("Duplicate variable name\n"); |
g_print("Duplicate variable name\n"); |
447 |
gtk_sheet_set_cell_text(sheet, row, col, old_var->name); |
gtk_sheet_set_cell_text(sheet, row, col, old_var->name); |
485 |
|
|
486 |
return FALSE; |
return FALSE; |
487 |
} |
} |
488 |
|
|
489 |
|
|
490 |
|
|
491 |
|
|
492 |
|
|
493 |
|
/* Associate a dictionary with the var sheet */ |
494 |
|
void |
495 |
|
psppire_var_sheet_set_dictionary(GtkWidget *sheet, PSPP_Dict *d) |
496 |
|
{ |
497 |
|
pspp_dictionary = d; |
498 |
|
|
499 |
|
g_signal_connect(pspp_dictionary, "variable_changed", |
500 |
|
G_CALLBACK(var_sheet_update_callback), sheet); |
501 |
|
|
502 |
|
g_signal_connect(pspp_dictionary, "variable_deleted", |
503 |
|
G_CALLBACK(remove_variable), sheet); |
504 |
|
|
505 |
|
} |
506 |
|
|