Mercurial > pidgin.yaz
diff plugins/signals-test.c @ 11935:cb73483c9f63
[gaim-migrate @ 14226]
Here are buddy-status-changed and buddy-idle-changed signals, to replace
buddy-away, buddy-back, buddy-idle, and buddy-unidle. It it now possible to
detect when a buddy goes from one away-state to another away-state without
coming back in between.
I'm not really sure I like how buddy-idle-changed works here, but it felt
better to keep it consistent. It currently only fires on idle and unidle and
not on just-more-idle, though that's easy to change if we decide plugins might
want to know as idle time increases.
I think I got all the doxygen and ChangeLog.API stuff, someone yell if I
missed something.
committer: Tailor Script <tailor@pidgin.im>
author | Etan Reisner <pidgin@unreliablesource.net> |
---|---|
date | Mon, 31 Oct 2005 22:02:30 +0000 |
parents | 0b8b7e59cb4b |
children | d0662345799b |
line wrap: on
line diff
--- a/plugins/signals-test.c Mon Oct 31 20:35:59 2005 +0000 +++ b/plugins/signals-test.c Mon Oct 31 22:02:30 2005 +0000 @@ -82,27 +82,20 @@ * Buddy List subsystem signal callbacks **************************************************************************/ static void -buddy_away_cb(GaimBuddy *buddy, void *data) +buddy_status_changed_cb(GaimBuddy *buddy, GaimStatus *old_status, + GaimStatus *status, void *data) { - gaim_debug_misc("signals test", "buddy-away (%s)\n", buddy->name); + gaim_debug_misc("signals test", "buddy-status-changed (%s %s to %s)\n", + buddy->name, gaim_status_get_id(old_status), + gaim_status_get_id(status)); } static void -buddy_back_cb(GaimBuddy *buddy, void *data) -{ - gaim_debug_misc("signals test", "buddy-back (%s)\n", buddy->name); -} - -static void -buddy_idle_cb(GaimBuddy *buddy, void *data) +buddy_idle_changed_cb(GaimBuddy *buddy, gboolean old_idle, gboolean idle, + void *data) { - gaim_debug_misc("signals test", "buddy-idle (%s)\n", buddy->name); -} - -static void -buddy_unidle_cb(GaimBuddy *buddy, void *data) -{ - gaim_debug_misc("signals test", "buddy-unidle (%s)\n", buddy->name); + gaim_debug_misc("signals test", "buddy-idle-changed (%s %s)\n", + buddy->name, old_idle ? "unidled" : "idled"); } static void @@ -585,14 +578,10 @@ plugin, GAIM_CALLBACK(buddy_icon_cached_cb), NULL); /* Buddy List subsystem signals */ - gaim_signal_connect(blist_handle, "buddy-away", - plugin, GAIM_CALLBACK(buddy_away_cb), NULL); - gaim_signal_connect(blist_handle, "buddy-back", - plugin, GAIM_CALLBACK(buddy_back_cb), NULL); - gaim_signal_connect(blist_handle, "buddy-idle", - plugin, GAIM_CALLBACK(buddy_idle_cb), NULL); - gaim_signal_connect(blist_handle, "buddy-unidle", - plugin, GAIM_CALLBACK(buddy_unidle_cb), NULL); + gaim_signal_connect(blist_handle, "buddy-status-changed", + plugin, GAIM_CALLBACK(buddy_status_changed_cb), NULL); + gaim_signal_connect(blist_handle, "buddy-idle-changed", + plugin, GAIM_CALLBACK(buddy_idle_changed_cb), NULL); gaim_signal_connect(blist_handle, "buddy-signed-on", plugin, GAIM_CALLBACK(buddy_signed_on_cb), NULL); gaim_signal_connect(blist_handle, "buddy-signed-off",