pidgin/purple-plugin-pack

Merge
pp_2_6_0
2009-08-30, John Bailey
93089a7ce7f6
Merge
--- a/stress/stress.c Sun Aug 30 20:10:24 2009 -0400
+++ b/stress/stress.c Sun Aug 30 20:10:58 2009 -0400
@@ -109,8 +109,10 @@
stress_event_cb(gpointer data) {
StressBuddy *sb = (StressBuddy *)data;
PurpleAccount *account = purple_buddy_get_account(sb->buddy);
+ PurpleStatus *status = NULL;
gint event = rand() % nevents;
const gchar *name = purple_buddy_get_name(sb->buddy);
+ gchar *msg = NULL;
/* increment our event counter */
sb->nevents++;
@@ -119,7 +121,7 @@
purple_debug_info("stress", "firing event %d of %d for %s\n",
sb->nevents, sb->maxevents, name);
-
+
stress_close_convs(account, name);
switch(event) {
@@ -144,6 +146,11 @@
break;
}
+ msg = g_strdup_printf("event %d of %d", sb->nevents, sb->maxevents);
+ status = purple_presence_get_active_status(sb->buddy->presence);
+ purple_status_set_attr_string(status, "message", msg);
+ g_free(msg);
+
if(sb->maxevents > 0 && sb->nevents >= sb->maxevents) {
return FALSE;
}
@@ -159,6 +166,18 @@
return NULL;
}
+static gchar *
+stress_status_text(PurpleBuddy *buddy) {
+ StressBuddy *sb = STRESS_BUDDY(buddy);
+ PurplePresence *presence = purple_buddy_get_presence(buddy);
+ PurpleStatus *status = purple_presence_get_active_status(presence);
+ const gchar *msg = NULL;
+
+ msg = purple_status_get_attr_string(status, "message");
+
+ return (msg) ? g_strdup(msg) : NULL;
+}
+
#define add_event(setting, e1, e2) G_STMT_START { \
if(purple_account_get_bool(account, (setting), TRUE)) { \
events = g_list_prepend(events, GINT_TO_POINTER((e1))); \
@@ -258,16 +277,28 @@
g_return_val_if_fail(account != NULL, NULL);
- type = purple_status_type_new_full(PURPLE_STATUS_AVAILABLE,
- NULL, NULL, TRUE, TRUE, FALSE);
+ type =
+ purple_status_type_new_with_attrs(PURPLE_STATUS_AVAILABLE, NULL,
+ NULL, TRUE, TRUE, FALSE,
+ "message", _("Message"),
+ purple_value_new(PURPLE_TYPE_STRING),
+ NULL);
types = g_list_prepend(types, type);
- type = purple_status_type_new_full(PURPLE_STATUS_OFFLINE,
- NULL, NULL, TRUE, TRUE, FALSE);
+ type =
+ purple_status_type_new_with_attrs(PURPLE_STATUS_OFFLINE, NULL,
+ NULL, TRUE, TRUE, FALSE,
+ "message", _("Message"),
+ purple_value_new(PURPLE_TYPE_STRING),
+ NULL);
types = g_list_prepend(types, type);
- type = purple_status_type_new_full(PURPLE_STATUS_AWAY,
- NULL, NULL, TRUE, TRUE, FALSE);
+ type =
+ purple_status_type_new_with_attrs(PURPLE_STATUS_AWAY, NULL,
+ NULL, TRUE, TRUE, FALSE,
+ "message", _("Message"),
+ purple_value_new(PURPLE_TYPE_STRING),
+ NULL);
types = g_list_prepend(types, type);
return types;
@@ -280,7 +311,7 @@
NO_BUDDY_ICONS,
stress_list_icon,
NULL,
- NULL,
+ stress_status_text,
NULL,
stress_status_types,
NULL,