/*------------------------------------------------------------------------ * Return UI tooltip information for a buddy when hovering in buddy list. * * @param buddy The buddy * @param info The tooltip info being returned * @param full Return full or summarized information */ static void mxit_tooltip( PurpleBuddy* buddy, PurpleNotifyUserInfo* info, gboolean full ) { struct contact* contact = purple_buddy_get_protocol_data( buddy ); if ( !contact ) return; /* status (reference: "libpurple/notify.h") */ if ( contact->presence != MXIT_PRESENCE_OFFLINE ) purple_notify_user_info_add_pair( info, _( "Status" ), mxit_convert_presence_to_name( contact->presence ) ); /* status message */ if ( contact->statusMsg ) purple_notify_user_info_add_pair( info, _( "Status Message" ), contact->statusMsg ); /* mood */ if ( contact->mood != MXIT_MOOD_NONE ) purple_notify_user_info_add_pair( info, _( "Mood" ), mxit_convert_mood_to_name( contact->mood ) ); /* subscription type */ if ( contact->subtype != 0 ) purple_notify_user_info_add_pair( info, _( "Subscription" ), mxit_convert_subtype_to_name( contact->subtype ) ); /* rejection message */ if ( ( contact->subtype == MXIT_SUBTYPE_REJECTED ) && ( contact->msg != NULL ) ) purple_notify_user_info_add_pair( info, _( "Rejection Message" ), contact->msg ); }
/*------------------------------------------------------------------------ * Display the profile information. * * @param session The MXit session object * @param username The username who's profile information this is * @param profile The profile */ void mxit_show_profile( struct MXitSession* session, const char* username, struct MXitProfile* profile ) { PurpleNotifyUserInfo* info = purple_notify_user_info_new(); struct contact* contact = NULL; PurpleBuddy* buddy; buddy = purple_find_buddy( session->acc, username ); if ( buddy ) { purple_notify_user_info_add_pair( info, _( "Alias" ), purple_buddy_get_alias( buddy ) ); purple_notify_user_info_add_section_break( info ); contact = purple_buddy_get_protocol_data(buddy); } purple_notify_user_info_add_pair( info, _( "Nick Name" ), profile->nickname ); purple_notify_user_info_add_pair( info, _( "Birthday" ), profile->birthday ); purple_notify_user_info_add_pair( info, _( "Gender" ), profile->male ? _( "Male" ) : _( "Female" ) ); // purple_notify_user_info_add_pair( info, _( "Hidden Number" ), profile->hidden ? _( "Yes" ) : _( "No" ) ); /* optional information */ // purple_notify_user_info_add_pair( info, _( "Title" ), profile->title ); purple_notify_user_info_add_pair( info, _( "First Name" ), profile->firstname ); purple_notify_user_info_add_pair( info, _( "Last Name" ), profile->lastname ); // purple_notify_user_info_add_pair( info, _( "Email" ), profile->email ); purple_notify_user_info_add_pair( info, _( "Country" ), profile->regcountry ); purple_notify_user_info_add_section_break( info ); if ( contact ) { /* presence */ purple_notify_user_info_add_pair( info, _( "Status" ), mxit_convert_presence_to_name( contact->presence ) ); /* mood */ if ( contact->mood != MXIT_MOOD_NONE ) purple_notify_user_info_add_pair( info, _( "Mood" ), mxit_convert_mood_to_name( contact->mood ) ); else purple_notify_user_info_add_pair( info, _( "Mood" ), _( "None" ) ); /* status message */ if ( contact->statusMsg ) purple_notify_user_info_add_pair( info, _( "Status Message" ), contact->statusMsg ); /* subscription type */ purple_notify_user_info_add_pair( info, _( "Subscription" ), mxit_convert_subtype_to_name( contact->subtype ) ); /* hidden number */ purple_notify_user_info_add_pair( info, _( "Hidden Number" ), ( contact->flags & MXIT_CFLAG_HIDDEN ) ? _( "Yes" ) : _( "No" ) ); } purple_notify_userinfo( session->con, username, info, NULL, NULL ); purple_notify_user_info_destroy( info ); }
/*------------------------------------------------------------------------ * Return short string representing buddy's status for display on buddy list. * Returns status message (if one is set), or otherwise the mood. * * @param buddy The buddy. * @return The status text */ char* mxit_status_text( PurpleBuddy* buddy ) { char* text = NULL; struct contact* contact = purple_buddy_get_protocol_data( buddy ); if ( !contact ) return NULL; if ( contact->statusMsg ) /* status message */ text = g_strdup( contact-> statusMsg ); else if ( contact->mood != MXIT_MOOD_NONE ) /* mood */ text = g_strdup( mxit_convert_mood_to_name( contact->mood ) ); return text; }
/*------------------------------------------------------------------------ * Return short string representing buddy's status for display on buddy list. * Returns status message (if one is set), or otherwise the mood. * * @param buddy The buddy. * @return The status text */ char* mxit_status_text( PurpleBuddy* buddy ) { struct contact* contact = purple_buddy_get_protocol_data(buddy); if ( !contact ) return NULL; if ( contact->statusMsg ) { /* status message */ return g_strdup( contact-> statusMsg ); } else { /* mood */ return g_strdup( mxit_convert_mood_to_name( contact->mood ) ); } }