From 79cd82fa83fd9f13c4b1187e68264c1ec5eb2ffe Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Sun, 24 Jan 2010 21:56:07 -0600 Subject: When setting or changing an icon first check to see if there is a panel specific icon that we should be using. --- src/indicator-application.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/indicator-application.c b/src/indicator-application.c index 3ef5688..68f7d0e 100644 --- a/src/indicator-application.c +++ b/src/indicator-application.c @@ -41,6 +41,8 @@ with this program. If not, see . #include "application-service-client.h" #include "application-service-marshal.h" +#define PANEL_ICON_SUFFIX "symbolic" + #define INDICATOR_APPLICATION_TYPE (indicator_application_get_type ()) #define INDICATOR_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), INDICATOR_APPLICATION_TYPE, IndicatorApplication)) #define INDICATOR_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), INDICATOR_APPLICATION_TYPE, IndicatorApplicationClass)) @@ -325,7 +327,17 @@ application_added (DBusGProxy * proxy, const gchar * iconname, gint position, co theme_dir_ref(application, icon_path); } - app->entry.image = GTK_IMAGE(gtk_image_new_from_icon_name(iconname, GTK_ICON_SIZE_MENU)); + /* We make a long name using the suffix, and if that + icon is available we want to use it. Otherwise we'll + just use the name we were given. */ + gchar * longname = g_strdup_printf("%s-%s", iconname, PANEL_ICON_SUFFIX); + if (!gtk_icon_theme_has_icon(gtk_icon_theme_get_default(), longname)) { + app->entry.image = GTK_IMAGE(gtk_image_new_from_icon_name(longname, GTK_ICON_SIZE_MENU)); + } else { + app->entry.image = GTK_IMAGE(gtk_image_new_from_icon_name(iconname, GTK_ICON_SIZE_MENU)); + } + g_free(longname); + app->entry.label = NULL; app->entry.menu = GTK_MENU(dbusmenu_gtkmenu_new((gchar *)dbusaddress, (gchar *)dbusobject)); @@ -390,7 +402,17 @@ application_icon_changed (DBusGProxy * proxy, gint position, const gchar * iconn return; } - gtk_image_set_from_icon_name(app->entry.image, iconname, GTK_ICON_SIZE_MENU); + /* We make a long name using the suffix, and if that + icon is available we want to use it. Otherwise we'll + just use the name we were given. */ + gchar * longname = g_strdup_printf("%s-%s", iconname, PANEL_ICON_SUFFIX); + if (!gtk_icon_theme_has_icon(gtk_icon_theme_get_default(), longname)) { + gtk_image_set_from_icon_name(app->entry.image, longname, GTK_ICON_SIZE_MENU); + } else { + gtk_image_set_from_icon_name(app->entry.image, iconname, GTK_ICON_SIZE_MENU); + } + g_free(longname); + return; } -- cgit v1.2.3 From e68b4e3f23ad6b5e1f909fc50d86d0cc7d24e88f Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Sun, 24 Jan 2010 22:03:21 -0600 Subject: Truth. Bad, Bad, truth. --- src/indicator-application.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/indicator-application.c b/src/indicator-application.c index 68f7d0e..5327ff2 100644 --- a/src/indicator-application.c +++ b/src/indicator-application.c @@ -331,7 +331,7 @@ application_added (DBusGProxy * proxy, const gchar * iconname, gint position, co icon is available we want to use it. Otherwise we'll just use the name we were given. */ gchar * longname = g_strdup_printf("%s-%s", iconname, PANEL_ICON_SUFFIX); - if (!gtk_icon_theme_has_icon(gtk_icon_theme_get_default(), longname)) { + if (gtk_icon_theme_has_icon(gtk_icon_theme_get_default(), longname)) { app->entry.image = GTK_IMAGE(gtk_image_new_from_icon_name(longname, GTK_ICON_SIZE_MENU)); } else { app->entry.image = GTK_IMAGE(gtk_image_new_from_icon_name(iconname, GTK_ICON_SIZE_MENU)); @@ -406,7 +406,7 @@ application_icon_changed (DBusGProxy * proxy, gint position, const gchar * iconn icon is available we want to use it. Otherwise we'll just use the name we were given. */ gchar * longname = g_strdup_printf("%s-%s", iconname, PANEL_ICON_SUFFIX); - if (!gtk_icon_theme_has_icon(gtk_icon_theme_get_default(), longname)) { + if (gtk_icon_theme_has_icon(gtk_icon_theme_get_default(), longname)) { gtk_image_set_from_icon_name(app->entry.image, longname, GTK_ICON_SIZE_MENU); } else { gtk_image_set_from_icon_name(app->entry.image, iconname, GTK_ICON_SIZE_MENU); -- cgit v1.2.3 From 1b40a682eac74a10720e4941cb9fc5e45038d3da Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 27 Jan 2010 10:25:49 -0600 Subject: Making it so there is another level of translation so that we can use different strings in the enum. --- src/Makefile.am | 16 +++++- src/libappindicator/app-indicator-enum-types.c.in | 61 ---------------------- .../app-indicator-enum-types.gen.c.in | 61 ++++++++++++++++++++++ 3 files changed, 75 insertions(+), 63 deletions(-) delete mode 100644 src/libappindicator/app-indicator-enum-types.c.in create mode 100644 src/libappindicator/app-indicator-enum-types.gen.c.in (limited to 'src') diff --git a/src/Makefile.am b/src/Makefile.am index 38e6dd9..efae713 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -63,9 +63,21 @@ pkgconfig_DATA = libappindicator/appindicator-0.1.pc pkgconfigdir = $(libdir)/pkgconfig glib_enum_h = libappindicator/app-indicator-enum-types.h -glib_enum_c = libappindicator/app-indicator-enum-types.c +glib_enum_c = libappindicator/app-indicator-enum-types.gen.c glib_enum_headers = $(libappindicator_headers) +libappindicator/app-indicator-enum-types.c: libappindicator/app-indicator-enum-types.gen.c + sed -e "s|\"passive\"|\"Passive\"|" \ + -e "s|\"active\"|\"Active\"|" \ + -e "s|\"attention\"|\"NeedsAttention\"|" \ + -e "s|\"application-status\"|\"ApplicationStatus\"|" \ + -e "s|\"communications\"|\"Communications\"|" \ + -e "s|\"system-services\"|\"SystemServices\"|" \ + -e "s|\"hardware\"|\"Hardware\"|" \ + -e "s|\"other\"|\"Other\"|" \ + $< > $@ +DISTCLEANFILES += libappindicator/app-indicator-enum-types.c + lib_LTLIBRARIES = \ libappindicator.la @@ -80,7 +92,7 @@ libappindicatorinclude_HEADERS = \ libappindicator_la_SOURCES = \ $(libappindicator_headers) \ - $(glib_enum_c) \ + libappindicator/app-indicator-enum-types.c \ notification-watcher-client.h \ notification-item-server.h \ libappindicator/app-indicator.c diff --git a/src/libappindicator/app-indicator-enum-types.c.in b/src/libappindicator/app-indicator-enum-types.c.in deleted file mode 100644 index 449f3fc..0000000 --- a/src/libappindicator/app-indicator-enum-types.c.in +++ /dev/null @@ -1,61 +0,0 @@ -/*** BEGIN file-header ***/ -/* -An object to represent the application as an application indicator -in the system panel. - -Copyright 2009 Canonical Ltd. - -Authors: - Ted Gould - -This program is free software: you can redistribute it and/or modify it -under the terms of either or both of the following licenses: - -1) the GNU Lesser General Public License version 3, as published by the - Free Software Foundation; and/or -2) the GNU Lesser General Public License version 2.1, as published by - the Free Software Foundation. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranties of -MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR -PURPOSE. See the applicable version of the GNU Lesser General Public -License for more details. - -You should have received a copy of both the GNU Lesser General Public -License version 3 and version 2.1 along with this program. If not, see - -*/ - -#include "libappindicator/app-indicator-enum-types.h" - -/*** END file-header ***/ - -/*** BEGIN file-production ***/ -#include "@filename@" -/*** END file-production ***/ - -/*** BEGIN value-header ***/ -GType -@enum_name@_get_type (void) -{ - static GType etype = 0; - if (G_UNLIKELY(etype == 0)) { - static const G@Type@Value values[] = { -/*** END value-header ***/ - -/*** BEGIN value-production ***/ - { @VALUENAME@, "@VALUENAME@", "@valuenick@" }, -/*** END value-production ***/ - -/*** BEGIN value-tail ***/ - { 0, NULL, NULL} - }; - - etype = g_@type@_register_static (g_intern_static_string("@EnumName@"), values); - } - - return etype; -} - -/*** END value-tail ***/ diff --git a/src/libappindicator/app-indicator-enum-types.gen.c.in b/src/libappindicator/app-indicator-enum-types.gen.c.in new file mode 100644 index 0000000..449f3fc --- /dev/null +++ b/src/libappindicator/app-indicator-enum-types.gen.c.in @@ -0,0 +1,61 @@ +/*** BEGIN file-header ***/ +/* +An object to represent the application as an application indicator +in the system panel. + +Copyright 2009 Canonical Ltd. + +Authors: + Ted Gould + +This program is free software: you can redistribute it and/or modify it +under the terms of either or both of the following licenses: + +1) the GNU Lesser General Public License version 3, as published by the + Free Software Foundation; and/or +2) the GNU Lesser General Public License version 2.1, as published by + the Free Software Foundation. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranties of +MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR +PURPOSE. See the applicable version of the GNU Lesser General Public +License for more details. + +You should have received a copy of both the GNU Lesser General Public +License version 3 and version 2.1 along with this program. If not, see + +*/ + +#include "libappindicator/app-indicator-enum-types.h" + +/*** END file-header ***/ + +/*** BEGIN file-production ***/ +#include "@filename@" +/*** END file-production ***/ + +/*** BEGIN value-header ***/ +GType +@enum_name@_get_type (void) +{ + static GType etype = 0; + if (G_UNLIKELY(etype == 0)) { + static const G@Type@Value values[] = { +/*** END value-header ***/ + +/*** BEGIN value-production ***/ + { @VALUENAME@, "@VALUENAME@", "@valuenick@" }, +/*** END value-production ***/ + +/*** BEGIN value-tail ***/ + { 0, NULL, NULL} + }; + + etype = g_@type@_register_static (g_intern_static_string("@EnumName@"), values); + } + + return etype; +} + +/*** END value-tail ***/ -- cgit v1.2.3 From 53821e94334efe2ef43f2968f8a82e1decaa1c3b Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 27 Jan 2010 10:27:55 -0600 Subject: Changing the strings in the #defines here, but really we should be using the enum. --- src/application-service-appstore.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/application-service-appstore.c b/src/application-service-appstore.c index 5b0cc15..70fab18 100644 --- a/src/application-service-appstore.c +++ b/src/application-service-appstore.c @@ -55,9 +55,9 @@ struct _ApplicationServiceAppstorePrivate { AppLruFile * lrufile; }; -#define APP_STATUS_PASSIVE_STR "passive" -#define APP_STATUS_ACTIVE_STR "active" -#define APP_STATUS_ATTENTION_STR "attention" +#define APP_STATUS_PASSIVE_STR "Passive" +#define APP_STATUS_ACTIVE_STR "Active" +#define APP_STATUS_ATTENTION_STR "NeedsAttention" typedef enum _ApplicationStatus ApplicationStatus; enum _ApplicationStatus { -- cgit v1.2.3 From 8a8c965f7fafd65b427a7cdc90cba59456889396 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Mon, 1 Feb 2010 10:21:58 -0800 Subject: Changing the suffix to 'panel' --- src/indicator-application.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/indicator-application.c b/src/indicator-application.c index 5327ff2..6c053a9 100644 --- a/src/indicator-application.c +++ b/src/indicator-application.c @@ -41,7 +41,7 @@ with this program. If not, see . #include "application-service-client.h" #include "application-service-marshal.h" -#define PANEL_ICON_SUFFIX "symbolic" +#define PANEL_ICON_SUFFIX "panel" #define INDICATOR_APPLICATION_TYPE (indicator_application_get_type ()) #define INDICATOR_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), INDICATOR_APPLICATION_TYPE, IndicatorApplication)) -- cgit v1.2.3 From 4b0a319f650031f8eea0ff63fdc3e9386cde274e Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 2 Feb 2010 16:09:52 -0800 Subject: Changing the prototype of the activate signal --- src/libappindicator/app-indicator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/libappindicator/app-indicator.c b/src/libappindicator/app-indicator.c index b0f721e..575b613 100644 --- a/src/libappindicator/app-indicator.c +++ b/src/libappindicator/app-indicator.c @@ -977,7 +977,7 @@ app_indicator_set_icon (AppIndicator *self, const gchar *icon_name) } static void -activate_menuitem (DbusmenuMenuitem *mi, gpointer user_data) +activate_menuitem (DbusmenuMenuitem *mi, guint timestamp, gpointer user_data) { GtkWidget *widget = (GtkWidget *)user_data; -- cgit v1.2.3 From 770470f8307a9d9ad6ffa63560a7454eaa7f95ac Mon Sep 17 00:00:00 2001 From: Aurelien Gateau Date: Tue, 2 Feb 2010 16:59:18 -0800 Subject: icon -> icon-name sensitive -> enabled toggle-checked -> toggle-state toggle-state type is now an int --- src/libappindicator/app-indicator.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/libappindicator/app-indicator.c b/src/libappindicator/app-indicator.c index b0f721e..8c1fa4c 100644 --- a/src/libappindicator/app-indicator.c +++ b/src/libappindicator/app-indicator.c @@ -987,9 +987,9 @@ activate_menuitem (DbusmenuMenuitem *mi, gpointer user_data) static void widget_toggled (GtkWidget *widget, DbusmenuMenuitem *mi) { - dbusmenu_menuitem_property_set (mi, - DBUSMENU_MENUITEM_PROP_TOGGLE_CHECKED, - gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)) ? DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED : DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED); + dbusmenu_menuitem_property_set_int (mi, + DBUSMENU_MENUITEM_PROP_TOGGLE_STATE, + gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)) ? DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED : DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED); } static void @@ -1014,7 +1014,7 @@ update_icon_name (DbusmenuMenuitem *menuitem, return; dbusmenu_menuitem_property_set (menuitem, - DBUSMENU_MENUITEM_PROP_ICON, + DBUSMENU_MENUITEM_PROP_ICON_NAME, image->data.name.icon_name); } @@ -1031,7 +1031,7 @@ update_stock_item (DbusmenuMenuitem *menuitem, gtk_stock_lookup (image->data.stock.stock_id, &stock); dbusmenu_menuitem_property_set (menuitem, - DBUSMENU_MENUITEM_PROP_ICON, + DBUSMENU_MENUITEM_PROP_ICON_NAME, image->data.stock.stock_id); if (stock.label != NULL) @@ -1074,7 +1074,7 @@ widget_notify_cb (GtkWidget *widget, if (pspec->name == g_intern_static_string ("sensitive")) { dbusmenu_menuitem_property_set_bool (child, - DBUSMENU_MENUITEM_PROP_SENSITIVE, + DBUSMENU_MENUITEM_PROP_ENABLED, GTK_WIDGET_IS_SENSITIVE (widget)); } else if (pspec->name == g_intern_static_string ("label")) @@ -1121,9 +1121,9 @@ container_iterate (GtkWidget *widget, label_set = TRUE; - dbusmenu_menuitem_property_set (child, - DBUSMENU_MENUITEM_PROP_TOGGLE_CHECKED, - gtk_check_menu_item_get_active (check) ? DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED : DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED); + dbusmenu_menuitem_property_set_int (child, + DBUSMENU_MENUITEM_PROP_TOGGLE_STATE, + gtk_check_menu_item_get_active (check) ? DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED : DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED); g_signal_connect (widget, "toggled", -- cgit v1.2.3