diff options
author | Ted Gould <ted@gould.cx> | 2010-01-12 09:08:28 -0600 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2010-01-12 09:08:28 -0600 |
commit | 44efa306148d68c492fd0ad7879420357c440ae8 (patch) | |
tree | 1f53a13545e55d1d83349a173c44a3c5e3b5e051 | |
parent | 06145a029008605b97b10a724f39d3a7769cfb1f (diff) | |
parent | abd41dd91774e0755c226a3c960aa3b31f56cf65 (diff) | |
download | ayatana-indicator-application-44efa306148d68c492fd0ad7879420357c440ae8.tar.gz ayatana-indicator-application-44efa306148d68c492fd0ad7879420357c440ae8.tar.bz2 ayatana-indicator-application-44efa306148d68c492fd0ad7879420357c440ae8.zip |
* Upstream release 0.0.8
* Mirror icon changes over dbus
-rw-r--r-- | configure.ac | 4 | ||||
-rw-r--r-- | debian/changelog | 26 | ||||
-rw-r--r-- | example/simple-client.c | 12 | ||||
-rw-r--r-- | src/libappindicator/app-indicator.c | 89 |
4 files changed, 91 insertions, 40 deletions
diff --git a/configure.ac b/configure.ac index 4bc18b2..713f40e 100644 --- a/configure.ac +++ b/configure.ac @@ -1,11 +1,11 @@ -AC_INIT(indicator-application, 0.0.7, ted@canonical.com) +AC_INIT(indicator-application, 0.0.8, ted@canonical.com) AC_COPYRIGHT([Copyright 2009 Canonical]) AC_PREREQ(2.53) AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(indicator-application, 0.0.7) +AM_INIT_AUTOMAKE(indicator-application, 0.0.8) AM_MAINTAINER_MODE diff --git a/debian/changelog b/debian/changelog index 7e43e74..1f00894 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,30 +1,12 @@ -indicator-application (0.0.7-0ubuntu1~ppa5) karmic; urgency=low +indicator-application (0.0.8-0ubuntu1~ppa1) UNRELEASED; urgency=low - * Upstream update - * Distcheck fixes to tests and cleanfiles - - -- Ted Gould <ted@ubuntu.com> Tue, 12 Jan 2010 00:11:02 -0600 - -indicator-application (0.0.7-0ubuntu1~ppa4) karmic; urgency=low - - * Upstream update + * Upstream release 0.0.8 + * Mirror icon changes over dbus * Better default object names. - - -- Ted Gould <ted@ubuntu.com> Mon, 11 Jan 2010 23:50:08 -0600 - -indicator-application (0.0.7-0ubuntu1~ppa3) karmic; urgency=low - - * Upstream update * Fixes for the mono binding properties - - -- Ted Gould <ted@ubuntu.com> Mon, 11 Jan 2010 23:46:36 -0600 - -indicator-application (0.0.7-0ubuntu1~ppa2) karmic; urgency=low - - * Upstream Merge * Sensitivity to label changes - -- Ted Gould <ted@ubuntu.com> Mon, 11 Jan 2010 23:43:51 -0600 + -- Ted Gould <ted@ubuntu.com> Tue, 12 Jan 2010 09:04:57 -0600 indicator-application (0.0.7-0ubuntu1~ppa1) karmic; urgency=low diff --git a/example/simple-client.c b/example/simple-client.c index b1d9fc2..8ff3827 100644 --- a/example/simple-client.c +++ b/example/simple-client.c @@ -43,6 +43,13 @@ toggle_sensitivity_cb (GtkWidget *widget, gpointer data) gtk_widget_set_sensitive (target, !GTK_WIDGET_IS_SENSITIVE (target)); } +static void +image_clicked_cb (GtkWidget *widget, gpointer data) +{ + gtk_image_set_from_stock (GTK_IMAGE (GTK_IMAGE_MENU_ITEM (widget)->image), + GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU); +} + int main (int argc, char ** argv) { @@ -82,6 +89,11 @@ main (int argc, char ** argv) G_CALLBACK (toggle_sensitivity_cb), item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), toggle_item); + item = gtk_image_menu_item_new_from_stock (GTK_STOCK_NEW, NULL); + g_signal_connect (item, "activate", + G_CALLBACK (image_clicked_cb), NULL); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + app_indicator_set_menu (ci, GTK_MENU (menu)); mainloop = g_main_loop_new(NULL, FALSE); diff --git a/src/libappindicator/app-indicator.c b/src/libappindicator/app-indicator.c index 0767734..84d9ebd 100644 --- a/src/libappindicator/app-indicator.c +++ b/src/libappindicator/app-indicator.c @@ -744,6 +744,64 @@ menuitem_iterate (GtkWidget *widget, } static void +update_icon_name (DbusmenuMenuitem *menuitem, + GtkImage *image) +{ + if (gtk_image_get_storage_type (image) != GTK_IMAGE_ICON_NAME) + return; + + dbusmenu_menuitem_property_set (menuitem, + DBUSMENU_MENUITEM_PROP_ICON, + image->data.name.icon_name); +} + +/* return value specifies whether the label is set or not */ +static gboolean +update_stock_item (DbusmenuMenuitem *menuitem, + GtkImage *image) +{ + GtkStockItem stock; + + if (gtk_image_get_storage_type (image) != GTK_IMAGE_STOCK) + return FALSE; + + gtk_stock_lookup (image->data.stock.stock_id, &stock); + + dbusmenu_menuitem_property_set (menuitem, + DBUSMENU_MENUITEM_PROP_ICON, + image->data.stock.stock_id); + + if (stock.label != NULL) + { + dbusmenu_menuitem_property_set (menuitem, + DBUSMENU_MENUITEM_PROP_LABEL, + stock.label); + + return TRUE; + } + + return FALSE; +} + +static void +image_notify_cb (GtkWidget *widget, + GParamSpec *pspec, + gpointer data) +{ + DbusmenuMenuitem *child = (DbusmenuMenuitem *)data; + GtkImage *image = GTK_IMAGE (widget); + + if (pspec->name == g_intern_static_string ("stock")) + { + update_stock_item (child, image); + } + else if (pspec->name == g_intern_static_string ("icon-name")) + { + update_icon_name (child, image); + } +} + +static void widget_notify_cb (GtkWidget *widget, GParamSpec *pspec, gpointer data) @@ -811,25 +869,24 @@ container_iterate (GtkWidget *widget, } else 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; + GtkWidget *image; + GtkImageType image_type; - gtk_stock_lookup (GTK_IMAGE (image)->data.stock.stock_id, &stock); + image = gtk_image_menu_item_get_image (GTK_IMAGE_MENU_ITEM (widget)); + image_type = gtk_image_get_storage_type (GTK_IMAGE (image)); - dbusmenu_menuitem_property_set (child, - DBUSMENU_MENUITEM_PROP_ICON, - GTK_IMAGE (image)->data.stock.stock_id); + g_signal_connect (image, + "notify", + G_CALLBACK (image_notify_cb), + child); - if (stock.label != NULL) - { - dbusmenu_menuitem_property_set (child, - DBUSMENU_MENUITEM_PROP_LABEL, - stock.label); - label_set = TRUE; - } + if (image_type == GTK_IMAGE_STOCK) + { + label_set = update_stock_item (child, GTK_IMAGE (image)); + } + else if (image_type == GTK_IMAGE_ICON_NAME) + { + update_icon_name (child, GTK_IMAGE (image)); } } } |