Mercurial > pidgin.yaz
comparison pidgin/gtkblist.c @ 30038:d75813811637
Add a new signal, drawing-buddy, to allow plugins to handle markup in buddy
names, or anything else a plugin author might choose to dream up. Fixes #4598.
author | John Bailey <rekkanoryo@rekkanoryo.org> |
---|---|
date | Thu, 25 Mar 2010 02:21:03 +0000 |
parents | 986a73d7ddd0 |
children | fdeb9a9543ce d98eee650379 |
comparison
equal
deleted
inserted
replaced
30036:33a4d72232a7 | 30038:d75813811637 |
---|---|
4269 if (gtkcontactnode && !gtkcontactnode->contact_expanded && contact->alias) | 4269 if (gtkcontactnode && !gtkcontactnode->contact_expanded && contact->alias) |
4270 name = contact->alias; | 4270 name = contact->alias; |
4271 else | 4271 else |
4272 name = purple_buddy_get_alias(b); | 4272 name = purple_buddy_get_alias(b); |
4273 | 4273 |
4274 nametext = g_markup_escape_text(name, strlen(name)); | 4274 /* Raise a contact pre-draw signal here. THe callback will return an |
4275 * escaped version of the name. */ | |
4276 nametext = purple_signal_emit_return_1(pidgin_blist_get_handle(), "drawing-buddy", b); | |
4277 | |
4278 if(!nametext) | |
4279 nametext = g_markup_escape_text(name, strlen(name)); | |
4275 | 4280 |
4276 presence = purple_buddy_get_presence(b); | 4281 presence = purple_buddy_get_presence(b); |
4277 | 4282 |
4278 /* Name is all that is needed */ | 4283 /* Name is all that is needed */ |
4279 if (!aliased || biglist) { | 4284 if (!aliased || biglist) { |
7593 purple_value_new(PURPLE_TYPE_SUBTYPE, | 7598 purple_value_new(PURPLE_TYPE_SUBTYPE, |
7594 PURPLE_SUBTYPE_BLIST_NODE), | 7599 PURPLE_SUBTYPE_BLIST_NODE), |
7595 purple_value_new_outgoing(PURPLE_TYPE_BOXED, "GString *"), | 7600 purple_value_new_outgoing(PURPLE_TYPE_BOXED, "GString *"), |
7596 purple_value_new(PURPLE_TYPE_BOOLEAN)); | 7601 purple_value_new(PURPLE_TYPE_BOOLEAN)); |
7597 | 7602 |
7598 | 7603 purple_signal_register(gtk_blist_handle, "drawing-buddy", |
7599 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-on", gtk_blist_handle, PURPLE_CALLBACK(buddy_signonoff_cb), NULL); | 7604 purple_marshal_POINTER__POINTER, |
7600 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-off", gtk_blist_handle, PURPLE_CALLBACK(buddy_signonoff_cb), NULL); | 7605 purple_value_new(PURPLE_TYPE_STRING), 1, |
7601 purple_signal_connect(purple_blist_get_handle(), "buddy-privacy-changed", gtk_blist_handle, PURPLE_CALLBACK(pidgin_blist_update_privacy_cb), NULL); | 7606 purple_value_new(PURPLE_TYPE_SUBTYPE, |
7607 PURPLE_SUBTYPE_BLIST_BUDDY)); | |
7608 | |
7609 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-on", | |
7610 gtk_blist_handle, PURPLE_CALLBACK(buddy_signonoff_cb), NULL); | |
7611 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-off", | |
7612 gtk_blist_handle, PURPLE_CALLBACK(buddy_signonoff_cb), NULL); | |
7613 purple_signal_connect(purple_blist_get_handle(), "buddy-privacy-changed", | |
7614 gtk_blist_handle, PURPLE_CALLBACK(pidgin_blist_update_privacy_cb), NULL); | |
7615 | |
7602 } | 7616 } |
7603 | 7617 |
7604 void | 7618 void |
7605 pidgin_blist_uninit(void) { | 7619 pidgin_blist_uninit(void) { |
7606 g_hash_table_destroy(cached_emblems); | 7620 g_hash_table_destroy(cached_emblems); |