diff libgaim/protocols/jabber/jabber.c @ 15143:b81e4e44b509

[gaim-migrate @ 17929] User Info and Tooltips now use the GaimNotifyUserInfo object and methods defined in notify.h. GaimNotifyUserInfo objects encapsulate a list of GaimNotifyUserInfoEntry objects, each of which may have a label, a value, and be specified to be a section header. This moves the burden of UI generation of user information from the various prpls to the UI. The UI can choose how to display the information rather than being fenced into a particular HTML formatting. Consistency across the prpls' information presentation is now enforced, as well. gaim_notify_user_info_get_text_with_newline() generates text in the: <b>label</b>: value <b>label</b>: value format as was passed by convention from prpls in the past. committer: Tailor Script <tailor@pidgin.im>
author Evan Schoenberg <evan.s@dreskin.net>
date Sun, 10 Dec 2006 02:53:09 +0000
parents af9fde10e4e2
children fe05223b5d04
line wrap: on
line diff
--- a/libgaim/protocols/jabber/jabber.c	Sat Dec 09 20:20:17 2006 +0000
+++ b/libgaim/protocols/jabber/jabber.c	Sun Dec 10 02:53:09 2006 +0000
@@ -1127,7 +1127,7 @@
 	return ret;
 }
 
-static void jabber_tooltip_text(GaimBuddy *b, GString *str, gboolean full)
+static void jabber_tooltip_text(GaimBuddy *b, GaimNotifyUserInfo *user_info, gboolean full)
 {
 	JabberBuddy *jb;
 
@@ -1160,12 +1160,14 @@
 				else
 					sub = _("None");
 			}
-			g_string_append_printf(str, "\n<b>%s:</b> %s", _("Subscription"), sub);
+			
+			gaim_notify_user_info_add_pair(user_info, _("Subscription"), sub);
 		}
 
 		for(l=jb->resources; l; l = l->next) {
 			char *text = NULL;
 			char *res = NULL;
+			char *label, *value;
 			const char *state;
 
 			jbr = l->data;
@@ -1188,20 +1190,23 @@
 				text = NULL;
 			}
 
-			g_string_append_printf(str, "\n<b>%s%s:</b> %s%s%s",
-					_("Status"),
-					res ? res : "",
-					state,
-					text ? ": " : "",
-					text ? text : "");
+			label = g_strdup_printf("%s%s",
+							_("Status"), (res ? res : ""));
+			value = g_strdup_printf("%s%s%s",
+							state,
+							(text ? ": " : ""),
+							(text ? text : ""));
 
+			gaim_notify_user_info_add_pair(user_info, label, value);
+
+			g_free(label);
+			g_free(value);
 			g_free(text);
 			g_free(res);
 		}
 
 		if(!GAIM_BUDDY_IS_ONLINE(b) && jb->error_msg) {
-			g_string_append_printf(str, "\n<b>%s:</b> %s",
-					_("Error"), jb->error_msg);
+			gaim_notify_user_info_add_pair(user_info, _("Error"), jb->error_msg);
 		}
 	}
 }