static gboolean
-traverse_callback (GtkSheet * sheet,
+traverse_callback (GtkSheet *sheet,
gint row, gint col,
gint *new_row, gint *new_column
)
{
- gint case_count;
- gint n_vars;
+ gint n_vars, n_cases;
+ GtkWidget *entry = gtk_sheet_get_entry (sheet);
PsppireDataStore *data_store =
PSPPIRE_DATA_STORE (gtk_sheet_get_model (sheet));
-
g_assert (data_store);
n_vars = psppire_dict_get_var_cnt (data_store->dict);
- if ( *new_column >= n_vars )
- return FALSE;
-
- case_count = psppire_case_file_get_case_count (data_store->case_file);
+ n_cases = psppire_data_store_get_case_count (data_store);
- if ( *new_row >= case_count )
- {
- gint i;
+ g_object_set (entry, "editable", (*new_row < n_cases + 1), NULL);
- for ( i = case_count ; i <= *new_row; ++i )
- psppire_data_store_insert_new_case (data_store, i);
-
- return TRUE;
- }
+ if ( *new_column >= n_vars )
+ return FALSE;
return TRUE;
}
{
GtkWidget *sheet;
- sheet = gtk_sheet_new (G_SHEET_ROW (the_data_store),
- G_SHEET_COLUMN (the_data_store), "data sheet", 0);
+ sheet = gtk_sheet_new (G_SHEET_ROW (the_data_store), G_SHEET_COLUMN (the_data_store), NULL);
the_data_store->width_of_m = calc_m_width (sheet, the_data_store->font_desc);
gtk_sheet_set_model (GTK_SHEET (sheet), G_SHEET_MODEL (the_data_store));
- gtk_sheet_set_autoscroll (GTK_SHEET (sheet), FALSE);
+ gtk_sheet_set_autoscroll (GTK_SHEET (sheet), TRUE);
gtk_widget_show (sheet);