Mercurial > pidgin.yaz
comparison libpurple/request.c @ 29867:185677f47825
propagate from branch 'im.pidgin.pidgin' (head 267f28808ab6eeda6b5d68f6433f2b3fcf230d4f)
to branch 'im.pidgin.cpw.rekkanoryo.icqxstatus' (head 7e67fade1189ddc36e8d1a6560c75f19d0df32aa)
author | Marcus Lundblad <ml@update.uu.se> |
---|---|
date | Thu, 18 Feb 2010 21:38:43 +0000 |
parents | 5391094529c6 |
children | 6d3a90b49dba |
comparison
equal
deleted
inserted
replaced
29795:bc2760c74a79 | 29867:185677f47825 |
---|---|
848 | 848 |
849 void | 849 void |
850 purple_request_field_list_add(PurpleRequestField *field, const char *item, | 850 purple_request_field_list_add(PurpleRequestField *field, const char *item, |
851 void *data) | 851 void *data) |
852 { | 852 { |
853 purple_request_field_list_add_icon(field, item, NULL, data); | |
854 } | |
855 | |
856 void | |
857 purple_request_field_list_add_icon(PurpleRequestField *field, const char *item, const char* icon_path, | |
858 void *data) | |
859 { | |
853 g_return_if_fail(field != NULL); | 860 g_return_if_fail(field != NULL); |
854 g_return_if_fail(item != NULL); | 861 g_return_if_fail(item != NULL); |
855 g_return_if_fail(data != NULL); | 862 g_return_if_fail(data != NULL); |
856 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST); | 863 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST); |
857 | 864 |
865 if (icon_path) | |
866 { | |
867 if (field->u.list.icons == NULL) | |
868 { | |
869 GList *l; | |
870 for (l = field->u.list.items ; l != NULL ; l = l->next) | |
871 { | |
872 /* Order doesn't matter, because we're just | |
873 * filing in blank items. So, we use | |
874 * g_list_prepend() because it's faster. */ | |
875 field->u.list.icons = g_list_prepend(field->u.list.icons, NULL); | |
876 } | |
877 } | |
878 field->u.list.icons = g_list_append(field->u.list.icons, g_strdup(icon_path)); | |
879 } | |
880 else if (field->u.list.icons) | |
881 { | |
882 /* Keep this even with the items list. */ | |
883 field->u.list.icons = g_list_append(field->u.list.icons, NULL); | |
884 } | |
885 | |
858 field->u.list.items = g_list_append(field->u.list.items, g_strdup(item)); | 886 field->u.list.items = g_list_append(field->u.list.items, g_strdup(item)); |
859 | |
860 g_hash_table_insert(field->u.list.item_data, g_strdup(item), data); | 887 g_hash_table_insert(field->u.list.item_data, g_strdup(item), data); |
861 } | 888 } |
862 | 889 |
863 void | 890 void |
864 purple_request_field_list_add_selected(PurpleRequestField *field, const char *item) | 891 purple_request_field_list_add_selected(PurpleRequestField *field, const char *item) |
958 { | 985 { |
959 g_return_val_if_fail(field != NULL, NULL); | 986 g_return_val_if_fail(field != NULL, NULL); |
960 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST, NULL); | 987 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST, NULL); |
961 | 988 |
962 return field->u.list.items; | 989 return field->u.list.items; |
990 } | |
991 | |
992 GList * | |
993 purple_request_field_list_get_icons(const PurpleRequestField *field) | |
994 { | |
995 g_return_val_if_fail(field != NULL, NULL); | |
996 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST, NULL); | |
997 | |
998 return field->u.list.icons; | |
963 } | 999 } |
964 | 1000 |
965 PurpleRequestField * | 1001 PurpleRequestField * |
966 purple_request_field_label_new(const char *id, const char *text) | 1002 purple_request_field_label_new(const char *id, const char *text) |
967 { | 1003 { |