aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Gould <ted@canonical.com>2009-08-26 10:03:34 -0500
committerTed Gould <ted@canonical.com>2009-08-26 10:03:34 -0500
commit91fa6c67e8720123c2d81ac8aac0ef5aa4ac97e8 (patch)
tree1fd884a1b01002a2fd465251737f5ca317a8655d
parent03ca8ad97b53334826abc317472932289b17f69f (diff)
downloadayatana-indicator-messages-91fa6c67e8720123c2d81ac8aac0ef5aa4ac97e8.tar.gz
ayatana-indicator-messages-91fa6c67e8720123c2d81ac8aac0ef5aa4ac97e8.tar.bz2
ayatana-indicator-messages-91fa6c67e8720123c2d81ac8aac0ef5aa4ac97e8.zip
Setting up signals and callbacks, oh my! Watch for lions.
-rw-r--r--src/indicator-messages.c56
1 files changed, 55 insertions, 1 deletions
diff --git a/src/indicator-messages.c b/src/indicator-messages.c
index a7628b0..87fd77e 100644
--- a/src/indicator-messages.c
+++ b/src/indicator-messages.c
@@ -31,6 +31,7 @@ INDICATOR_SET_VERSION
INDICATOR_SET_NAME("messages")
#include "dbus-data.h"
+#include "messages-service-client.h"
static GtkWidget * main_image = NULL;
@@ -39,7 +40,43 @@ static GtkIconSize design_team_size;
static DBusGProxy * icon_proxy = NULL;
-gboolean
+static void
+attention_changed_cb (DBusGProxy * proxy, gboolean dot, gpointer userdata)
+{
+
+}
+
+static void
+icon_changed_cb (DBusGProxy * proxy, gboolean hidden, gpointer userdata)
+{
+
+}
+
+static void
+watch_cb (DBusGProxy * proxy, GError * error, gpointer userdata)
+{
+ if (error != NULL) {
+ g_warning("Watch failed! %s", error->message);
+ g_error_free(error);
+ }
+ return;
+}
+
+static void
+attention_cb (DBusGProxy * proxy, gboolean dot, GError * error, gpointer userdata)
+{
+
+ return;
+}
+
+static void
+icon_cb (DBusGProxy * proxy, gboolean hidden, GError * error, gpointer userdata)
+{
+
+ return;
+}
+
+static gboolean
setup_icon_proxy (gpointer userdata)
{
DBusGConnection * connection = dbus_g_bus_get(DBUS_BUS_SESSION, NULL);
@@ -56,6 +93,23 @@ setup_icon_proxy (gpointer userdata)
g_warning("Unable to get messages service interface.");
return FALSE;
}
+
+ org_ayatana_indicator_messages_service_watch_async(icon_proxy, watch_cb, NULL);
+
+ dbus_g_proxy_connect_signal(icon_proxy,
+ "AttentionChanged",
+ G_CALLBACK(attention_changed_cb),
+ NULL,
+ NULL);
+
+ dbus_g_proxy_connect_signal(icon_proxy,
+ "IconChanged",
+ G_CALLBACK(icon_changed_cb),
+ NULL,
+ NULL);
+
+ org_ayatana_indicator_messages_service_attention_requested_async(icon_proxy, attention_cb, NULL);
+ org_ayatana_indicator_messages_service_icon_shown_async(icon_proxy, icon_cb, NULL);
return FALSE;
}