Mercurial > pidgin
diff libpurple/request.c @ 29418:365b90fa23cf
This patch comes from the combined work of contributors minstrel, NightFox,
bob007, salieff, and nops (these are their trac usernames). I have made
some minor tweaks to the patch, but these shouldn't be a problem. This patch
needs some TLC before we can merge it anywhere else; it adds API so it must
hit im.pidgin.pidgin.next.minor before hitting im.pidgin.pidgin. Refs #4508.
author | John Bailey <rekkanoryo@rekkanoryo.org> |
---|---|
date | Thu, 13 Nov 2008 17:04:53 +0000 |
parents | c2af0701d9cc |
children | 2d04fb25c6db |
line wrap: on
line diff
--- a/libpurple/request.c Thu Nov 13 09:00:45 2008 +0000 +++ b/libpurple/request.c Thu Nov 13 17:04:53 2008 +0000 @@ -790,6 +790,25 @@ } void +purple_request_field_list_set_pixbuf(PurpleRequestField *field, + gboolean pixbuf) +{ + g_return_if_fail(field != NULL); + g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST); + + field->u.list.pixbuf = pixbuf; +} + +gboolean +purple_request_field_list_get_pixbuf(const PurpleRequestField *field) +{ + g_return_val_if_fail(field != NULL, FALSE); + g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST, FALSE); + + return field->u.list.pixbuf; +} + +void purple_request_field_list_set_multi_select(PurpleRequestField *field, gboolean multi_select) { @@ -834,6 +853,22 @@ } void +purple_request_field_list_add_icon(PurpleRequestField *field, const char *item, const char* icon_path, + void *data) +{ + g_return_if_fail(field != NULL); + g_return_if_fail(item != NULL); + g_return_if_fail(data != NULL); + g_return_if_fail(icon_path != NULL); + g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST); + + field->u.list.items = g_list_append(field->u.list.items, g_strdup(item)); + field->u.list.icons = g_list_append(field->u.list.icons, g_strdup(icon_path)); + + g_hash_table_insert(field->u.list.item_data, g_strdup(item), data); +} + +void purple_request_field_list_add_selected(PurpleRequestField *field, const char *item) { g_return_if_fail(field != NULL); @@ -935,6 +970,16 @@ return field->u.list.items; } +GList * +purple_request_field_list_get_icons(const PurpleRequestField *field) +{ + g_return_val_if_fail(field != NULL, NULL); + g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST, NULL); + g_return_val_if_fail(field->u.list.pixbuf == TRUE, NULL); + + return field->u.list.icons; +} + PurpleRequestField * purple_request_field_label_new(const char *id, const char *text) {