[gnumeric] Turn view properties dialog into instant-apply dialog.
- From: Andreas J. Guelzow <guelzow src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnumeric] Turn view properties dialog into instant-apply dialog.
- Date: Wed, 11 Nov 2009 22:37:40 +0000 (UTC)
commit 69f41f91194539aa1b8ba7ffbef624571e9e59ff
Author: Andreas J. Guelzow <aguelzow pyrshep ca>
Date: Wed Nov 11 15:36:55 2009 -0700
Turn view properties dialog into instant-apply dialog.
2009-11-11 Andreas J. Guelzow <aguelzow pyrshep ca>
* dialog-doc-metadata.c (dialog_doc_meta_data_add_item): fix wrong
key
* dialog-workbook-attr.c (AttrState): remove unneeded fields and
add 2 new fields
(cb_page_select): deleted
(cb_widget_changed ): rewritten into instant-apply
(cb_attr_dialog_dialog_apply): deleted
(cb_attr_dialog_dialog_ok): deleted
(attr_dialog_init_toggle): rewritten
(attr_dialog_init_widget_page): new
(attr_dialog_init_autocompletion_page): new
(attr_dialog_init_protection_page): new
(attr_dialog_init_view_page): deleted
(attr_dialog_add_item): new
(attr_dialog_select_page_search): new
(attr_dialog_impl): set up page selector
* preferences.glade: minor border adjstment
* workbook-attr.glade: major adjustments
NEWS | 3 +-
component/Gnumeric-embed.xml.in | 5 +-
src/GNOME_Gnumeric-gtk.xml.in | 5 +-
src/HILDON_Gnumeric-gtk.xml.in | 5 +-
src/dialogs/ChangeLog | 21 +++
src/dialogs/dialog-doc-metadata.c | 2 +-
src/dialogs/dialog-workbook-attr.c | 301 ++++++++++++++++++++++--------------
src/dialogs/preferences.glade | 1 +
src/dialogs/workbook-attr.glade | 301 ++++++++++++++++++-----------------
src/wbc-gtk-actions.c | 2 +-
10 files changed, 375 insertions(+), 271 deletions(-)
---
diff --git a/NEWS b/NEWS
index d3c31a6..7781ea8 100644
--- a/NEWS
+++ b/NEWS
@@ -2,7 +2,8 @@ Gnumeric 1.9.16
Andreas:
* Clarify distinction between Document and View Properties.
- * Sort the translated labels in the prference dialog.
+ * Sort the translated labels in the preference dialog.
+ * Turn view properties dialog into instant-apply dialog.
Jean:
* Fix cursor and cell edition on dark backgrounds. [#600656]
diff --git a/component/Gnumeric-embed.xml.in b/component/Gnumeric-embed.xml.in
index 3bac369..e471919 100644
--- a/component/Gnumeric-embed.xml.in
+++ b/component/Gnumeric-embed.xml.in
@@ -89,8 +89,9 @@
</menu>
<menuitem action="ViewStatusbar"/>
<menuitem action="ViewFullScreen"/>
- <menuitem action="ViewZoom"/>
<menuitem action="FormatWorkbook"/>
+ <separator/>
+ <menuitem action="ViewZoom"/>
</menu>
<menu name="Insert" action="MenuInsert">
<menuitem action="InsertCells"/>
@@ -144,6 +145,8 @@
<menuitem action="SheetHideColHeader"/>
<menuitem action="SheetHideRowHeader"/>
<menuitem action="SheetDirection"/>
+ <separator/>
+ <menuitem action="ViewZoom"/>
</menu>
<menuitem action="FormatAuto"/>
</menu>
diff --git a/src/GNOME_Gnumeric-gtk.xml.in b/src/GNOME_Gnumeric-gtk.xml.in
index a4fa459..740fb8d 100644
--- a/src/GNOME_Gnumeric-gtk.xml.in
+++ b/src/GNOME_Gnumeric-gtk.xml.in
@@ -88,8 +88,9 @@
</menu>
<menuitem action="ViewStatusbar"/>
<menuitem action="ViewFullScreen"/>
- <menuitem action="ViewZoom"/>
<menuitem action="FormatWorkbook"/>
+ <separator/>
+ <menuitem action="ViewZoom"/>
</menu>
<menu name="Insert" action="MenuInsert">
<menuitem action="InsertCells"/>
@@ -143,6 +144,8 @@
<menuitem action="SheetHideColHeader"/>
<menuitem action="SheetHideRowHeader"/>
<menuitem action="SheetDirection"/>
+ <separator/>
+ <menuitem action="ViewZoom"/>
</menu>
<menuitem action="FormatAuto"/>
</menu>
diff --git a/src/HILDON_Gnumeric-gtk.xml.in b/src/HILDON_Gnumeric-gtk.xml.in
index aa86e3c..f9e1cb7 100644
--- a/src/HILDON_Gnumeric-gtk.xml.in
+++ b/src/HILDON_Gnumeric-gtk.xml.in
@@ -94,10 +94,11 @@
</menu>
<menuitem action="ViewStatusbar"/>
<menuitem action="ViewFullScreen"/>
+ <menuitem action="FormatWorkbook"/>
+ <separator/>
<menuitem action="ViewZoom"/>
<menuitem action="ViewZoomIn"/>
<menuitem action="ViewZoomOut"/>
- <menuitem action="FormatWorkbook"/>
</menu>
<menu name="Insert" action="MenuInsert">
<menuitem action="InsertCells"/>
@@ -150,6 +151,8 @@
<menuitem action="SheetHideGridlines"/>
<menuitem action="SheetHideColHeader"/>
<menuitem action="SheetHideRowHeader"/>
+ <separator/>
+ <menuitem action="ViewZoom"/>
</menu>
<menuitem action="FormatAuto"/>
</menu>
diff --git a/src/dialogs/ChangeLog b/src/dialogs/ChangeLog
index 949438b..9d545a0 100644
--- a/src/dialogs/ChangeLog
+++ b/src/dialogs/ChangeLog
@@ -1,5 +1,26 @@
2009-11-11 Andreas J. Guelzow <aguelzow pyrshep ca>
+ * dialog-doc-metadata.c (dialog_doc_meta_data_add_item): fix wrong
+ key
+ * dialog-workbook-attr.c (AttrState): remove unneeded fields and
+ add 2 new fields
+ (cb_page_select): deleted
+ (cb_widget_changed ): rewritten into instant-apply
+ (cb_attr_dialog_dialog_apply): deleted
+ (cb_attr_dialog_dialog_ok): deleted
+ (attr_dialog_init_toggle): rewritten
+ (attr_dialog_init_widget_page): new
+ (attr_dialog_init_autocompletion_page): new
+ (attr_dialog_init_protection_page): new
+ (attr_dialog_init_view_page): deleted
+ (attr_dialog_add_item): new
+ (attr_dialog_select_page_search): new
+ (attr_dialog_impl): set up page selector
+ * preferences.glade: minor border adjstment
+ * workbook-attr.glade: major adjustments
+
+2009-11-11 Andreas J. Guelzow <aguelzow pyrshep ca>
+
* dialog-doc-metadata.c: use more appropriate icon for statistics
* dialog-preferences.c (page_info): change the order of items to
index the required page directly
diff --git a/src/dialogs/dialog-doc-metadata.c b/src/dialogs/dialog-doc-metadata.c
index 9eca03d..ddf8e33 100644
--- a/src/dialogs/dialog-doc-metadata.c
+++ b/src/dialogs/dialog-doc-metadata.c
@@ -1568,7 +1568,7 @@ dialog_doc_meta_data_add_item (DialogDocMetaData *state, char const *page_name,
if (icon_name != NULL)
icon = gtk_widget_render_icon (state->dialog, icon_name,
GTK_ICON_SIZE_MENU,
- "Gnumeric-Preference-Dialog");
+ DOC_METADATA_KEY);
if ((parent_path != NULL) && gtk_tree_model_get_iter_from_string (GTK_TREE_MODEL (state->store),
&parent, parent_path))
gtk_tree_store_append (state->store, &iter, &parent);
diff --git a/src/dialogs/dialog-workbook-attr.c b/src/dialogs/dialog-workbook-attr.c
index c738b41..967f3da 100644
--- a/src/dialogs/dialog-workbook-attr.c
+++ b/src/dialogs/dialog-workbook-attr.c
@@ -34,6 +34,13 @@
#define WORKBOOK_ATTRIBUTE_KEY "workbook-attribute-dialog"
+enum {
+ ITEM_ICON,
+ ITEM_NAME,
+ PAGE_NUMBER,
+ NUM_COLUMNS
+};
+
typedef struct {
GladeXML *gui;
GtkWidget *dialog;
@@ -46,20 +53,8 @@ typedef struct {
WorkbookView *wbv;
WBCGtk *wbcg;
- struct {
- GtkToggleButton *show_hsb;
- GtkToggleButton *show_vsb;
- GtkToggleButton *show_tabs;
- GtkToggleButton *autocomplete;
- GtkToggleButton *is_protected;
- } view;
- struct {
- gboolean show_hsb;
- gboolean show_vsb;
- gboolean show_tabs;
- gboolean autocomplete;
- gboolean is_protected;
- } old;
+ GtkTreeStore *store;
+ GtkTreeView *tview;
} AttrState;
/*****************************************************************************/
@@ -69,56 +64,17 @@ typedef struct {
* invocations */
static int attr_dialog_page = 0;
-/*
- * Callback routine to help remember which attribute tab was selected
- * between dialog invocations.
- */
-static void
-cb_page_select (G_GNUC_UNUSED GtkNotebook *notebook,
- G_GNUC_UNUSED GtkNotebookPage *page,
- gint page_num, AttrState *state)
-{
- if (!state->destroying)
- attr_dialog_page = page_num;
-}
-
/*****************************************************************************/
static void
-cb_widget_changed (G_GNUC_UNUSED GtkWidget *widget, AttrState *state)
+cb_widget_changed (GtkWidget *widget, AttrState *state)
{
- gboolean changed;
- changed =
- !((gtk_toggle_button_get_active (state->view.show_hsb) == state->old.show_hsb) &&
- (gtk_toggle_button_get_active (state->view.show_vsb) == state->old.show_vsb) &&
- (gtk_toggle_button_get_active (state->view.show_tabs) == state->old.show_tabs) &&
- (gtk_toggle_button_get_active (state->view.autocomplete) == state->old.autocomplete) &&
- (gtk_toggle_button_get_active (state->view.is_protected) == state->old.is_protected));
-
- gtk_widget_set_sensitive (state->ok_button, changed);
- gtk_widget_set_sensitive (state->apply_button, changed);
-}
+ char const *key;
-/* Handler for the apply button */
-static void
-cb_attr_dialog_dialog_apply (G_GNUC_UNUSED GtkWidget *button,
- AttrState *state)
-{
- state->old.show_hsb = gtk_toggle_button_get_active (state->view.show_hsb);
- state->old.show_vsb = gtk_toggle_button_get_active (state->view.show_vsb);
- state->old.show_tabs = gtk_toggle_button_get_active (state->view.show_tabs);
- state->old.autocomplete = gtk_toggle_button_get_active (state->view.autocomplete);
- state->old.is_protected = gtk_toggle_button_get_active (state->view.is_protected);
-
- g_object_set (G_OBJECT (state->wbv),
- "show-horizontal-scrollbar", state->old.show_hsb,
- "show-vertical-scrollbar", state->old.show_vsb,
- "show-notebook-tabs", state->old.show_tabs,
- "do-auto-completion", state->old.autocomplete,
- "protected", state->old.is_protected,
+ key = g_object_get_data (G_OBJECT (widget), "GNUMERIC:VIEWPROPERTY");
+ g_object_set (G_OBJECT (state->wbv),
+ key, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)),
NULL);
-
- cb_widget_changed (NULL, state);
}
static void
@@ -130,13 +86,6 @@ cb_attr_dialog_dialog_close (G_GNUC_UNUSED GtkWidget *button,
}
static void
-cb_attr_dialog_dialog_ok (GtkWidget *button, AttrState *state)
-{
- cb_attr_dialog_dialog_apply (button, state);
- cb_attr_dialog_dialog_close (button, state);
-}
-
-static void
cb_attr_dialog_dialog_destroy (AttrState *state)
{
if (state->gui != NULL) {
@@ -150,55 +99,149 @@ cb_attr_dialog_dialog_destroy (AttrState *state)
/*****************************************************************************/
-static GtkToggleButton *
-attr_dialog_init_toggle (AttrState *state, char const *name, gboolean val,
- gboolean *storage)
+static void
+attr_dialog_init_toggle (AttrState *state, char const *name, char const *key)
{
GtkWidget *w = glade_xml_get_widget (state->gui, name);
+ gboolean val = FALSE;
+
+ g_object_get (G_OBJECT (state->wbv), key, &val, NULL);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), val);
+
g_signal_connect (G_OBJECT (w),
"toggled",
G_CALLBACK (cb_widget_changed), state);
- *storage = val;
+ g_object_set_data (G_OBJECT (w), "GNUMERIC:VIEWPROPERTY", (gpointer) key);
+ return;
+}
- return GTK_TOGGLE_BUTTON (w);
+static void
+attr_dialog_init_widget_page (AttrState *state)
+{
+ attr_dialog_init_toggle
+ (state,
+ "WorkbookView::show_horizontal_scrollbar", "show_horizontal_scrollbar");
+ attr_dialog_init_toggle
+ (state,
+ "WorkbookView::show_vertical_scrollbar", "show_vertical_scrollbar");
+ attr_dialog_init_toggle
+ (state,
+ "WorkbookView::show_notebook_tabs", "show_notebook_tabs");
}
-static GtkEntry *
-attr_dialog_init_entry (AttrState *state, char const *name, char const *val)
+static void
+attr_dialog_init_autocompletion_page (AttrState *state)
{
- GtkWidget *w = glade_xml_get_widget (state->gui, name);
- gtk_entry_set_text (GTK_ENTRY (w), val);
- g_signal_connect (G_OBJECT (w),
- "changed",
- G_CALLBACK (cb_widget_changed), state);
- gnumeric_editable_enters (GTK_WINDOW (state->dialog), w);
- return GTK_ENTRY (w);
+ attr_dialog_init_toggle
+ (state,
+ "WorkbookView::do_auto_completion", "do_auto_completion");
+}
+
+static void
+attr_dialog_init_protection_page (AttrState *state)
+{
+ attr_dialog_init_toggle
+ (state,
+ "WorkbookView::workbook_protected", "protected");
+}
+/*****************************************************************************/
+
+
+static void
+attr_dialog_add_item (AttrState *state, char const *page_name,
+ char const *icon_name,
+ int page, char const* parent_path)
+{
+ GtkTreeIter iter, parent;
+ GdkPixbuf * icon = NULL;
+
+ if (icon_name != NULL)
+ icon = gtk_widget_render_icon (state->dialog, icon_name,
+ GTK_ICON_SIZE_MENU,
+ WORKBOOK_ATTRIBUTE_KEY);
+ if ((parent_path != NULL) && gtk_tree_model_get_iter_from_string (GTK_TREE_MODEL (state->store),
+ &parent, parent_path))
+ gtk_tree_store_append (state->store, &iter, &parent);
+ else
+ gtk_tree_store_append (state->store, &iter, NULL);
+
+ gtk_tree_store_set (state->store, &iter,
+ ITEM_ICON, icon,
+ ITEM_NAME, _(page_name),
+ PAGE_NUMBER, page,
+ -1);
+ if (icon != NULL)
+ g_object_unref (icon);
+}
+
+typedef struct {
+ char const *page_name;
+ char const *icon_name;
+ char const *parent_path;
+ int const page;
+ void (*page_initializer) (AttrState *state);
+} page_info_t;
+
+static page_info_t const page_info[] = {
+ {N_("Widgets"), "Gnumeric_ObjectScrollbar", NULL, 0, &attr_dialog_init_widget_page },
+ {N_("Protection"), GTK_STOCK_DIALOG_AUTHENTICATION, NULL, 1 ,&attr_dialog_init_protection_page },
+ {N_("Auto Completion"), NULL, NULL, 2 ,&attr_dialog_init_autocompletion_page },
+ {NULL, NULL, NULL, -1, NULL},
+};
+
+typedef struct {
+ int const page;
+ GtkTreePath *path;
+} page_search_t;
+
+static gboolean
+attr_dialog_select_page_search (GtkTreeModel *model,
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ page_search_t *pst)
+{
+ int page;
+ gtk_tree_model_get (model, iter, PAGE_NUMBER, &page, -1);
+ if (page == pst->page) {
+ pst->path = gtk_tree_path_copy (path);
+ return TRUE;
+ } else
+ return FALSE;
}
static void
-attr_dialog_init_view_page (AttrState *state)
+attr_dialog_select_page (AttrState *state, int page)
{
- state->view.show_hsb = attr_dialog_init_toggle (state,
- "WorkbookView::show_horizontal_scrollbar",
- state->wbv->show_horizontal_scrollbar,
- &state->old.show_hsb);
- state->view.show_vsb = attr_dialog_init_toggle (state,
- "WorkbookView::show_vertical_scrollbar",
- state->wbv->show_vertical_scrollbar,
- &state->old.show_vsb);
- state->view.show_tabs = attr_dialog_init_toggle (state,
- "WorkbookView::show_notebook_tabs",
- state->wbv->show_notebook_tabs,
- &state->old.show_tabs);
- state->view.autocomplete = attr_dialog_init_toggle (state,
- "WorkbookView::do_auto_completion",
- state->wbv->do_auto_completion,
- &state->old.autocomplete);
- state->view.is_protected = attr_dialog_init_toggle (state,
- "WorkbookView::workbook_protected",
- state->wbv->is_protected,
- &state->old.is_protected);
+ page_search_t pst = {page, NULL};
+
+ if (page >= 0)
+ gtk_tree_model_foreach (GTK_TREE_MODEL (state->store),
+ (GtkTreeModelForeachFunc) attr_dialog_select_page_search,
+ &pst);
+
+ if (pst.path == NULL)
+ pst.path = gtk_tree_path_new_from_string ("0");
+
+ if (pst.path != NULL) {
+ gtk_tree_view_set_cursor (state->tview, pst.path, NULL, FALSE);
+ gtk_tree_view_expand_row (state->tview, pst.path, TRUE);
+ gtk_tree_path_free (pst.path);
+ }
+}
+
+static void
+cb_attr_dialog_selection_changed (GtkTreeSelection *selection,
+ AttrState *state)
+{
+ GtkTreeIter iter;
+
+ if (gtk_tree_selection_get_selected (selection, NULL, &iter)) {
+ gtk_tree_model_get (GTK_TREE_MODEL (state->store), &iter,
+ PAGE_NUMBER, &attr_dialog_page,
+ -1);
+ gtk_notebook_set_current_page (GTK_NOTEBOOK (state->notebook), attr_dialog_page);
+ } else
+ attr_dialog_select_page (state, attr_dialog_page);
}
/*****************************************************************************/
@@ -207,6 +250,10 @@ static void
attr_dialog_impl (AttrState *state)
{
GtkWidget *dialog = glade_xml_get_widget (state->gui, "WorkbookAttr");
+ GtkTreeViewColumn *column;
+ GtkTreeSelection *selection;
+ int i;
+
g_return_if_fail (dialog != NULL);
/* Initialize */
@@ -214,29 +261,42 @@ attr_dialog_impl (AttrState *state)
state->notebook = glade_xml_get_widget (state->gui, "notebook");
state->destroying = FALSE;
- attr_dialog_init_view_page (state);
+ state->tview = GTK_TREE_VIEW(glade_xml_get_widget (state->gui, "itemlist"));
+ state->store = gtk_tree_store_new (NUM_COLUMNS,
+ GDK_TYPE_PIXBUF,
+ G_TYPE_STRING,
+ G_TYPE_INT);
+ gtk_tree_view_set_model (state->tview, GTK_TREE_MODEL(state->store));
+ selection = gtk_tree_view_get_selection (state->tview);
+ gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
+ column = gtk_tree_view_column_new_with_attributes ("",
+ gtk_cell_renderer_pixbuf_new (),
+ "pixbuf", ITEM_ICON,
+ NULL);
+ gtk_tree_view_append_column (state->tview, column);
+ column = gtk_tree_view_column_new_with_attributes ("",
+ gtk_cell_renderer_text_new (),
+ "text", ITEM_NAME,
+ NULL);
+ gtk_tree_view_append_column (state->tview, column);
+ gtk_tree_view_set_expander_column (state->tview, column);
+
+ g_signal_connect (selection,
+ "changed",
+ G_CALLBACK (cb_attr_dialog_selection_changed), state);
+
+ for (i = 0; page_info[i].page > -1; i++) {
+ const page_info_t *this_page = &page_info[i];
+ this_page->page_initializer (state);
+ attr_dialog_add_item (state, this_page->page_name, this_page->icon_name,
+ this_page->page, this_page->parent_path);
+ }
- /* Select the same page the last invocation used */
- gtk_notebook_set_current_page (
- GTK_NOTEBOOK (state->notebook),
- attr_dialog_page);
- g_signal_connect (
- G_OBJECT (state->notebook),
- "switch_page",
- G_CALLBACK (cb_page_select), state);
-
- state->ok_button = glade_xml_get_widget (state->gui, "ok_button");
- g_signal_connect (G_OBJECT (state->ok_button),
- "clicked",
- G_CALLBACK (cb_attr_dialog_dialog_ok), state);
- state->apply_button = glade_xml_get_widget (state->gui, "apply_button");
- g_signal_connect (G_OBJECT (state->apply_button),
- "clicked",
- G_CALLBACK (cb_attr_dialog_dialog_apply), state);
+ gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (state->store), ITEM_NAME, GTK_SORT_ASCENDING);
+
g_signal_connect (G_OBJECT (glade_xml_get_widget (state->gui, "close_button")),
"clicked",
G_CALLBACK (cb_attr_dialog_dialog_close), state);
- cb_widget_changed (NULL, state);
gnumeric_init_help_button (
glade_xml_get_widget (state->gui, "help_button"),
@@ -275,4 +335,7 @@ dialog_workbook_attr (WBCGtk *wbcg)
state->wb = wb_control_get_workbook (WORKBOOK_CONTROL (wbcg));
attr_dialog_impl (state);
+
+ /* Select the same page the last invocation used */
+ attr_dialog_select_page (state, attr_dialog_page);
}
diff --git a/src/dialogs/preferences.glade b/src/dialogs/preferences.glade
index d738d80..7ce854d 100644
--- a/src/dialogs/preferences.glade
+++ b/src/dialogs/preferences.glade
@@ -20,6 +20,7 @@
<widget class="GtkHBox" id="hbox1">
<property name="visible">True</property>
<property name="spacing">12</property>
+ <property name="border_width">5</property>
<child>
<widget class="GtkScrolledWindow" id="scrolledwindow1">
<property name="visible">True</property>
diff --git a/src/dialogs/workbook-attr.glade b/src/dialogs/workbook-attr.glade
index e0ee7ea..3b23cfe 100644
--- a/src/dialogs/workbook-attr.glade
+++ b/src/dialogs/workbook-attr.glade
@@ -9,169 +9,209 @@
<property name="visible">True</property>
<property name="spacing">6</property>
<child>
- <widget class="GtkNotebook" id="notebook">
+ <widget class="GtkHBox" id="hbox1">
<property name="visible">True</property>
- <property name="can_focus">True</property>
<property name="border_width">5</property>
+ <property name="spacing">12</property>
<child>
- <widget class="GtkTable" id="table1">
+ <widget class="GtkScrolledWindow" id="scrolledwindow1">
+ <property name="width_request">160</property>
<property name="visible">True</property>
- <property name="border_width">12</property>
- <property name="n_rows">3</property>
- <property name="n_columns">2</property>
- <property name="column_spacing">12</property>
- <property name="row_spacing">6</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="vscrollbar_policy">automatic</property>
+ <property name="shadow_type">in</property>
<child>
- <widget class="GtkCheckButton" id="WorkbookView::do_auto_completion">
- <property name="label" translatable="yes">A_uto Complete Text in Cells</property>
+ <widget class="GtkTreeView" id="itemlist">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="headers_visible">False</property>
+ <property name="headers_clickable">False</property>
</widget>
- <packing>
- <property name="right_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
</child>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkNotebook" id="notebook">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="show_tabs">False</property>
+ <property name="show_border">False</property>
<child>
- <widget class="GtkCheckButton" id="WorkbookView::show_notebook_tabs">
- <property name="label" translatable="yes">Notebook _Tabs for Sheets</property>
+ <widget class="GtkVBox" id="vbox2">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <child>
+ <widget class="GtkCheckButton" id="WorkbookView::show_notebook_tabs">
+ <property name="label" translatable="yes">Notebook _Tabs for Sheets</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkCheckButton" id="WorkbookView::show_horizontal_scrollbar">
+ <property name="label" translatable="yes">_Horizontal Scrollbar</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkCheckButton" id="WorkbookView::show_vertical_scrollbar">
+ <property name="label" translatable="yes">_Vertical Scrollbar</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
</widget>
- <packing>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
</child>
<child>
- <widget class="GtkCheckButton" id="WorkbookView::show_horizontal_scrollbar">
- <property name="label" translatable="yes">_Horizontal Scrollbar</property>
+ <widget class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="label" translatable="yes">View</property>
+ <property name="justify">center</property>
</widget>
<packing>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="y_options"></property>
+ <property name="tab_fill">False</property>
+ <property name="type">tab</property>
</packing>
</child>
<child>
- <widget class="GtkCheckButton" id="WorkbookView::show_vertical_scrollbar">
- <property name="label" translatable="yes">_Vertical Scrollbar</property>
+ <widget class="GtkTable" id="table2">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="n_rows">2</property>
+ <property name="n_columns">2</property>
+ <property name="column_spacing">12</property>
+ <property name="row_spacing">6</property>
+ <child>
+ <widget class="GtkCheckButton" id="WorkbookView::workbook_protected">
+ <property name="label" translatable="yes">_Protect Workbook</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="right_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkEntry" id="password_entry">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip" translatable="yes">Unimplementented</property>
+ <property name="visibility">False</property>
+ <property name="invisible_char">•</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label7">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="yalign">0</property>
+ <property name="label" translatable="yes">Pa_ssword:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">password_entry</property>
+ </widget>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="y_options"></property>
+ <property name="position">1</property>
</packing>
</child>
- </widget>
- </child>
- <child>
- <widget class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">View</property>
- <property name="justify">center</property>
- </widget>
- <packing>
- <property name="tab_fill">False</property>
- <property name="type">tab</property>
- </packing>
- </child>
- <child>
- <widget class="GtkTable" id="table2">
- <property name="visible">True</property>
- <property name="border_width">12</property>
- <property name="n_rows">2</property>
- <property name="n_columns">2</property>
- <property name="column_spacing">12</property>
- <property name="row_spacing">6</property>
<child>
- <widget class="GtkCheckButton" id="WorkbookView::workbook_protected">
- <property name="label" translatable="yes">_Protect Workbook</property>
+ <widget class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="label" translatable="yes">Protection</property>
+ <property name="justify">center</property>
</widget>
<packing>
- <property name="right_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
+ <property name="position">1</property>
+ <property name="tab_fill">False</property>
+ <property name="type">tab</property>
</packing>
</child>
<child>
- <widget class="GtkEntry" id="password_entry">
+ <widget class="GtkVBox" id="vbox1">
<property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="tooltip" translatable="yes">Unimplementented</property>
- <property name="visibility">False</property>
+ <child>
+ <widget class="GtkCheckButton" id="WorkbookView::do_auto_completion">
+ <property name="label" translatable="yes">A_uto Complete Text in Cells</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="y_options"></property>
+ <property name="position">2</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label7">
+ <widget class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="yalign">0</property>
- <property name="label" translatable="yes">Pa_ssword:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">password_entry</property>
+ <property name="label" translatable="yes">page 3</property>
</widget>
<packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
+ <property name="position">2</property>
+ <property name="tab_fill">False</property>
+ <property name="type">tab</property>
</packing>
</child>
</widget>
<packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Protection</property>
- <property name="justify">center</property>
- </widget>
- <packing>
- <property name="position">1</property>
- <property name="tab_fill">False</property>
- <property name="type">tab</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
</packing>
</child>
</widget>
<packing>
+ <property name="padding">1</property>
<property name="position">1</property>
</packing>
</child>
@@ -194,22 +234,7 @@
<property name="position">0</property>
</packing>
</child>
- <child>
- <widget class="GtkButton" id="apply_button">
- <property name="label">gtk-apply</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="receives_default">False</property>
- <property name="use_stock">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
+ <child>
<widget class="GtkButton" id="close_button">
<property name="label">gtk-close</property>
<property name="visible">True</property>
@@ -224,22 +249,6 @@
<property name="position">2</property>
</packing>
</child>
- <child>
- <widget class="GtkButton" id="ok_button">
- <property name="label">gtk-ok</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">False</property>
- <property name="use_stock">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">3</property>
- </packing>
- </child>
</widget>
<packing>
<property name="expand">False</property>
diff --git a/src/wbc-gtk-actions.c b/src/wbc-gtk-actions.c
index 305ce24..e3c8c8a 100644
--- a/src/wbc-gtk-actions.c
+++ b/src/wbc-gtk-actions.c
@@ -2372,7 +2372,7 @@ static GtkToggleActionEntry const toggle_actions[] = {
{ "SheetDisplayFormulas", NULL, N_("Display _Formulas"),
"<control>quoteleft", N_("Display the value of a formula or the formula itself"),
G_CALLBACK (cb_sheet_pref_display_formulas) },
- { "SheetHideZeros", NULL, N_("Hide _Zeros"),
+ { "SheetHideZeros", NULL, N_("_Hide Zeros"),
NULL, N_("Toggle whether or not to display zeros as blanks"),
G_CALLBACK (cb_sheet_pref_hide_zero) },
{ "SheetHideGridlines", NULL, N_("Hide _Gridlines"),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]