- gtk_notebook_append_page (GTK_NOTEBOOK (de), sw_vs,
- gtk_label_new_with_mnemonic (_("Variable View")));
-
- g_signal_connect (de->data_sheet[0], "activate",
- G_CALLBACK (update_data_ref_entry),
- de);
-
- g_signal_connect (de->datum_entry, "activate",
- G_CALLBACK (datum_entry_activate),
- de);
-
-
- g_signal_connect_swapped (de->data_sheet[0],
- "double-click-column",
- G_CALLBACK (on_data_column_clicked),
- de);
-
- g_signal_connect_swapped (de->var_sheet,
- "double-click-row",
- G_CALLBACK (on_var_row_clicked),
- de);
-
- g_signal_connect_swapped (de->data_sheet[0], "activate",
- G_CALLBACK (on_activate),
- de);
-
- g_signal_connect_swapped (de->data_sheet[0], "select-range",
- G_CALLBACK (on_select_range),
- de);
-
- g_signal_connect (de->data_sheet[0], "select-row",
- G_CALLBACK (on_select_row), de);
-
- g_signal_connect (de->data_sheet[0], "select-column",
- G_CALLBACK (on_select_variable), de);
-
-
- g_signal_connect (de->var_sheet, "select-row",
- G_CALLBACK (on_select_variable), de);
-
-
- g_signal_connect_after (de, "switch-page",
- G_CALLBACK (on_switch_page),
- NULL);
-
-
- g_signal_connect (de, "map", G_CALLBACK (on_map), NULL);
-
-
-
- // gtk_sheet_hide_column_titles (de->var_sheet);
- // gtk_sheet_hide_row_titles (de->data_sheet);
-
-
- de->dispose_has_run = FALSE;
-}
-
-
-GtkWidget*
-psppire_data_editor_new (PsppireVarStore *var_store,
- PsppireDataStore *data_store)
-{
- return g_object_new (PSPPIRE_DATA_EDITOR_TYPE,
- "var-store", var_store,
- "data-store", data_store,
- NULL);
-}
-
-
-static void
-psppire_data_editor_remove_split (PsppireDataEditor *de)
-{
- if ( !de->split ) return;
- de->split = FALSE;
-
- g_object_ref (de->sheet_bin[0]);
- gtk_container_remove (GTK_CONTAINER (de->paned), de->sheet_bin[0]);
-
- g_object_ref (de->paned);
- gtk_container_remove (GTK_CONTAINER (de->data_vbox), de->paned);
-
- gtk_box_pack_start (GTK_BOX (de->data_vbox), de->sheet_bin[0],
- TRUE, TRUE, 0);
-
- g_object_unref (de->sheet_bin[0]);
-
- g_object_set (de->sheet_bin[0], "vscrollbar-policy",
- GTK_POLICY_ALWAYS, NULL);
-
- g_object_set (de->sheet_bin[0], "hscrollbar-policy",
- GTK_POLICY_ALWAYS, NULL);
-}
-
-
-static void
-psppire_data_editor_set_split (PsppireDataEditor *de)
-{
- if ( de->split ) return;
- de->split = TRUE;
-
- g_object_ref (de->sheet_bin[0]);
- gtk_container_remove (GTK_CONTAINER (de->data_vbox), de->sheet_bin[0]);
-
- gtk_xpaned_pack_top_left (GTK_XPANED (de->paned), de->sheet_bin [0],
- TRUE, TRUE);
-
- gtk_box_pack_start (GTK_BOX (de->data_vbox), de->paned,
- TRUE, TRUE, 0);
-
- g_object_unref (de->paned);
-
- g_object_set (de->sheet_bin[0], "vscrollbar-policy",
- GTK_POLICY_NEVER, NULL);
-
- g_object_set (de->sheet_bin[0], "hscrollbar-policy",
- GTK_POLICY_NEVER, NULL);
-}
-
-void
-psppire_data_editor_split_window (PsppireDataEditor *de, gboolean split)
-{
- if (split )
- psppire_data_editor_set_split (de);
- else
- psppire_data_editor_remove_split (de);
-
- gtk_widget_show_all (de->data_vbox);
-}
-
-static void data_sheet_set_clip (GtkSheet *sheet);
-static void data_sheet_contents_received_callback (GtkClipboard *clipboard,
- GtkSelectionData *sd,
- gpointer data);
-
-
-void
-psppire_data_editor_clip_copy (PsppireDataEditor *de)
-{
- data_sheet_set_clip (GTK_SHEET (de->data_sheet[0]));
-}
-
-void
-psppire_data_editor_clip_paste (PsppireDataEditor *de)
-{
- GdkDisplay *display = gtk_widget_get_display ( GTK_WIDGET (de));
- GtkClipboard *clipboard =
- gtk_clipboard_get_for_display (display, GDK_SELECTION_CLIPBOARD);
-
- gtk_clipboard_request_contents (clipboard,
- gdk_atom_intern ("UTF8_STRING", TRUE),
- data_sheet_contents_received_callback,
- de);