+static void
+init_sheet (PsppireDataEditor *de, int i,
+ GtkAdjustment *hadj, GtkAdjustment *vadj,
+ PsppireAxis *vaxis,
+ PsppireAxis *haxis
+ )
+{
+ de->sheet_bin[i] = gtk_scrolled_window_new (hadj, vadj);
+
+ de->data_sheet[i] = psppire_sheet_new (NULL);
+
+ g_object_set (de->sheet_bin[i],
+ "border-width", 3,
+ "shadow-type", GTK_SHADOW_ETCHED_IN,
+ NULL);
+
+ g_object_set (haxis, "default-size", 75, NULL);
+ g_object_set (vaxis, "default-size", 25, NULL);
+
+ g_object_set (de->data_sheet[i],
+ "horizontal-axis", haxis,
+ "vertical-axis", vaxis,
+ NULL);
+
+ gtk_container_add (GTK_CONTAINER (de->sheet_bin[i]), de->data_sheet[i]);
+
+ g_signal_connect (de->data_sheet[i], "traverse",
+ G_CALLBACK (traverse_cell_callback), de);
+
+ gtk_widget_show (de->sheet_bin[i]);
+}
+
+
+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);
+}
+
+