From 23b8dc273347c6782667869e3de8f1dff059937d Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 17 Mar 2010 16:24:00 -0500 Subject: Building an icon based on teh icon props --- src/indicator-session.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/indicator-session.c') diff --git a/src/indicator-session.c b/src/indicator-session.c index c21579a..e3444c0 100644 --- a/src/indicator-session.c +++ b/src/indicator-session.c @@ -28,6 +28,7 @@ with this program. If not, see . #include #include #include +#include #include #include @@ -223,6 +224,23 @@ new_user_item (DbusmenuMenuitem * newitem, DbusmenuMenuitem * parent, DbusmenuCl GtkMenuItem * gmi = GTK_MENU_ITEM(gtk_menu_item_new()); GtkWidget * hbox = gtk_hbox_new(FALSE, 0); + GtkWidget * usericon = NULL; + const gchar * icon_name = dbusmenu_menuitem_property_get(newitem, USER_ITEM_PROP_ICON); + if (icon_name != NULL && icon_name[0] != '\0') { + if (g_strcmp0(icon_name, USER_ITEM_ICON_DEFAULT) == 0) { + GIcon * gicon = g_themed_icon_new_with_default_fallbacks("stock-user-panel"); + usericon = gtk_image_new_from_gicon(gicon, GTK_ICON_SIZE_MENU); + g_object_unref(gicon); + } else { + usericon = gtk_image_new_from_file(icon_name); + } + } + if (usericon != NULL) { + gtk_misc_set_alignment(GTK_MISC(usericon), 0.0, 0.5); + gtk_box_pack_start(GTK_BOX(hbox), usericon, FALSE, FALSE, 0); + gtk_widget_show(usericon); + } + GtkWidget * label = gtk_label_new(dbusmenu_menuitem_property_get(newitem, USER_ITEM_PROP_NAME)); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0); -- cgit v1.2.3 From 2f000c8501f73eed31b2441e83a434f6f4564c18 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 17 Mar 2010 16:33:05 -0500 Subject: Using proper icon. --- src/indicator-session.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/indicator-session.c') diff --git a/src/indicator-session.c b/src/indicator-session.c index e3444c0..11231cd 100644 --- a/src/indicator-session.c +++ b/src/indicator-session.c @@ -228,7 +228,7 @@ new_user_item (DbusmenuMenuitem * newitem, DbusmenuMenuitem * parent, DbusmenuCl const gchar * icon_name = dbusmenu_menuitem_property_get(newitem, USER_ITEM_PROP_ICON); if (icon_name != NULL && icon_name[0] != '\0') { if (g_strcmp0(icon_name, USER_ITEM_ICON_DEFAULT) == 0) { - GIcon * gicon = g_themed_icon_new_with_default_fallbacks("stock-user-panel"); + GIcon * gicon = g_themed_icon_new_with_default_fallbacks("stock_person-panel"); usericon = gtk_image_new_from_gicon(gicon, GTK_ICON_SIZE_MENU); g_object_unref(gicon); } else { -- cgit v1.2.3 From 4e4246d795baea9a286914e870eca7690e3aa5de Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 17 Mar 2010 16:36:53 -0500 Subject: Nice debugging message. --- src/indicator-session.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src/indicator-session.c') diff --git a/src/indicator-session.c b/src/indicator-session.c index 11231cd..2ffc2e3 100644 --- a/src/indicator-session.c +++ b/src/indicator-session.c @@ -232,6 +232,7 @@ new_user_item (DbusmenuMenuitem * newitem, DbusmenuMenuitem * parent, DbusmenuCl usericon = gtk_image_new_from_gicon(gicon, GTK_ICON_SIZE_MENU); g_object_unref(gicon); } else { + g_debug("Using user icon for '%s' from file: %s", dbusmenu_menuitem_property_get(newitem, USER_ITEM_PROP_NAME), icon_name); usericon = gtk_image_new_from_file(icon_name); } } -- cgit v1.2.3 From e94cf5b18ec45024d70a71096fd5e8aeaee6d988 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 17 Mar 2010 16:38:31 -0500 Subject: Check to ensure the file exists. --- src/indicator-session.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/indicator-session.c') diff --git a/src/indicator-session.c b/src/indicator-session.c index 2ffc2e3..2be1e12 100644 --- a/src/indicator-session.c +++ b/src/indicator-session.c @@ -227,7 +227,7 @@ new_user_item (DbusmenuMenuitem * newitem, DbusmenuMenuitem * parent, DbusmenuCl GtkWidget * usericon = NULL; const gchar * icon_name = dbusmenu_menuitem_property_get(newitem, USER_ITEM_PROP_ICON); if (icon_name != NULL && icon_name[0] != '\0') { - if (g_strcmp0(icon_name, USER_ITEM_ICON_DEFAULT) == 0) { + if (g_strcmp0(icon_name, USER_ITEM_ICON_DEFAULT) == 0 || !g_file_test(icon_name, G_FILE_TEST_EXISTS)) { GIcon * gicon = g_themed_icon_new_with_default_fallbacks("stock_person-panel"); usericon = gtk_image_new_from_gicon(gicon, GTK_ICON_SIZE_MENU); g_object_unref(gicon); -- cgit v1.2.3 From d2e52c5334e119b40e12c9f3c03593737ef7bac8 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 17 Mar 2010 16:50:13 -0500 Subject: Moving debug message --- src/indicator-session.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/indicator-session.c') diff --git a/src/indicator-session.c b/src/indicator-session.c index 2be1e12..4e42567 100644 --- a/src/indicator-session.c +++ b/src/indicator-session.c @@ -226,13 +226,13 @@ new_user_item (DbusmenuMenuitem * newitem, DbusmenuMenuitem * parent, DbusmenuCl GtkWidget * usericon = NULL; const gchar * icon_name = dbusmenu_menuitem_property_get(newitem, USER_ITEM_PROP_ICON); + g_debug("Using user icon for '%s' from file: %s", dbusmenu_menuitem_property_get(newitem, USER_ITEM_PROP_NAME), icon_name); if (icon_name != NULL && icon_name[0] != '\0') { if (g_strcmp0(icon_name, USER_ITEM_ICON_DEFAULT) == 0 || !g_file_test(icon_name, G_FILE_TEST_EXISTS)) { GIcon * gicon = g_themed_icon_new_with_default_fallbacks("stock_person-panel"); usericon = gtk_image_new_from_gicon(gicon, GTK_ICON_SIZE_MENU); g_object_unref(gicon); } else { - g_debug("Using user icon for '%s' from file: %s", dbusmenu_menuitem_property_get(newitem, USER_ITEM_PROP_NAME), icon_name); usericon = gtk_image_new_from_file(icon_name); } } -- cgit v1.2.3 From c3d3a6b0a90dc9b34ea34951174a4171c1b4fd09 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 17 Mar 2010 16:55:44 -0500 Subject: Getting the horizontal padding for a nice spacing between widgets. --- src/indicator-session.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/indicator-session.c') diff --git a/src/indicator-session.c b/src/indicator-session.c index 4e42567..3c141c4 100644 --- a/src/indicator-session.c +++ b/src/indicator-session.c @@ -222,7 +222,9 @@ static gboolean new_user_item (DbusmenuMenuitem * newitem, DbusmenuMenuitem * parent, DbusmenuClient * client) { GtkMenuItem * gmi = GTK_MENU_ITEM(gtk_menu_item_new()); - GtkWidget * hbox = gtk_hbox_new(FALSE, 0); + gint padding = 0; + gtk_widget_style_get(GTK_WIDGET(gmi), "horizontal-padding", &padding, NULL); + GtkWidget * hbox = gtk_hbox_new(FALSE, padding); GtkWidget * usericon = NULL; const gchar * icon_name = dbusmenu_menuitem_property_get(newitem, USER_ITEM_PROP_ICON); -- cgit v1.2.3