From a438fcc0a13631228388bacaa5c95d0005c4f84e Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Sun, 26 Jul 2009 20:53:54 -0500 Subject: Using GET_CLASS instead of CLASS. Oops --- src/status-provider.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/status-provider.c b/src/status-provider.c index cc9eb32..97f1798 100644 --- a/src/status-provider.c +++ b/src/status-provider.c @@ -59,7 +59,8 @@ status_provider_set_status (StatusProvider * sp, StatusProviderStatus status) { g_return_if_fail(IS_STATUS_PROVIDER(sp)); - StatusProviderClass * class = STATUS_PROVIDER_CLASS(sp); + StatusProviderClass * class = STATUS_PROVIDER_GET_CLASS(sp); + g_return_if_fail(class != NULL); g_return_if_fail(class->set_status != NULL); return class->set_status(sp, status); @@ -70,7 +71,7 @@ status_provider_get_status (StatusProvider * sp) { g_return_val_if_fail(IS_STATUS_PROVIDER(sp), STATUS_PROVIDER_STATUS_OFFLINE); - StatusProviderClass * class = STATUS_PROVIDER_CLASS(sp); + StatusProviderClass * class = STATUS_PROVIDER_GET_CLASS(sp); g_return_val_if_fail(class->get_status != NULL, STATUS_PROVIDER_STATUS_OFFLINE); return class->get_status(sp); -- cgit v1.2.3 From 2931dc6bf7552849a54f1c1eed83cff275ec63b2 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Sun, 26 Jul 2009 21:45:06 -0500 Subject: Debug message --- src/status-provider-pidgin.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/status-provider-pidgin.c b/src/status-provider-pidgin.c index 600ee79..ebb701b 100644 --- a/src/status-provider-pidgin.c +++ b/src/status-provider-pidgin.c @@ -124,6 +124,7 @@ status_provider_pidgin_new (void) static void set_status (StatusProvider * sp, StatusProviderStatus status) { + g_debug("\tSetting Pidgin Status: %d", status); g_return_if_fail(IS_STATUS_PROVIDER_PIDGIN(sp)); StatusProviderPidginPrivate * priv = STATUS_PROVIDER_PIDGIN_GET_PRIVATE(sp); pg_status_t pg_status = sp_to_pg_map[status]; -- cgit v1.2.3 From a2e7239aa75ffd691adc72372af67808253f5bdc Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Sun, 26 Jul 2009 21:45:37 -0500 Subject: A function to lock the saver --- src/status-service.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src') diff --git a/src/status-service.c b/src/status-service.c index e02e70f..dbb597c 100644 --- a/src/status-service.c +++ b/src/status-service.c @@ -41,10 +41,30 @@ static const gchar * status_icons[STATUS_PROVIDER_STATUS_LAST] = { static DbusmenuMenuitem * root_menuitem = NULL; static GMainLoop * mainloop = NULL; +/* A fun little function to actually lock the screen. If, + that's what you want, let's do it! */ static void lock_screen (DbusmenuMenuitem * mi, gpointer data) { g_debug("Lock Screen"); + + DBusGConnection * session_bus = dbus_g_bus_get(DBUS_BUS_SESSION, NULL); + g_return_if_fail(session_bus != NULL); + + DBusGProxy * proxy = dbus_g_proxy_new_for_name_owner(session_bus, + "org.gnome.ScreenSaver", + "/", + "org.gnome.ScreenSaver", + NULL); + g_return_if_fail(proxy != NULL); + + dbus_g_proxy_call_no_reply(proxy, + "Lock", + G_TYPE_INVALID, + G_TYPE_INVALID); + + g_object_unref(proxy); + return; } -- cgit v1.2.3 From 0417e7049a32ceb45e19705992dfccef5d858893 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Sun, 26 Jul 2009 23:44:19 -0500 Subject: Setting up the Pidgin proxy --- src/status-provider-pidgin.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src') diff --git a/src/status-provider-pidgin.c b/src/status-provider-pidgin.c index ebb701b..529f457 100644 --- a/src/status-provider-pidgin.c +++ b/src/status-provider-pidgin.c @@ -86,6 +86,21 @@ status_provider_pidgin_init (StatusProviderPidgin *self) priv->proxy = NULL; priv->pg_status = PG_STATUS_OFFLINE; + DBusGConnection * bus = dbus_g_bus_get(DBUS_BUS_SESSION, NULL); + g_return_if_fail(bus != NULL); /* Can't do anymore DBus stuff without this, + all non-DBus stuff should be done */ + + GError * error = NULL; + priv->proxy = dbus_g_proxy_new_for_name_owner (bus, + "im.pidgin.purple.PurpleService", + "/im/pidgin/purple/PurpleObject", + "im.pidgin.purple.PurpleInterface", + &error); + if (error != NULL) { + g_debug("Unable to get Pidgin proxy: %s", error->message); + g_error_free(error); + } + return; } -- cgit v1.2.3