Commit 5b2b279e authored by Jody Goldberg's avatar Jody Goldberg Committed by Jody Goldberg

adjust to the new creation format.

2002-01-28  Jody Goldberg <jody@gnome.org>

	* src/workbook-object-toolbar.c :  adjust to the new creation format.

	* src/workbook-edit.c (wbcg_edit_has_guru) : return the actual guru.

	* src/workbook-control-gui.c : Explicitly use the STOCK items rather
	  than just the stock icon names.  This enables the accelerators too.

	* src/sheet-object-widget.c : cleanup.
	  Use _init functions, no need to create a silly _new wrapper that calls
	  construct.  Remove unused Sheet arguments.

	* src/gnumeric-canvas.c (gnm_canvas_guru_key) : new.
	(gnm_canvas_key_mode_sheet) : be more careful about what how to handle
	  keys when there is a guru up.

	* src/sheet-object-widget.c (sheet_widget_checkbox_user_config) :
	  create the table.

2002-01-27  Jody Goldberg <jody@gnome.org>

	* src/Makefile.am : cleanup the generated files.
parent 72ae1ead
2002-01-28 Jody Goldberg <jody@gnome.org>
* src/workbook-object-toolbar.c : adjust to the new creation format.
* src/workbook-edit.c (wbcg_edit_has_guru) : return the actual guru.
* src/workbook-control-gui.c : Explicitly use the STOCK items rather
than just the stock icon names. This enables the accelerators too.
* src/sheet-object-widget.c : cleanup.
Use _init functions, no need to create a silly _new wrapper that calls
construct. Remove unused Sheet arguments.
* src/gnumeric-canvas.c (gnm_canvas_guru_key) : new.
(gnm_canvas_key_mode_sheet) : be more careful about what how to handle
keys when there is a guru up.
* src/sheet-object-widget.c (sheet_widget_checkbox_user_config) :
create the table.
2002-01-27 Jody Goldberg <jody@gnome.org>
* src/Makefile.am : cleanup the generated files.
2002-01-28 Andreas J. Guelzow <aguelzow@taliesin.ca>
* src/consolidate.c (consolidate_set_destination) : accept
......@@ -7,6 +31,7 @@
parameters
(consolidate_add_source) : ditto
>>>>>>> 1.1833
2002-01-27 Seth Nickell <snickell@stanford.edu>
* Makefile.am:
......
2002-01-28 Jody Goldberg <jody@gnome.org>
* src/workbook-object-toolbar.c : adjust to the new creation format.
* src/workbook-edit.c (wbcg_edit_has_guru) : return the actual guru.
* src/workbook-control-gui.c : Explicitly use the STOCK items rather
than just the stock icon names. This enables the accelerators too.
* src/sheet-object-widget.c : cleanup.
Use _init functions, no need to create a silly _new wrapper that calls
construct. Remove unused Sheet arguments.
* src/gnumeric-canvas.c (gnm_canvas_guru_key) : new.
(gnm_canvas_key_mode_sheet) : be more careful about what how to handle
keys when there is a guru up.
* src/sheet-object-widget.c (sheet_widget_checkbox_user_config) :
create the table.
2002-01-27 Jody Goldberg <jody@gnome.org>
* src/Makefile.am : cleanup the generated files.
2002-01-28 Andreas J. Guelzow <aguelzow@taliesin.ca>
* src/consolidate.c (consolidate_set_destination) : accept
......@@ -7,6 +31,7 @@
parameters
(consolidate_add_source) : ditto
>>>>>>> 1.1833
2002-01-27 Seth Nickell <snickell@stanford.edu>
* Makefile.am:
......
2002-01-28 Jody Goldberg <jody@gnome.org>
* src/workbook-object-toolbar.c : adjust to the new creation format.
* src/workbook-edit.c (wbcg_edit_has_guru) : return the actual guru.
* src/workbook-control-gui.c : Explicitly use the STOCK items rather
than just the stock icon names. This enables the accelerators too.
* src/sheet-object-widget.c : cleanup.
Use _init functions, no need to create a silly _new wrapper that calls
construct. Remove unused Sheet arguments.
* src/gnumeric-canvas.c (gnm_canvas_guru_key) : new.
(gnm_canvas_key_mode_sheet) : be more careful about what how to handle
keys when there is a guru up.
* src/sheet-object-widget.c (sheet_widget_checkbox_user_config) :
create the table.
2002-01-27 Jody Goldberg <jody@gnome.org>
* src/Makefile.am : cleanup the generated files.
2002-01-28 Andreas J. Guelzow <aguelzow@taliesin.ca>
* src/consolidate.c (consolidate_set_destination) : accept
......@@ -7,6 +31,7 @@
parameters
(consolidate_add_source) : ditto
>>>>>>> 1.1833
2002-01-27 Seth Nickell <snickell@stanford.edu>
* Makefile.am:
......
2002-01-28 Jody Goldberg <jody@gnome.org>
* src/workbook-object-toolbar.c : adjust to the new creation format.
* src/workbook-edit.c (wbcg_edit_has_guru) : return the actual guru.
* src/workbook-control-gui.c : Explicitly use the STOCK items rather
than just the stock icon names. This enables the accelerators too.
* src/sheet-object-widget.c : cleanup.
Use _init functions, no need to create a silly _new wrapper that calls
construct. Remove unused Sheet arguments.
* src/gnumeric-canvas.c (gnm_canvas_guru_key) : new.
(gnm_canvas_key_mode_sheet) : be more careful about what how to handle
keys when there is a guru up.
* src/sheet-object-widget.c (sheet_widget_checkbox_user_config) :
create the table.
2002-01-27 Jody Goldberg <jody@gnome.org>
* src/Makefile.am : cleanup the generated files.
2002-01-28 Andreas J. Guelzow <aguelzow@taliesin.ca>
* src/consolidate.c (consolidate_set_destination) : accept
......@@ -7,6 +31,7 @@
parameters
(consolidate_add_source) : ditto
>>>>>>> 1.1833
2002-01-27 Seth Nickell <snickell@stanford.edu>
* Makefile.am:
......
......@@ -311,7 +311,7 @@ else
fi
enable_bonobo=false
bonobo_msg='temporarily disabled in gnome2'
bonobo_msg="temporarily disabled in gnome2 branch"
AC_ARG_WITH(bonobo,
[--{with,without}-bonobo Use the bonobo UI routines],
if test "x$withval" = xyes; then
......
......@@ -892,7 +892,7 @@
<toolitem name="Combo"
pixtype="stock" pixname="Gnumeric_Combo"
_label="Combo Box"
_tip="Create a combo box" verb="CreateCombobox"/>
_tip="Create a combo box" verb="CreateCombo"/>
-->
<toolitem name="Line"
......
......@@ -324,3 +324,7 @@ EXTRA_DIST = GNOME_Gnumeric.xml \
# Bonobo requires things to be in a subdir of this form
uidir=$(gnumeric_datadir)/gnome/ui
ui_DATA = GNOME_Gnumeric.xml
CLEANFILES = $(GNUMERIC_GENERATED)
dist-hook :
cd $(distdir) && rm -f $(CLEANFILES)
2002-01-28 Jody Goldberg <jody@gnome.org>
* sheet-order.glade : rewrite.
* dialog-sheet-order.c : begin transfer to TreeView.
NOTE : IT CRASHES ! commit now so that jrb can see what the hell is
going on.
2002-01-28 Andreas J. Guelzow <aguelzow@taliesin.ca>
* consolidate.glade : add help button
......
/* -*- mode: c; c-basic-offset: 8 -*- */
/* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
* dialog-sheet-order.c: Dialog to change the order of sheets in the Gnumeric
* spreadsheet
*
* Author:
* Dom Lachowicz (dominicl@seas.upenn.edu)
* Jody Goldberg <jody@gnome.org>
*/
#include <gnumeric-config.h>
#include <gnumeric.h>
......@@ -12,11 +12,10 @@
#include <gui-util.h>
#include <workbook-control-gui.h>
#include <workbook-edit.h>
#include <workbook-view.h>
#include <workbook.h>
#include <sheet.h>
#include <application.h>
#include <expr.h>
#include <libgnome/gnome-i18n.h>
#include <glade/glade.h>
......@@ -24,272 +23,118 @@
typedef struct {
Workbook *wb;
WorkbookControlGUI *wbcg;
GladeXML *gui;
GtkWidget *dialog;
GtkWidget *clist;
GtkTreeView *sheet_list;
GtkWidget *up_btn;
GtkWidget *down_btn;
GtkWidget *delete_btn;
GtkWidget *close_btn;
gint current_row;
} SheetManager;
/*
* Add one sheet's name to the clist
*/
static void
add_to_sheet_clist (Sheet *sheet, GtkWidget *clist)
{
gchar *data[1];
gint row;
data[0] = sheet->name_unquoted;
row = gtk_clist_append (GTK_CLIST (clist), data);
gtk_clist_set_row_data (GTK_CLIST (clist), row, sheet);
}
/*
* Add all of the sheets to the clist
*/
static void
populate_sheet_clist (SheetManager *sm)
{
Sheet *cur_sheet= wb_control_cur_sheet (WORKBOOK_CONTROL (sm->wbcg));
GtkCList *clist = GTK_CLIST (sm->clist);
GList *sheets = workbook_sheets (sm->wb), *ptr;
gint row = 0;
gtk_clist_freeze (clist);
gtk_clist_clear (clist);
g_list_foreach (sheets, (GFunc) add_to_sheet_clist, clist);
for (ptr = sheets ; ptr != NULL ; ptr = ptr->next, row++)
if (ptr->data == cur_sheet)
gtk_clist_select_row (clist, row, 0);
g_list_free (sheets);
gtk_clist_thaw (clist);
}
/*
* Handle key-press events
* Currently we only handle "ESC" - should destroy the widget
* But we may expand in the future to have keybindings
*/
static gint
key_event_cb (GtkWidget *dialog, GdkEventKey *event)
{
if (event->keyval == GDK_Escape) {
gtk_widget_destroy (dialog);
return 1;
}
return 0;
}
/*
/**
* Refreshes the buttons on a row (un)selection
* And moves the representative page/sheet in the notebook
* To the foreground
*/
static void
row_cb (GtkWidget *w, gint row, gint col,
GdkEvent *event, SheetManager *sm)
void
cb_row_activated (GtkTreeView *tree_view,
GtkTreePath *path,
SheetManager *state)
{
GtkCList *clist = GTK_CLIST (w);
gint numrows = clist->rows;
gboolean can_go = FALSE;
if (numrows) {
Sheet *sheet = gtk_clist_get_row_data (GTK_CLIST (clist), row);
sm->current_row = row;
can_go = (row != 0); /* top row test */
gtk_widget_set_sensitive (sm->up_btn, can_go);
can_go = !(row >= (numrows - 1)); /* bottom row test */
gtk_widget_set_sensitive (sm->down_btn, can_go);
#if 0
state->current_row = row;
/* don't delete the last remaining sheet */
can_go = (numrows > 1);
gtk_widget_set_sensitive (sm->delete_btn, can_go);
gtk_widget_set_sensitive (state->up_btn, row > 0);
gtk_widget_set_sensitive (state->down_btn, can_go);
can_go = !(row >= (numrows - 1)); /* bottom row test */
gint numrows = state->sheet_list->rows;
/* Display/focus on the selected sheet underneath us */
wb_control_sheet_focus (WORKBOOK_CONTROL (sm->wbcg), sheet);
} else {
sm->current_row = -1;
gtk_widget_set_sensitive (sm->up_btn, FALSE);
gtk_widget_set_sensitive (sm->down_btn, FALSE);
gtk_widget_set_sensitive (sm->delete_btn, FALSE);
}
/* Display/focus on the selected sheet underneath us */
wb_control_sheet_focus (WORKBOOK_CONTROL (state->wbcg), sheet);
gtk_clist_get_row_data (GTK_CLIST (state->sheet_list), row);
#endif
}
/*
* User wanted to delete this sheet from the workbook
*/
/* Add all of the sheets to the sheet_list */
static void
delete_clicked_cb (GtkWidget *button, SheetManager *sm)
populate_sheet_list (SheetManager *state)
{
GtkCList *clist = GTK_CLIST (sm->clist);
GList *selection = GTK_CLIST (clist)->selection;
gint row = GPOINTER_TO_INT (g_list_nth_data (selection, 0));
gint numrows = GTK_CLIST (sm->clist)->rows;
Sheet *sheet = gtk_clist_get_row_data (clist, row);
GtkWidget *popup;
gchar *message;
gint response = 1;
/* Don't delete anything if number of rows <= 1 */
if (numrows <= 1)
return;
message = g_strdup_printf (
_("Are you sure you want to remove the sheet called `%s'?"),
sheet->name_unquoted);
popup = gtk_message_dialog_new (wbcg_toplevel (sm->wbcg),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_QUESTION,
GTK_BUTTONS_YES_NO,
message, NULL);
g_free (message);
response = gnumeric_dialog_run (sm->wbcg, GTK_DIALOG (popup));
if (response != 0)
return;
GtkTreeViewColumn *column;
GtkTreeIter iter;
GtkWidget *scrolled = glade_xml_get_widget (state->gui, "scrolled");
GtkListStore *store = gtk_list_store_new (1, G_TYPE_STRING);
int i, n = workbook_sheet_count (state->wb);
for (i = 0 ; i < n ; i++) {
Sheet *sheet = workbook_sheet_by_index (state->wb, i);
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter,
0, sheet->name_unquoted,
-1);
}
workbook_sheet_delete (sheet);
populate_sheet_clist (sm);
state->sheet_list = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store));
column = gtk_tree_view_column_new_with_attributes ("Sheets",
gtk_cell_renderer_text_new (),
"text", 0, NULL);
gtk_tree_view_column_set_sort_column_id (column, 0);
gtk_tree_view_append_column (GTK_TREE_VIEW (state->sheet_list), column);
gtk_widget_show_all (GTK_WIDGET (state->sheet_list));
gtk_container_add (GTK_CONTAINER (scrolled), GTK_WIDGET (state->sheet_list));
/* Init the buttons & selection */
cb_row_activated (state->sheet_list, NULL, state);
}
/*
* Actual implementation of the re-ordering sheets
* Both in the GtkCList and in the GtkNotebook underneath
*/
/* Actual implementation of the re-ordering sheets */
static void
move_cb (SheetManager *sm, gint direction)
move_cb (SheetManager *state, gint direction)
{
gint numrows = GTK_CLIST (sm->clist)->rows;
gint numrows = 0;
if (numrows && sm->current_row >= 0) {
GList *selection = GTK_CLIST (sm->clist)->selection;
Sheet *sheet = gtk_clist_get_row_data (GTK_CLIST (sm->clist), sm->current_row);
#if 0
if (numrows && state->current_row >= 0) {
GList *selection = GTK_CLIST (state->sheet_list)->selection;
Sheet *sheet = gtk_clist_get_row_data (GTK_CLIST (state->sheet_list), state->current_row);
gint source = GPOINTER_TO_INT (g_list_nth_data (selection, 0));
gint dest = source + direction;
WorkbookView *view = wb_control_view (
WORKBOOK_CONTROL (sm->wbcg));
WORKBOOK_CONTROL (state->wbcg));
gtk_clist_freeze (GTK_CLIST (sm->clist));
gtk_clist_row_move (GTK_CLIST (sm->clist), source, dest);
gtk_clist_thaw (GTK_CLIST (sm->clist));
gtk_clist_row_move (GTK_CLIST (state->sheet_list), source, dest);
workbook_sheet_move (sheet, direction);
wb_view_sheet_focus (view, sheet);
/* this is a little hack-ish, but we need to refresh the buttons */
row_cb (sm->clist, dest, 0, NULL, sm);
cb_row_activated (state->sheet_list, NULL, state);
}
#endif
}
/*
* User wants to move the sheet up
*/
static void
up_clicked_cb (GtkWidget *button, SheetManager *sm)
{
move_cb (sm, -1); /* c-array style : move -1 == left == up */
}
static void cb_up (GtkWidget *w, SheetManager *state) { move_cb (state, -1); }
static void cb_down (GtkWidget *w, SheetManager *state) { move_cb (state, 1); }
/*
* User wants to move the sheet down
*/
static void
down_clicked_cb (GtkWidget *button, SheetManager *sm)
close_clicked_cb (GtkWidget *ignore, SheetManager *state)
{
move_cb (sm, 1); /* c-array style : move 1 == right == down */
gtk_widget_destroy (GTK_WIDGET (state->dialog));
}
static void
close_clicked_cb (GtkWidget *button, SheetManager *sm)
cb_sheet_order_destroy (GtkWidget *ignored, SheetManager *state)
{
gnome_dialog_close (GNOME_DIALOG (sm->dialog));
g_object_unref (G_OBJECT (state->gui));
state->gui = NULL;
g_free (state);
}
/*
* Actual implementation of the sheet order dialog
*/
static void
dialog_sheet_order_impl (WorkbookControlGUI *wbcg, GladeXML *gui)
{
SheetManager sm;
int bval;
sm.wbcg = wbcg;
sm.wb = wb_control_workbook (WORKBOOK_CONTROL (wbcg));
sm.dialog = glade_xml_get_widget (gui, "dialog");
sm.clist = glade_xml_get_widget (gui, "sheet_clist");
sm.up_btn = glade_xml_get_widget (gui, "up_btn");
sm.down_btn = glade_xml_get_widget (gui, "down_btn");
sm.delete_btn = glade_xml_get_widget (gui, "delete_btn");
sm.close_btn = glade_xml_get_widget (gui, "close_btn");
sm.current_row = -1;
gtk_clist_column_titles_passive (GTK_CLIST (sm.clist));
gtk_signal_connect (GTK_OBJECT (sm.dialog), "key_press_event",
GTK_SIGNAL_FUNC (key_event_cb), NULL);
gtk_signal_connect (GTK_OBJECT (sm.clist), "select_row",
GTK_SIGNAL_FUNC (row_cb), &sm);
gtk_signal_connect (GTK_OBJECT (sm.clist), "unselect_row",
GTK_SIGNAL_FUNC (row_cb), &sm);
gtk_signal_connect (GTK_OBJECT (sm.up_btn), "clicked",
GTK_SIGNAL_FUNC (up_clicked_cb), &sm);
gtk_signal_connect (GTK_OBJECT (sm.down_btn), "clicked",
GTK_SIGNAL_FUNC (down_clicked_cb), &sm);
gtk_signal_connect (GTK_OBJECT (sm.delete_btn), "clicked",
GTK_SIGNAL_FUNC (delete_clicked_cb), &sm);
gtk_signal_connect (GTK_OBJECT (sm.close_btn), "clicked",
GTK_SIGNAL_FUNC (close_clicked_cb), &sm);
populate_sheet_clist (&sm);
gnumeric_clist_make_selection_visible (GTK_CLIST (sm.clist));
if (GTK_CLIST (sm.clist)->rows > 0) {
gtk_widget_grab_focus (sm.clist);
} else {
gtk_widget_set_sensitive (sm.up_btn, FALSE);
gtk_widget_set_sensitive (sm.down_btn, FALSE);
gtk_widget_set_sensitive (sm.delete_btn, FALSE);
}
gtk_clist_column_titles_passive (GTK_CLIST (sm.clist));
#if 0
gnome_dialog_set_default (GNOME_DIALOG (sm.dialog), BUTTON_CLOSE);
#endif
gtk_window_set_policy (GTK_WINDOW (sm.dialog), FALSE, TRUE, FALSE);
gtk_widget_show_all (GTK_DIALOG (sm.dialog)->vbox);
bval = gnumeric_dialog_run (sm.wbcg, GTK_DIALOG (sm.dialog));
/* If the user canceled we have already returned */
if (bval != -1)
gnome_dialog_close (GTK_DIALOG (sm.dialog));
}
/*
* Dialog
*/
void
dialog_sheet_order (WorkbookControlGUI *wbcg)
{
SheetManager *state;
GladeXML *gui;
g_return_if_fail (wbcg != NULL);
......@@ -298,6 +143,36 @@ dialog_sheet_order (WorkbookControlGUI *wbcg)
if (gui == NULL)
return;
dialog_sheet_order_impl (wbcg, gui);
g_object_unref (G_OBJECT (gui));
state = g_new0 (SheetManager, 1);
state->gui = gui;
state->wbcg = wbcg;
state->wb = wb_control_workbook (WORKBOOK_CONTROL (wbcg));
state->dialog = glade_xml_get_widget (gui, "sheet-order-dialog");
state->up_btn = glade_xml_get_widget (gui, "up_button");
state->down_btn = glade_xml_get_widget (gui, "down_button");
state->close_btn = glade_xml_get_widget (gui, "close_button");
state->current_row = -1;
populate_sheet_list (state);
gtk_signal_connect (GTK_OBJECT (state->sheet_list),
"row_activated",
GTK_SIGNAL_FUNC (cb_row_activated), state);
gtk_signal_connect (GTK_OBJECT (state->up_btn),
"clicked",
GTK_SIGNAL_FUNC (cb_up), state);
gtk_signal_connect (GTK_OBJECT (state->down_btn),
"clicked",
GTK_SIGNAL_FUNC (cb_down), state);
gtk_signal_connect (GTK_OBJECT (state->close_btn),
"clicked",
GTK_SIGNAL_FUNC (close_clicked_cb), state);
gtk_signal_connect (GTK_OBJECT (state->dialog),
"destroy",
GTK_SIGNAL_FUNC (cb_sheet_order_destroy), state);
gnumeric_non_modal_dialog (state->wbcg, GTK_WINDOW (state->dialog));
wbcg_edit_attach_guru (state->wbcg, GTK_WIDGET (state->dialog));
gtk_widget_show (GTK_WIDGET (state->dialog));
}
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd" >
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
<glade-interface>
<widget class="GtkDialog" id="dialog">
<property name="visible">no</property>
<property name="title" translatable="yes">Order Sheets</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="modal">no</property>
<property name="allow_shrink">no</property>
<property name="allow_grow">no</property>
<property name="width-request">375</property>
<property name="height-request">220</property>
<property name="window-position">GTK_WIN_POS_NONE</property>
<child internal-child="vbox">
<widget class="GtkVBox" id="dialog-vbox1">
<property name="homogeneous">no</property>
<property name="spacing">8</property>
<property name="visible">yes</property>
<widget class="GtkWindow" id="sheet-order-dialog">
<property name="visible">True</property>
<property name="title" translatable="yes"></property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_MOUSE</property>
<property name="modal">False</property>
<property name="allow_grow">True</property>
<property name="allow_shrink">False</property>
<child internal-child="action_area">
<widget class="GtkHButtonBox" id="dialog-action_area1">
<property name="layout_style">GTK_BUTTONBOX_END</property>
<property name="spacing">8</property>
<property name="visible">yes</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">no</property>
<property name="fill">yes</property>
<property name="pack_type">GTK_PACK_END</property>
</packing>
</child>
<child>
<widget class="GtkHBox" id="hbox1">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkHBox" id="hbox1">
<property name="homogeneous">no</property>
<property name="spacing">4</property>
<property name="visible">yes</property>
<child>
<widget class="GtkScrolledWindow" id="scrolled">
<property name="visible">True</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="shadow_type">GTK_SHADOW_NONE</property>
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
<widget class="GtkScrolledWindow" id="scrolledwindow1">
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="visible">yes</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkCList" id="sheet_clist">
<property name="can_focus">yes</property>
<property name="columns">1</property>
<property name="column_widths">80</property>
<property name="selection_mode">GTK_SELECTION_SINGLE</property>
<property name="show_titles">yes</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<property name="visible">yes</property>
<child>
<widget class="GtkVBox" id="vbox1">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkLabel" id="label1">
<property name="label" translatable="yes">_Sheet Name</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">no</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="visible">yes</property>
<property name="use_underline">yes</property>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkAlignment" id="alignment1">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="yalign">1</property>
<property name="xscale">0</property>
<property name="yscale">0</property>
<child internal-child="hscrollbar">
<widget class="GtkHScrollbar" id="convertwidget1">
<property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
<property name="visible">yes</property>
</widget>
</child>
<child>
<widget class="GtkButton" id="up_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-go-up</property>
<property name="use_stock">True</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child internal-child="vscrollbar">
<widget class="GtkVScrollbar" id="convertwidget2">
<property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
<property name="visible">yes</property>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">yes</property>
<property name="fill">yes</property>
</packing>
</child>
<child>
<widget class="GtkAlignment" id="alignment2">