| 3628 PurplePlugin *prpl; |
3628 PurplePlugin *prpl; |
| 3629 PurplePluginProtocolInfo *prpl_info; |
3629 PurplePluginProtocolInfo *prpl_info; |
| 3630 const char *name = NULL; |
3630 const char *name = NULL; |
| 3631 char *filename, *path; |
3631 char *filename, *path; |
| 3632 PurplePresence *p; |
3632 PurplePresence *p; |
| |
3633 PurpleStatus *tune; |
| 3633 |
3634 |
| 3634 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) { |
3635 if(PURPLE_BLIST_NODE_IS_CONTACT(node)) { |
| 3635 if(!gtknode->contact_expanded) { |
3636 if(!gtknode->contact_expanded) { |
| 3636 buddy = purple_contact_get_priority_buddy((PurpleContact*)node); |
3637 buddy = purple_contact_get_priority_buddy((PurpleContact*)node); |
| 3637 gtkbuddynode = ((PurpleBlistNode*)buddy)->ui_data; |
3638 gtkbuddynode = ((PurpleBlistNode*)buddy)->ui_data; |
| 3666 if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_MOBILE)) { |
3667 if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_MOBILE)) { |
| 3667 path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emblems", "16", "mobile.png", NULL); |
3668 path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emblems", "16", "mobile.png", NULL); |
| 3668 return _pidgin_blist_get_cached_emblem(path); |
3669 return _pidgin_blist_get_cached_emblem(path); |
| 3669 } |
3670 } |
| 3670 |
3671 |
| 3671 if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_TUNE)) { |
3672 tune = purple_presence_get_status(p, "tune"); |
| |
3673 if (tune && purple_status_is_active(tune)) { |
| |
3674 /* Only in MSN. |
| |
3675 * TODO: Replace "Tune" with generalized "Media" in 3.0. */ |
| |
3676 if (purple_status_get_attr_string(tune, "game") != NULL) { |
| |
3677 path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emblems", "16", "game.png", NULL); |
| |
3678 return _pidgin_blist_get_cached_emblem(path); |
| |
3679 } |
| |
3680 /* Only in MSN. |
| |
3681 * TODO: Replace "Tune" with generalized "Media" in 3.0. */ |
| |
3682 if (purple_status_get_attr_string(tune, "office") != NULL) { |
| |
3683 path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emblems", "16", "office.png", NULL); |
| |
3684 return _pidgin_blist_get_cached_emblem(path); |
| |
3685 } |
| |
3686 /* Regular old "tune" is the only one in all protocols. */ |
| 3672 path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emblems", "16", "music.png", NULL); |
3687 path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emblems", "16", "music.png", NULL); |
| 3673 return _pidgin_blist_get_cached_emblem(path); |
3688 return _pidgin_blist_get_cached_emblem(path); |
| 3674 } |
3689 } |
| 3675 |
3690 |
| 3676 prpl = purple_find_prpl(purple_account_get_protocol_id(buddy->account)); |
3691 prpl = purple_find_prpl(purple_account_get_protocol_id(buddy->account)); |