# HG changeset patch # User Yoshiki Yazawa # Date 1269507835 -32400 # Node ID fdeb9a9543ce4de674fff212021853fd198ec754 # Parent f988f25259c76a2ef1a14671b62a825c9abea808# Parent 9bc297399b988fc02bd9db4d0a2fced0a76963dd merged with im.pidgin.pidgin diff -r f988f25259c7 -r fdeb9a9543ce ChangeLog --- a/ChangeLog Wed Mar 24 17:44:40 2010 +0900 +++ b/ChangeLog Thu Mar 25 18:03:55 2010 +0900 @@ -28,6 +28,8 @@ * Default binding of Ctrl+Shift+v to 'Paste as Plain Text' in conversation windows. This can be changed in .gtkrc-2.0. For example, Ctrl+v can be bound to 'Paste as Plain Text' by default. + * Plugins can now handle markup in buddy names by attaching to the signal + "drawing-buddy". Bonjour: * Added support for IPv6. (Thanks to T_X for testing) diff -r f988f25259c7 -r fdeb9a9543ce ChangeLog.API --- a/ChangeLog.API Wed Mar 24 17:44:40 2010 +0900 +++ b/ChangeLog.API Thu Mar 25 18:03:55 2010 +0900 @@ -32,6 +32,7 @@ * pidgin_dialogs_translators (should not be used by anything but Pidgin) * gtk_imhtmltoolbar_switch_active_conversation * 'paste' signal for GtkIMHtml (more in gtkimhtml-signals.dox) + * 'drawing-buddy' signal for gtkblist (more in gtkblist-signals.dox) version 2.6.6 (02/18/2010): libpurple: diff -r f988f25259c7 -r fdeb9a9543ce doc/gtkblist-signals.dox --- a/doc/gtkblist-signals.dox Wed Mar 24 17:44:40 2010 +0900 +++ b/doc/gtkblist-signals.dox Thu Mar 25 18:03:55 2010 +0900 @@ -5,6 +5,7 @@ @signal gtkblist-unhiding @signal gtkblist-created @signal drawing-tooltip + @signal drawing-buddy @endsignals @see gtkblist.h @@ -53,5 +54,17 @@ @param full Whether we're doing a full tooltip for the priority buddy or a compact tooltip for a non-priority buddy. @endsignaldef + + @signaldef drawing-buddy + @signalproto +char *(*drawing-buddy)(PurpleBuddy *buddy); + @endsignalproto + @signaldesc + Emitted to allow plugins to handle markup within a buddy's name or to + override the default of no formatting for names shown in the buddy list. + @param buddy A pointer to the PurpleBuddy that will be displayed. + @return The text to display (must be allocated), or @c NULL if no + changes to the default behavior are desired. + @endsignaldef */ // vim: syntax=c.doxygen tw=75 et diff -r f988f25259c7 -r fdeb9a9543ce libpurple/protocols/msn/README --- a/libpurple/protocols/msn/README Wed Mar 24 17:44:40 2010 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -MSNP14 Implementation -by Ma Yuan - -1. Introduction -------------- - -MSNP14 Protocol, proposed by Windows Live Messenger, is new, and there is no available implementation except the official one on Windows Platform. - -It has introduced many new features attractable to many users, such as: -* Offline Instant Message - You can send the offline Message to the offline User, - The message will be posted to that user the next time when he is online. - -* Communicate with Yahoo User - U can chat with the Yahoo User in MSN, That's Fantastic! Till now , - you can send text/Nudge to Yahoo User. - -* Windows Live ID authentition - WLM use the Window Live ID Authentication process,Known as Passport 3.0, - The procedure is totally different to the previous Passport 2.0 - -* Video/Audio Conversation - U can communicate with other's via Video/Audio. -(Though very interesting, not implemented in this version) - -2.New Features Added ------------------ - -Till now, This project has implemented the following Feature: -* Windows Live ID authentication. - -* Offline Instant Message -Now can send and receive the Offline Instant Message to MSN user and Yahoo User. - -*contact management -Can add/delete Contact -Can add/delete Group - -* Communicate with Yahoo User -Can send/receive Message/Nudge to Yahoo User. - -*. Changes to made to fit MSNP14 Protocol - -3. Reference -------------- - -The very useful sites of MSN Protocol: -MSNpiki site: -reverse engineer of MSN Protocol.up to dated. -http://msnpiki.msnfanatic.com/index.php/MSN_Protocol_Version_13 - -hypothetic site: -old MSN Protocol Introduction,but very useful for basic idea of MSN protocol -http://www.hypothetic.org/docs/msn/index.php - diff -r f988f25259c7 -r fdeb9a9543ce pidgin/gtkblist.c --- a/pidgin/gtkblist.c Wed Mar 24 17:44:40 2010 +0900 +++ b/pidgin/gtkblist.c Thu Mar 25 18:03:55 2010 +0900 @@ -4277,7 +4277,12 @@ else name = purple_buddy_get_alias(b); - nametext = g_markup_escape_text(name, strlen(name)); + /* Raise a contact pre-draw signal here. THe callback will return an + * escaped version of the name. */ + nametext = purple_signal_emit_return_1(pidgin_blist_get_handle(), "drawing-buddy", b); + + if(!nametext) + nametext = g_markup_escape_text(name, strlen(name)); presence = purple_buddy_get_presence(b); @@ -7601,10 +7606,19 @@ purple_value_new_outgoing(PURPLE_TYPE_BOXED, "GString *"), purple_value_new(PURPLE_TYPE_BOOLEAN)); - - purple_signal_connect(purple_blist_get_handle(), "buddy-signed-on", gtk_blist_handle, PURPLE_CALLBACK(buddy_signonoff_cb), NULL); - purple_signal_connect(purple_blist_get_handle(), "buddy-signed-off", gtk_blist_handle, PURPLE_CALLBACK(buddy_signonoff_cb), NULL); - purple_signal_connect(purple_blist_get_handle(), "buddy-privacy-changed", gtk_blist_handle, PURPLE_CALLBACK(pidgin_blist_update_privacy_cb), NULL); + purple_signal_register(gtk_blist_handle, "drawing-buddy", + purple_marshal_POINTER__POINTER, + purple_value_new(PURPLE_TYPE_STRING), 1, + purple_value_new(PURPLE_TYPE_SUBTYPE, + PURPLE_SUBTYPE_BLIST_BUDDY)); + + purple_signal_connect(purple_blist_get_handle(), "buddy-signed-on", + gtk_blist_handle, PURPLE_CALLBACK(buddy_signonoff_cb), NULL); + purple_signal_connect(purple_blist_get_handle(), "buddy-signed-off", + gtk_blist_handle, PURPLE_CALLBACK(buddy_signonoff_cb), NULL); + purple_signal_connect(purple_blist_get_handle(), "buddy-privacy-changed", + gtk_blist_handle, PURPLE_CALLBACK(pidgin_blist_update_privacy_cb), NULL); + } void