- if (de->dispose_has_run)
- return;
-
- g_object_unref (de->data_store);
- g_object_unref (de->var_store);
-
- /* Make sure dispose does not run twice. */
- de->dispose_has_run = TRUE;
-
- /* Chain up to the parent class */
- G_OBJECT_CLASS (parent_class)->dispose (obj);
-}
-
-static void
-psppire_data_editor_finalize (GObject *obj)
-{
- /* Chain up to the parent class */
- G_OBJECT_CLASS (parent_class)->finalize (obj);
-}
-
-
-
-static void popup_variable_menu (GtkSheet *sheet, gint column,
- GdkEventButton *event, gpointer data);
-
-static void popup_cases_menu (GtkSheet *sheet, gint row,
- GdkEventButton *event, gpointer data);
-
-
-
-
-/* Callback which occurs when the data sheet's column title
- is double clicked */
-static gboolean
-on_data_column_clicked (PsppireDataEditor *de, gint col, gpointer data)
-{
- GtkSheetRange visible_range;
- gint current_row, current_column;
-
- gtk_notebook_set_current_page (GTK_NOTEBOOK (de),
- PSPPIRE_DATA_EDITOR_VARIABLE_VIEW);
-
- gtk_sheet_get_active_cell (GTK_SHEET (de->var_sheet),
- ¤t_row, ¤t_column);
-
- gtk_sheet_set_active_cell (GTK_SHEET (de->var_sheet), col, current_column);
-
-
- gtk_sheet_get_visible_range (GTK_SHEET (de->var_sheet), &visible_range);
-
- if ( col < visible_range.row0 || col > visible_range.rowi)
- gtk_sheet_moveto (GTK_SHEET (de->var_sheet), col, current_column, 0.5, 0.5);
-
-
- return FALSE;
-}
-
-
-/* Callback which occurs when the var sheet's row title
- button is double clicked */
-static gboolean
-on_var_row_clicked (PsppireDataEditor *de, gint row, gpointer data)
-{
- GtkSheetRange visible_range;
-
- gint current_row, current_column;
-
- gtk_notebook_set_current_page (GTK_NOTEBOOK(de), PSPPIRE_DATA_EDITOR_DATA_VIEW);
-
- gtk_sheet_get_active_cell (GTK_SHEET (de->data_sheet[0]),
- ¤t_row, ¤t_column);
-
- gtk_sheet_set_active_cell (GTK_SHEET (de->data_sheet[0]), current_row, row);
-
- gtk_sheet_get_visible_range (GTK_SHEET (de->data_sheet[0]), &visible_range);
-
- if ( row < visible_range.col0 || row > visible_range.coli)
- gtk_sheet_moveto (GTK_SHEET (de->data_sheet[0]), -1, row, 0.5, 0.5);
-
- return FALSE;
-}
-
-
-/* Moves the focus to a new cell.
- Returns TRUE iff the move should be disallowed */
-static gboolean
-traverse_cell_callback (GtkSheet *sheet,
- GtkSheetCell *existing_cell,
- GtkSheetCell *new_cell,
- gpointer data)
-{
- PsppireDataEditor *de = PSPPIRE_DATA_EDITOR (data);
- const PsppireDict *dict = de->data_store->dict;
-
- if ( new_cell->col >= psppire_dict_get_var_cnt (dict))
- return TRUE;
-
- return FALSE;
-}
-
-
-enum
- {
- PROP_0,
- PROP_DATA_STORE,
- PROP_VAR_STORE,
- PROP_DS_COLUMN_MENU,
- PROP_DS_ROW_MENU,
- PROP_VALUE_LABELS,
- PROP_CURRENT_CASE,
- PROP_CURRENT_VAR,
- PROP_DATA_SELECTED,
- PROP_SPLIT_WINDOW
- };
-
-
-#define DEFAULT_ROW_HEIGHT 25