[gnumeric] AutoFormat: avoid GtkUIManager.
- From: Morten Welinder <mortenw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnumeric] AutoFormat: avoid GtkUIManager.
- Date: Sun, 4 May 2014 11:56:49 +0000 (UTC)
commit 8ca0af56688d92fccb5740f10fcff55d25e57c79
Author: Morten Welinder <terra gnome org>
Date: Sun May 4 07:56:07 2014 -0400
AutoFormat: avoid GtkUIManager.
NEWS | 3 +
src/dialogs/ChangeLog | 5 ++
src/dialogs/autoformat.ui | 147 +++++++++++++++++++++++++++++++++++++--
src/dialogs/dialog-autoformat.c | 100 +++++---------------------
4 files changed, 167 insertions(+), 88 deletions(-)
---
diff --git a/NEWS b/NEWS
index cda64a2..dd2590a 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,8 @@
Gnumeric 1.12.16
+Morten:
+ * Start moving off GtkUIManager.
+
--------------------------------------------------------------------------
Gnumeric 1.12.15
diff --git a/src/dialogs/ChangeLog b/src/dialogs/ChangeLog
index 2026528..e243927 100644
--- a/src/dialogs/ChangeLog
+++ b/src/dialogs/ChangeLog
@@ -1,3 +1,8 @@
+2014-05-04 Morten Welinder <terra gnome org>
+
+ * dialog-autoformat.c (dialog_autoformat): Do the full dialog in
+ GtkBuilder instead of doing half in GtkUIManager.
+
2014-04-30 Morten Welinder <terra gnome org>
* Release 1.12.15
diff --git a/src/dialogs/autoformat.ui b/src/dialogs/autoformat.ui
index b10d103..8d96161 100644
--- a/src/dialogs/autoformat.ui
+++ b/src/dialogs/autoformat.ui
@@ -21,12 +21,10 @@
<child>
<object class="GtkButton" id="format_cancel">
<property name="label">gtk-cancel</property>
- <property name="use_action_appearance">False</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_action_appearance">False</property>
<property name="use_stock">True</property>
</object>
<packing>
@@ -38,13 +36,11 @@
<child>
<object class="GtkButton" id="format_ok">
<property name="label">gtk-ok</property>
- <property name="use_action_appearance">False</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_action_appearance">False</property>
<property name="use_stock">True</property>
</object>
<packing>
@@ -56,12 +52,10 @@
<child>
<object class="GtkButton" id="help_button">
<property name="label">gtk-help</property>
- <property name="use_action_appearance">False</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_action_appearance">False</property>
<property name="use_stock">True</property>
</object>
<packing>
@@ -257,7 +251,146 @@
</packing>
</child>
<child>
- <placeholder/>
+ <object class="GtkMenuBar" id="menubar1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuitem1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_Settings</property>
+ <property name="use_underline">True</property>
+ <child type="submenu">
+ <object class="GtkMenu" id="menu1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkCheckMenuItem" id="number_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Apply _Number Formats</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="border_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Apply _Borders</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="font_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Apply _Fonts</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="pattern_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Apply _Patterns</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="alignment_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Apply _Alignment</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="menuitem2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="edges_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_Edges</property>
+ <property name="use_underline">True</property>
+ <child type="submenu">
+ <object class="GtkMenu" id="edges_menu">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkCheckMenuItem" id="left_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_Left</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="right_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_Right</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="top_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_Top</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="bottom_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_Bottom</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="menuitem3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="gridlines_menuitem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_Show Gridlines</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
</child>
</object>
</child>
diff --git a/src/dialogs/dialog-autoformat.c b/src/dialogs/dialog-autoformat.c
index 08f698b..69e50a6 100644
--- a/src/dialogs/dialog-autoformat.c
+++ b/src/dialogs/dialog-autoformat.c
@@ -485,58 +485,6 @@ cb_gridlines_item_toggled (G_GNUC_UNUSED GtkCheckMenuItem *item,
* MAIN
********************************************************************************/
-/* Menus */
-static GtkActionEntry entries[] = {
- { "settings", NULL, N_("_Settings"), NULL, NULL, NULL },
- { "edges", NULL, N_("_Edges"), NULL, NULL, NULL }
-};
-
-/* Toggle items */
-static GtkToggleActionEntry toggle_entries[] = {
- { "number", NULL, N_("Apply _Number Formats"), NULL,
- NULL, G_CALLBACK (cb_check_item_toggled), TRUE},
- { "border", NULL, N_("Apply _Borders"), NULL,
- NULL, G_CALLBACK (cb_check_item_toggled), TRUE },
- { "font", NULL, N_("Apply _Fonts"), NULL,
- NULL, G_CALLBACK (cb_check_item_toggled), TRUE },
- { "patterns", NULL, N_("Apply _Patterns"), NULL,
- NULL, G_CALLBACK (cb_check_item_toggled), TRUE },
- { "alignment", NULL, N_("Apply _Alignment"), NULL,
- NULL, G_CALLBACK (cb_check_item_toggled), TRUE },
- { "left", NULL, N_("_Left"), NULL,
- NULL, G_CALLBACK (cb_check_item_toggled), TRUE },
- { "right", NULL, N_("_Right"), NULL,
- NULL, G_CALLBACK (cb_check_item_toggled), TRUE },
- { "top", NULL, N_("_Top"), NULL,
- NULL, G_CALLBACK (cb_check_item_toggled), TRUE },
- { "bottom", NULL, N_("_Bottom"), NULL,
- NULL, G_CALLBACK (cb_check_item_toggled), TRUE },
- { "gridlines", NULL, N_("_Show Gridlines"), NULL,
- NULL, G_CALLBACK (cb_gridlines_item_toggled), FALSE }
-};
-
-static const char *ui_description =
-"<ui>"
-" <menubar name='bar'>"
-" <menu action='settings'>"
-" <menuitem action='number'/>"
-" <menuitem action='border'/>"
-" <menuitem action='font'/>"
-" <menuitem action='patterns'/>"
-" <menuitem action='alignment'/>"
-" <separator name='settings-sep1'/>"
-" <menu action='edges'>"
-" <menuitem action='left'/>"
-" <menuitem action='right'/>"
-" <menuitem action='top'/>"
-" <menuitem action='bottom'/>"
-" </menu>"
-" <separator name='settings-sep2'/>"
-" <menuitem action='gridlines'/>"
-" </menu>"
-" </menubar>"
-"</ui>";
-
static gboolean
cb_canvas_focus (GtkWidget *canvas,
G_GNUC_UNUSED GtkDirectionType direction,
@@ -564,8 +512,6 @@ dialog_autoformat (WBCGtk *wbcg)
GtkBuilder *gui;
AutoFormatState *state;
int i;
- GtkUIManager *ui_manager;
- GtkActionGroup *action_group;
gui = gnm_gtk_builder_load ("autoformat.ui", NULL, GO_CMD_CONTEXT (wbcg));
if (gui == NULL)
@@ -600,32 +546,25 @@ dialog_autoformat (WBCGtk *wbcg)
state->ok = GTK_BUTTON (go_gtk_builder_get_widget (gui, "format_ok"));
state->cancel = GTK_BUTTON (go_gtk_builder_get_widget (gui, "format_cancel"));
- action_group = gtk_action_group_new ("settings-actions");
- gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE);
- gtk_action_group_add_actions (action_group, entries, G_N_ELEMENTS (entries), state);
- gtk_action_group_add_toggle_actions (action_group, toggle_entries, G_N_ELEMENTS (toggle_entries),
state);
-
- ui_manager = gtk_ui_manager_new ();
- gtk_ui_manager_insert_action_group (ui_manager, action_group, 0);
- g_object_unref (action_group);
- gtk_ui_manager_add_ui_from_string (ui_manager, ui_description, -1, NULL);
- state->number = GTK_CHECK_MENU_ITEM (gtk_ui_manager_get_widget (ui_manager,
"/bar/settings/number"));
- state->border = GTK_CHECK_MENU_ITEM (gtk_ui_manager_get_widget (ui_manager,
"/bar/settings/border"));
- state->font = GTK_CHECK_MENU_ITEM (gtk_ui_manager_get_widget (ui_manager,
"/bar/settings/font"));
- state->patterns = GTK_CHECK_MENU_ITEM (gtk_ui_manager_get_widget (ui_manager,
"/bar/settings/patterns"));
- state->alignment = GTK_CHECK_MENU_ITEM (gtk_ui_manager_get_widget (ui_manager,
"/bar/settings/alignment"));
-
- state->edges.left = GTK_CHECK_MENU_ITEM (gtk_ui_manager_get_widget (ui_manager,
"/bar/settings/edges/left"));
- state->edges.right = GTK_CHECK_MENU_ITEM (gtk_ui_manager_get_widget (ui_manager,
"/bar/settings/edges/right"));
- state->edges.top = GTK_CHECK_MENU_ITEM (gtk_ui_manager_get_widget (ui_manager,
"/bar/settings/edges/top"));
- state->edges.bottom = GTK_CHECK_MENU_ITEM (gtk_ui_manager_get_widget (ui_manager,
"/bar/settings/edges/bottom"));
-
- state->gridlines = GTK_CHECK_MENU_ITEM (gtk_ui_manager_get_widget (ui_manager,
"/bar/settings/gridlines"));
-
- gtk_grid_attach (GTK_GRID (go_gtk_builder_get_widget (gui, "preview-grid")),
- gtk_ui_manager_get_widget (ui_manager, "/bar"),
- 2, 0, 1, 1);
- g_object_set (gtk_ui_manager_get_widget (ui_manager, "/bar"), "hexpand", TRUE, NULL);
+#define CHECK_ITEM(v_, w_,h_) do { \
+ GtkWidget *w = go_gtk_builder_get_widget (gui, (w_)); \
+ state->v_ = GTK_CHECK_MENU_ITEM (w); \
+ g_signal_connect (w, "activate", G_CALLBACK (h_), state); \
+} while (0)
+
+ CHECK_ITEM (number, "number_menuitem", cb_check_item_toggled);
+ CHECK_ITEM (border, "border_menuitem", cb_check_item_toggled);
+ CHECK_ITEM (font, "font_menuitem", cb_check_item_toggled);
+ CHECK_ITEM (patterns, "pattern_menuitem", cb_check_item_toggled);
+ CHECK_ITEM (alignment, "alignment_menuitem", cb_check_item_toggled);
+ CHECK_ITEM (edges.left, "left_menuitem", cb_check_item_toggled);
+ CHECK_ITEM (edges.right, "right_menuitem", cb_check_item_toggled);
+ CHECK_ITEM (edges.top, "top_menuitem", cb_check_item_toggled);
+ CHECK_ITEM (edges.bottom, "bottom_menuitem", cb_check_item_toggled);
+ CHECK_ITEM (gridlines, "gridlines_menuitem", cb_gridlines_item_toggled);
+
+#undef CHECK_ITEM
+
for (i = 0; i < NUM_PREVIEWS; i++) {
char *name;
@@ -719,5 +658,4 @@ dialog_autoformat (WBCGtk *wbcg)
/* not show all or the scrollbars will appear */
gtk_widget_show (GTK_WIDGET (state->dialog));
g_object_unref (gui);
- g_object_unref (ui_manager);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]