diff src/protocols/msn/msn.c @ 9951:42cdec4f639b

[gaim-migrate @ 10847] <faceprint> datallah: i can just commit that without thinking, right? <audiokat2> faceprint: you can't break HEAD any worse right now :) committer: Tailor Script <tailor@pidgin.im>
author Nathan Walp <nwalp@pidgin.im>
date Sat, 04 Sep 2004 16:51:49 +0000
parents f8e395a054e2
children d908907d9441
line wrap: on
line diff
--- a/src/protocols/msn/msn.c	Sat Sep 04 05:36:32 2004 +0000
+++ b/src/protocols/msn/msn.c	Sat Sep 04 16:51:49 2004 +0000
@@ -419,42 +419,69 @@
 }
 
 static char *
-msn_status_text(GaimBuddy *b)
+msn_status_text(GaimBuddy *buddy)
 {
-	if (b->uc & UC_UNAVAILABLE)
-		return g_strdup(msn_away_get_text(MSN_AWAY_TYPE(b->uc)));
+	GaimPresence *presence = gaim_buddy_get_presence(buddy);
+	GaimStatus *status = gaim_presence_get_active_status(presence);
+
+	if (!gaim_status_is_available(status))
+		return g_strdup(gaim_status_get_name(status));
 
 	return NULL;
 }
 
 static char *
-msn_tooltip_text(GaimBuddy *b)
+msn_tooltip_text(GaimBuddy *buddy)
 {
+	GaimPresence *presence = gaim_buddy_get_presence(buddy);
+	GaimStatus *status = gaim_presence_get_active_status(presence);
 	char *text = NULL;
 
-	if (GAIM_BUDDY_IS_ONLINE(b))
+	if (gaim_presence_is_online(presence))
 	{
 		text = g_strdup_printf(_("\n<b>%s:</b> %s"), _("Status"),
-							   msn_away_get_text(MSN_AWAY_TYPE(b->uc)));
+				gaim_status_get_name(status));
 	}
 
 	return text;
 }
 
 static GList *
-msn_away_states(GaimConnection *gc)
+msn_status_types(GaimAccount *account)
 {
-	GList *m = NULL;
+	GaimStatusType *offline;
+	GaimStatusType *online;
+	GaimStatusType *unavail;
+	GList *types = NULL;
+
+	offline = gaim_status_type_new(GAIM_STATUS_OFFLINE,
+			"offline", _("Offline"), FALSE);
+	types = g_list_append(types, offline);
+
+	online = gaim_status_type_new(GAIM_STATUS_ONLINE,
+			"online", _("Online"), FALSE);
+	types = g_list_append(types, online);
 
-	m = g_list_append(m, _("Available"));
-	m = g_list_append(m, _("Away From Computer"));
-	m = g_list_append(m, _("Be Right Back"));
-	m = g_list_append(m, _("Busy"));
-	m = g_list_append(m, _("On The Phone"));
-	m = g_list_append(m, _("Out To Lunch"));
-	m = g_list_append(m, _("Hidden"));
+	gaim_status_type_new(online, GAIM_STATUS_AVAILABLE, "available",
+			_("Available"), FALSE, FALSE, FALSE);
+	unavail = gaim_status_type_new(online, GAIM_STATUS_UNAVAILABLE,
+			"unavailable", _("Unavailable"),
+			FALSE, FALSE, FALSE);
 
-	return m;
+	gaim_status_type_new(unavail, GAIM_STATUS_AWAY, "away",
+			_("Away"), FALSE, TRUE, FALSE);
+	gaim_status_type_new(unavail, GAIM_STATUS_AWAY, "brb",
+			_("Be Right Back"), FALSE, TRUE, FALSE);
+	gaim_status_type_new(unavail, GAIM_STATUS_AWAY, "busy",
+			_("Busy"), FALSE, TRUE, FALSE);
+	gaim_status_type_new(unavail, GAIM_STATUS_AWAY, "phone",
+			_("On The Phone"), FALSE, TRUE, FALSE);
+	gaim_status_type_new(unavail, GAIM_STATUS_AWAY, "lunch",
+			_("Out To Lunch"), FALSE, TRUE, FALSE);
+	gaim_status_type_new(unavail, GAIM_STATUS_HIDDEN, "hidden",
+			_("Hidden"), FALSE, TRUE, FALSE);
+
+	return types;
 }
 
 static GList *
@@ -1648,12 +1675,12 @@
 	msn_list_emblems,		/* list_emblems */
 	msn_status_text,		/* status_text */
 	msn_tooltip_text,		/* tooltip_text */
-	msn_away_states,		/* away_states */
-	msn_blist_node_menu,	/* blist_node_menu */
+	msn_status_types,		/* away_states */
+	msn_blist_node_menu,		/* blist_node_menu */
 	NULL,					/* chat_info */
 	NULL,					/* chat_info_defaults */
-	msn_login,				/* login */
-	msn_close,				/* close */
+	msn_login,			/* login */
+	msn_close,			/* close */
 	msn_send_im,			/* send_im */
 	NULL,					/* set_info */
 	msn_send_typing,		/* send_typing */
@@ -1669,7 +1696,7 @@
 	msn_add_deny,			/* add_deny */
 	msn_rem_permit,			/* rem_permit */
 	msn_rem_deny,			/* rem_deny */
-	msn_set_permit_deny,	/* set_permit_deny */
+	msn_set_permit_deny,		/* set_permit_deny */
 	NULL,					/* warn */
 	NULL,					/* join_chat */
 	NULL,					/* reject chat invite */