[glabels] Always show images for object menuitems
- From: Jim Evins <jimevins src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [glabels] Always show images for object menuitems
- Date: Sun, 13 Dec 2009 17:27:12 +0000 (UTC)
commit be84e5a72c2ffc412fcf7905115a78b8faa6820b
Author: Jim Evins <evins snaught com>
Date: Sat Dec 12 10:07:08 2009 -0500
Always show images for object menuitems
Because of the visual nature of the actions of these menuitems, the visual
cues provided by these icons should help improve the ability to find the
correct menuitem -- I know it does for me ( I don't always know my left
from my right :-))
src/ui.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 75 insertions(+), 0 deletions(-)
---
diff --git a/src/ui.c b/src/ui.c
index f62231c..a76b45c 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -61,6 +61,11 @@ static void set_app_drawing_toolbar_style (GtkUIManager *ui);
static void set_view_style (GtkUIManager *ui);
+static void descend_menu_set_always_show_image (GtkMenu *menu);
+
+static void set_additional_properties (GtkUIManager *ui);
+
+
static void connect_proxy_cb (GtkUIManager *ui,
GtkAction *action,
GtkWidget *proxy,
@@ -774,6 +779,8 @@ gl_ui_new (glWindow *window)
recent_menu);
+ set_additional_properties (ui);
+
gl_ui_util_set_verb_list_sensitive (ui, doc_verbs, FALSE);
gl_ui_util_set_verb_list_sensitive (ui, paste_verbs, FALSE);
@@ -1056,6 +1063,74 @@ set_view_style (GtkUIManager *ui)
/*---------------------------------------------------------------------------*/
+/** PRIVATE. Descend menu, set "always-show-image" for all image menu items.*/
+/*---------------------------------------------------------------------------*/
+static void
+descend_menu_set_always_show_image (GtkMenu *menu)
+{
+ GList *children, *p;
+ GtkWidget *submenu;
+ GtkWidget *menu_item;
+
+ children = gtk_container_get_children (GTK_CONTAINER (menu));
+
+ for ( p = children; p != NULL; p = p->next )
+ {
+ menu_item = GTK_WIDGET (p->data);
+
+ submenu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (menu_item));
+ if ( submenu )
+ {
+ descend_menu_set_always_show_image (GTK_MENU (submenu));
+ }
+ else if ( GTK_IS_IMAGE_MENU_ITEM (menu_item) )
+ {
+ g_object_set (menu_item, "always-show-image", TRUE, NULL);
+ }
+ }
+}
+
+
+/*---------------------------------------------------------------------------*/
+/** PRIVATE. Set additional properties. */
+/*---------------------------------------------------------------------------*/
+static void
+set_additional_properties (GtkUIManager *ui)
+{
+ GtkWidget *menu;
+ GtkWidget *menu_item;
+
+ /*
+ * Set "always-show-image" property for all Object menuitems. This is
+ * necessary because, as of Gtk-2.18, images are not shown by default
+ * and you really need these visual cues for these menu items.
+ */
+ menu_item = gtk_ui_manager_get_widget (ui, "/MenuBar/ObjectsMenu/");
+ menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (menu_item));
+ descend_menu_set_always_show_image (GTK_MENU (menu));
+
+ menu_item = gtk_ui_manager_get_widget (ui, "/MenuBar/ObjectsMenu/ObjectsMergeProperties");
+ g_object_set (menu_item, "always-show-image", FALSE, NULL); /* Leave this one out. */
+
+ menu_item = gtk_ui_manager_get_widget (ui, "/ContextMenu/ObjectsOrderMenu/");
+ menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (menu_item));
+ descend_menu_set_always_show_image (GTK_MENU (menu));
+
+ menu_item = gtk_ui_manager_get_widget (ui, "/ContextMenu/ObjectsRotateFlipMenu/");
+ menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (menu_item));
+ descend_menu_set_always_show_image (GTK_MENU (menu));
+
+ menu_item = gtk_ui_manager_get_widget (ui, "/ContextMenu/ObjectsAlignHorizMenu/");
+ menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (menu_item));
+ descend_menu_set_always_show_image (GTK_MENU (menu));
+
+ menu_item = gtk_ui_manager_get_widget (ui, "/ContextMenu/ObjectsAlignVertMenu/");
+ menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (menu_item));
+ descend_menu_set_always_show_image (GTK_MENU (menu));
+}
+
+
+/*---------------------------------------------------------------------------*/
/** PRIVATE. Connect proxy callback. */
/*---------------------------------------------------------------------------*/
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]