| 821 |
821 |
| 822 void |
822 void |
| 823 purple_request_field_list_add(PurpleRequestField *field, const char *item, |
823 purple_request_field_list_add(PurpleRequestField *field, const char *item, |
| 824 void *data) |
824 void *data) |
| 825 { |
825 { |
| |
826 purple_request_field_list_add_icon(field, item, NULL, data); |
| |
827 } |
| |
828 |
| |
829 void |
| |
830 purple_request_field_list_add_icon(PurpleRequestField *field, const char *item, const char* icon_path, |
| |
831 void *data) |
| |
832 { |
| 826 g_return_if_fail(field != NULL); |
833 g_return_if_fail(field != NULL); |
| 827 g_return_if_fail(item != NULL); |
834 g_return_if_fail(item != NULL); |
| 828 g_return_if_fail(data != NULL); |
835 g_return_if_fail(data != NULL); |
| 829 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST); |
836 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST); |
| 830 |
837 |
| |
838 if (icon_path) |
| |
839 { |
| |
840 if (field->u.list.icons == NULL) |
| |
841 { |
| |
842 GList *l; |
| |
843 for (l = field->u.list.items ; l != NULL ; l = l->next) |
| |
844 { |
| |
845 /* Order doesn't matter, because we're just |
| |
846 * filing in blank items. So, we use |
| |
847 * g_list_prepend() because it's faster. */ |
| |
848 field->u.list.icons = g_list_prepend(field->u.list.icons, NULL); |
| |
849 } |
| |
850 } |
| |
851 field->u.list.icons = g_list_append(field->u.list.icons, g_strdup(icon_path)); |
| |
852 } |
| |
853 else if (field->u.list.icons) |
| |
854 { |
| |
855 /* Keep this even with the items list. */ |
| |
856 field->u.list.icons = g_list_append(field->u.list.icons, NULL); |
| |
857 } |
| |
858 |
| 831 field->u.list.items = g_list_append(field->u.list.items, g_strdup(item)); |
859 field->u.list.items = g_list_append(field->u.list.items, g_strdup(item)); |
| 832 |
|
| 833 g_hash_table_insert(field->u.list.item_data, g_strdup(item), data); |
|
| 834 } |
|
| 835 |
|
| 836 void |
|
| 837 purple_request_field_list_add_icon(PurpleRequestField *field, const char *item, const char* icon_path, |
|
| 838 void *data) |
|
| 839 { |
|
| 840 g_return_if_fail(field != NULL); |
|
| 841 g_return_if_fail(item != NULL); |
|
| 842 g_return_if_fail(data != NULL); |
|
| 843 g_return_if_fail(icon_path != NULL); |
|
| 844 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST); |
|
| 845 |
|
| 846 field->u.list.items = g_list_append(field->u.list.items, g_strdup(item)); |
|
| 847 field->u.list.icons = g_list_append(field->u.list.icons, g_strdup(icon_path)); |
|
| 848 |
|
| 849 g_hash_table_insert(field->u.list.item_data, g_strdup(item), data); |
860 g_hash_table_insert(field->u.list.item_data, g_strdup(item), data); |
| 850 } |
861 } |
| 851 |
862 |
| 852 void |
863 void |
| 853 purple_request_field_list_add_selected(PurpleRequestField *field, const char *item) |
864 purple_request_field_list_add_selected(PurpleRequestField *field, const char *item) |