From 3a33240e301a02fa6ee0aa0bd41780a0e3a28633 Mon Sep 17 00:00:00 2001 From: Lars Uebernickel Date: Fri, 18 Jan 2013 19:48:04 +0100 Subject: Add IndicatorNg IndicatorNg is an indicator object that reads an indicator service file and watches the bus for a corresponding service to appear. It turns the menus and actions exported by the service into an indicator entry. --- tools/indicator-loader.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'tools/indicator-loader.c') diff --git a/tools/indicator-loader.c b/tools/indicator-loader.c index 560fc45..51d2e46 100644 --- a/tools/indicator-loader.c +++ b/tools/indicator-loader.c @@ -24,6 +24,7 @@ License along with this library. If not, see #include #include +#include static GHashTable * entry_to_menuitem = NULL; @@ -129,14 +130,25 @@ load_module (const gchar * name, GtkWidget * menu) g_debug("Looking at Module: %s", name); g_return_val_if_fail(name != NULL, FALSE); - if (!g_str_has_suffix(name, G_MODULE_SUFFIX)) { - return FALSE; - } - g_debug("Loading Module: %s", name); /* Build the object for the module */ - IndicatorObject * io = indicator_object_new_from_file(name); + IndicatorObject *io; + if (g_str_has_suffix(name, G_MODULE_SUFFIX)) { + io = indicator_object_new_from_file(name); + } + else if (g_str_has_suffix(name, ".indicator")) { + GError *error = NULL; + + io = INDICATOR_OBJECT(indicator_ng_new(name, &error)); + if (!io) { + g_warning ("could not load indicator from '%s': %s", name, error->message); + g_error_free (error); + return FALSE; + } + } + else + return FALSE; /* Connect to it's signals */ g_signal_connect(G_OBJECT(io), INDICATOR_OBJECT_SIGNAL_ENTRY_ADDED, G_CALLBACK(entry_added), menu); -- cgit v1.2.3 From aaae4aa191dc5ad4dd643822b33397bc6faace0e Mon Sep 17 00:00:00 2001 From: Lars Uebernickel Date: Fri, 18 Jan 2013 22:17:54 +0100 Subject: Only build and use IndicatorNg in the gtk3 build --- tools/indicator-loader.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'tools/indicator-loader.c') diff --git a/tools/indicator-loader.c b/tools/indicator-loader.c index 51d2e46..d275c43 100644 --- a/tools/indicator-loader.c +++ b/tools/indicator-loader.c @@ -24,7 +24,10 @@ License along with this library. If not, see #include #include + +#if GTK_MAJOR_VERSION == 3 #include +#endif static GHashTable * entry_to_menuitem = NULL; @@ -137,6 +140,7 @@ load_module (const gchar * name, GtkWidget * menu) if (g_str_has_suffix(name, G_MODULE_SUFFIX)) { io = indicator_object_new_from_file(name); } +#if GTK_MAJOR_VERSION == 3 else if (g_str_has_suffix(name, ".indicator")) { GError *error = NULL; @@ -147,6 +151,7 @@ load_module (const gchar * name, GtkWidget * menu) return FALSE; } } +#endif else return FALSE; -- cgit v1.2.3