From 95ecb480de8da2e06b07be2313537093bb47069a Mon Sep 17 00:00:00 2001 From: Cody Russell Date: Mon, 7 Dec 2009 13:31:36 -0600 Subject: Add 'activate' signal support --- src/libappindicator/app-indicator.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/libappindicator') diff --git a/src/libappindicator/app-indicator.c b/src/libappindicator/app-indicator.c index f61723d..bd72499 100644 --- a/src/libappindicator/app-indicator.c +++ b/src/libappindicator/app-indicator.c @@ -632,6 +632,14 @@ app_indicator_set_icon (AppIndicator *self, const gchar *icon_name) } } +static void +activate_menuitem (DbusmenuMenuitem *mi, gpointer user_data) +{ + GtkWidget *widget = (GtkWidget *)user_data; + + gtk_menu_item_activate (GTK_MENU_ITEM (widget)); +} + static void container_iterate (GtkWidget *widget, gpointer data) @@ -643,6 +651,9 @@ container_iterate (GtkWidget *widget, dbusmenu_menuitem_property_set (child, DBUSMENU_MENUITEM_PROP_LABEL, gtk_menu_item_get_label (GTK_MENU_ITEM (widget))); + g_signal_connect (G_OBJECT(child), + DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, + G_CALLBACK (activate_menuitem), widget); dbusmenu_menuitem_child_append (root, child); } -- cgit v1.2.3 From 284188bb81f79d5fc98b01206a129ab6ccfc8f13 Mon Sep 17 00:00:00 2001 From: Cody Russell Date: Tue, 8 Dec 2009 16:34:01 -0600 Subject: Beefed up and stuff. --- src/libappindicator/app-indicator.c | 65 ++++++++++++++++++++++++++++++++++--- 1 file changed, 61 insertions(+), 4 deletions(-) (limited to 'src/libappindicator') diff --git a/src/libappindicator/app-indicator.c b/src/libappindicator/app-indicator.c index bd72499..6f4a6fd 100644 --- a/src/libappindicator/app-indicator.c +++ b/src/libappindicator/app-indicator.c @@ -640,18 +640,75 @@ activate_menuitem (DbusmenuMenuitem *mi, gpointer user_data) gtk_menu_item_activate (GTK_MENU_ITEM (widget)); } +static void +menuitem_iterate (GtkWidget *widget, + gpointer data) +{ + if (GTK_IS_LABEL (widget)) + { + DbusmenuMenuitem *child = (DbusmenuMenuitem *)data; + + dbusmenu_menuitem_property_set (child, + DBUSMENU_MENUITEM_PROP_LABEL, + gtk_label_get_text (GTK_LABEL (widget))); + } +} + static void container_iterate (GtkWidget *widget, gpointer data) { DbusmenuMenuitem *root = (DbusmenuMenuitem *)data; DbusmenuMenuitem *child; + const gchar *label; + gboolean label_set = FALSE; + + label = gtk_menu_item_get_label (GTK_MENU_ITEM (widget)); child = dbusmenu_menuitem_new (); - dbusmenu_menuitem_property_set (child, - DBUSMENU_MENUITEM_PROP_LABEL, - gtk_menu_item_get_label (GTK_MENU_ITEM (widget))); - g_signal_connect (G_OBJECT(child), + + if (GTK_IS_IMAGE_MENU_ITEM (widget)) + { + GtkWidget *image = gtk_image_menu_item_get_image (GTK_IMAGE_MENU_ITEM (widget)); + + if (gtk_image_get_storage_type (GTK_IMAGE (image)) == GTK_IMAGE_STOCK) + { + GtkStockItem stock; + + gtk_stock_lookup (GTK_IMAGE (image)->data.stock.stock_id, &stock); + + dbusmenu_menuitem_property_set (child, + DBUSMENU_MENUITEM_PROP_ICON, + GTK_IMAGE (image)->data.stock.stock_id); + + if (stock.label != NULL) + { + dbusmenu_menuitem_property_set (child, + DBUSMENU_MENUITEM_PROP_LABEL, + stock.label); + label_set = TRUE; + } + } + } + + if (!label_set) + { + if (label != NULL) + { + dbusmenu_menuitem_property_set (child, + DBUSMENU_MENUITEM_PROP_LABEL, + label); + } + else + { + /* find label child widget */ + gtk_container_forall (GTK_CONTAINER (widget), + menuitem_iterate, + child); + } + } + + g_signal_connect (G_OBJECT (child), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK (activate_menuitem), widget); dbusmenu_menuitem_child_append (root, child); -- cgit v1.2.3 From 3f16792d25e92a37e12e644ad29e40c454d310de Mon Sep 17 00:00:00 2001 From: Cody Russell Date: Wed, 9 Dec 2009 10:30:50 -0600 Subject: pkgconfig file --- src/libappindicator/appindicator-0.1.pc.in | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/libappindicator/appindicator-0.1.pc.in (limited to 'src/libappindicator') diff --git a/src/libappindicator/appindicator-0.1.pc.in b/src/libappindicator/appindicator-0.1.pc.in new file mode 100644 index 0000000..dc7b12a --- /dev/null +++ b/src/libappindicator/appindicator-0.1.pc.in @@ -0,0 +1,14 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +bindir=@bindir@ +includedir=@includedir@ + +Cflags: -I${includedir}/libappindicator-0.1 +Requires: indicator dbusmenu-gtk gtk+-2.0 +Libs: -L${libdir} -ldbusmenu-glib + +Name: appindicator-0.1 +Description: Application indicators +Version: @VERSION@ + -- cgit v1.2.3 From 02ab21b5f931e12103420893137819688e607154 Mon Sep 17 00:00:00 2001 From: Cody Russell Date: Wed, 9 Dec 2009 11:52:12 -0600 Subject: pkgconfig Libs and Requires fixes --- src/libappindicator/appindicator-0.1.pc.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/libappindicator') diff --git a/src/libappindicator/appindicator-0.1.pc.in b/src/libappindicator/appindicator-0.1.pc.in index dc7b12a..b80fded 100644 --- a/src/libappindicator/appindicator-0.1.pc.in +++ b/src/libappindicator/appindicator-0.1.pc.in @@ -5,8 +5,8 @@ bindir=@bindir@ includedir=@includedir@ Cflags: -I${includedir}/libappindicator-0.1 -Requires: indicator dbusmenu-gtk gtk+-2.0 -Libs: -L${libdir} -ldbusmenu-glib +Requires: dbusmenu-glib gtk+-2.0 +Libs: -L${libdir} -lappindicator Name: appindicator-0.1 Description: Application indicators -- cgit v1.2.3