-
-static void
-init_data_sheet (PsppireDataEditor *de)
-{
- GtkAdjustment *vadj0, *hadj0;
- GtkAdjustment *vadj1, *hadj1;
- GtkWidget *sheet ;
-
- de->vaxis[0] = psppire_axis_new ();
- de->vaxis[1] = psppire_axis_new ();
-
- /* There's only one horizontal axis, since the
- column widths are parameters of the variables */
- de->haxis = psppire_axis_new ();
-
- de->split = TRUE;
- de->paned = gtk_xpaned_new ();
-
- init_sheet (de, 0, NULL, NULL, de->vaxis[0], de->haxis);
- gtk_widget_show (de->sheet_bin[0]);
- vadj0 = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (de->sheet_bin[0]));
- hadj0 = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (de->sheet_bin[0]));
-
- 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);
-
- init_sheet (de, 1, NULL, vadj0, de->vaxis[0], de->haxis);
- gtk_widget_show (de->sheet_bin[1]);
- sheet = gtk_bin_get_child (GTK_BIN (de->sheet_bin[1]));
- psppire_sheet_hide_row_titles (PSPPIRE_SHEET (sheet));
- hadj1 = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (de->sheet_bin[1]));
- g_object_set (de->sheet_bin[1], "vscrollbar-policy", GTK_POLICY_ALWAYS, NULL);
- g_object_set (de->sheet_bin[1], "hscrollbar-policy", GTK_POLICY_NEVER, NULL);
-
- init_sheet (de, 2, hadj0, NULL, de->vaxis[1], de->haxis);
- gtk_widget_show (de->sheet_bin[2]);
- sheet = gtk_bin_get_child (GTK_BIN (de->sheet_bin[2]));
- psppire_sheet_hide_column_titles (PSPPIRE_SHEET (sheet));
- g_object_set (de->sheet_bin[2], "vscrollbar-policy", GTK_POLICY_NEVER, NULL);
- g_object_set (de->sheet_bin[2], "hscrollbar-policy", GTK_POLICY_ALWAYS, NULL);
- vadj1 = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (de->sheet_bin[2]));
-
- init_sheet (de, 3, hadj1, vadj1, de->vaxis[1], de->haxis);
- gtk_widget_show (de->sheet_bin[3]);
- sheet = gtk_bin_get_child (GTK_BIN (de->sheet_bin[3]));
- psppire_sheet_hide_column_titles (PSPPIRE_SHEET (sheet));
- psppire_sheet_hide_row_titles (PSPPIRE_SHEET (sheet));
- g_object_set (de->sheet_bin[3], "vscrollbar-policy", GTK_POLICY_ALWAYS, NULL);
- g_object_set (de->sheet_bin[3], "hscrollbar-policy", GTK_POLICY_ALWAYS, NULL);
-
- gtk_xpaned_pack_top_left (GTK_XPANED (de->paned), de->sheet_bin[0], TRUE, TRUE);
- gtk_xpaned_pack_top_right (GTK_XPANED (de->paned), de->sheet_bin[1], TRUE, TRUE);
- gtk_xpaned_pack_bottom_left (GTK_XPANED (de->paned), de->sheet_bin[2], TRUE, TRUE);
- gtk_xpaned_pack_bottom_right (GTK_XPANED (de->paned), de->sheet_bin[3], TRUE, TRUE);
-
- gtk_xpaned_set_position_y (GTK_XPANED (de->paned), 150);
- gtk_xpaned_set_position_x (GTK_XPANED (de->paned), 350);
-}
-
-
-static void
-psppire_data_editor_init (PsppireDataEditor *de)
-{
- GtkWidget *hbox = gtk_hbox_new (FALSE, 0);
- GtkWidget *sw_vs = gtk_scrolled_window_new (NULL, NULL);
-
- init_data_sheet (de);
-
- de->data_vbox = gtk_vbox_new (FALSE, 0);
- de->var_sheet = psppire_var_sheet_new ();
-
- g_object_set (de, "tab-pos", GTK_POS_BOTTOM, NULL);
-
- de->datum_entry = gtk_entry_new ();
- de->cell_ref_entry = gtk_entry_new ();
-
- g_object_set (de->cell_ref_entry,
- "sensitive", FALSE,
- "editable", FALSE,
- "width_chars", 25,
- NULL);
-
- gtk_box_pack_start (GTK_BOX (hbox), de->cell_ref_entry, FALSE, FALSE, 0);
- gtk_box_pack_start (GTK_BOX (hbox), de->datum_entry, TRUE, TRUE, 0);
-
-
- gtk_container_add (GTK_CONTAINER (sw_vs), de->var_sheet);
- gtk_widget_show_all (sw_vs);
-
-
- gtk_box_pack_start (GTK_BOX (de->data_vbox), hbox, FALSE, FALSE, 0);
- gtk_box_pack_start (GTK_BOX (de->data_vbox), de->paned, TRUE, TRUE, 0);
-
-
- psppire_data_editor_remove_split (de);
-
- gtk_widget_show_all (de->data_vbox);
-
- gtk_notebook_append_page (GTK_NOTEBOOK (de), de->data_vbox,
- gtk_label_new_with_mnemonic (_("Data View")));
-
- 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_object_set (de, "can-focus", FALSE, NULL);
-
- g_signal_connect (de, "map", G_CALLBACK (on_map), NULL);
-
-
- // psppire_sheet_hide_column_titles (de->var_sheet);
- // psppire_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)