[Galago-commits] r1985 - trunk/gaim-galago/src
galago-commits at freedesktop.org
galago-commits at freedesktop.org
Sat Jun 25 18:20:25 PDT 2005
Author: grim
Date: 2005-06-25 18:20:23 -0700 (Sat, 25 Jun 2005)
New Revision: 1985
Modified:
trunk/gaim-galago/src/gaim-galago.c
Log:
syncing my changes for gaim-galago
Modified: trunk/gaim-galago/src/gaim-galago.c
===================================================================
--- trunk/gaim-galago/src/gaim-galago.c 2005-06-26 01:14:19 UTC (rev 1984)
+++ trunk/gaim-galago/src/gaim-galago.c 2005-06-26 01:20:23 UTC (rev 1985)
@@ -268,12 +268,41 @@
galago_service_get_id(service));
#if GAIM_VERSION_CHECK(2,0,0)
- if(!gaim_presence_is_available(gaim_buddy_get_presence(buddy))) {
- status_type = GALAGO_STATUS_AWAY;
- status_id = GALAGO_STATUS_ID_AWAY;
- } else {
- status_type = GALAGO_STATUS_AVAILABLE;
- status_id = GALAGO_STATUS_ID_AVAILABLE;
+ {
+ GaimPresence *bpresence = NULL;
+ GaimStatus *bstatus = NULL;
+ GaimStatusType *bstatus_type = NULL;
+
+ bpresence = gaim_buddy_get_presence(buddy);
+ bstatus = gaim_presence_get_active_status(bpresence);
+ bstatus_type = gaim_status_get_type(bstatus);
+
+ switch(gaim_status_type_get_primitive(bstatus_type)) {
+ case GAIM_STATUS_ONLINE:
+ case GAIM_STATUS_AVAILABLE:
+ status_type = GALAGO_STATUS_AVAILABLE;
+ status_id = GALAGO_STATUS_ID_AVAILABLE;
+ break;
+ case GAIM_STATUS_UNAVAILABLE:
+ case GAIM_STATUS_AWAY:
+ status_type = GALAGO_STATUS_AWAY;
+ status_id = GALAGO_STATUS_ID_AWAY;
+ break;
+ case GAIM_STATUS_HIDDEN:
+ status_type = GALAGO_STATUS_HIDDEN;
+ status_id = GALAGO_STATUS_ID_HIDDEN;
+ break;
+ case GAIM_STATUS_EXTENDED_AWAY:
+ status_type = GALAGO_STATUS_EXTENDED_AWAY;
+ status_id = GALAGO_STATUS_ID_EXTENDED_AWAY;
+ break;
+ case GAIM_STATUS_UNSET:
+ case GAIM_STATUS_OFFLINE:
+ default:
+ status_type = GALAGO_STATUS_OFFLINE;
+ status_id = GALAGO_STATUS_ID_OFFLINE;
+ break;
+ }
}
#else
if (buddy->uc & UC_UNAVAILABLE)
@@ -391,7 +420,29 @@
}
}
+#if GAIM_VERSION_CHECK(2,0,0)
static void
+buddy_icon_changed_cb(GaimBuddyIcon *icon, GaimBuddy *buddy,
+ const gchar *filename, const gchar *oldfilename)
+{
+ GalagoAccount *my_gaccount, *gaccount;
+ GalagoService *service;
+
+ /* this could probably be cleaned up more, but seeing as I'm not too
+ * familiar with galago right now...
+ *
+ * - grim
+ */
+
+ my_gaccount = get_my_galago_account(buddy->account);
+ service = galago_account_get_service(my_gaccount);
+ gaccount = galago_service_get_account(service, buddy->name, FALSE);
+
+ update_avatar(buddy, gaccount);
+}
+#endif
+
+static void
setup_accounts(void)
{
GList *l;
@@ -490,6 +541,11 @@
gaim_signal_connect(gaim_blist_get_handle(), "buddy-signed-off",
plugin, GAIM_CALLBACK(buddy_status_changed_cb), NULL);
+#if GAIM_VERSION_CHECK(2,0,0)
+ gaim_signal_connect(gaim_buddy_icons_get_handle(), "buddy-icon-chaced",
+ plugin, GAIM_CALLBACK(buddy_icon_changed_cb), NULL);
+#endif
+
gaim_signal_connect(gaim_connections_get_handle(), "signed-on",
plugin, GAIM_CALLBACK(signed_on_cb), NULL);
gaim_signal_connect(gaim_connections_get_handle(), "signed-off",
More information about the galago-commits
mailing list