libpurple/request.c

branch
cpw.rekkanoryo.icqxstatus
changeset 24899
54719498c900
parent 24892
2cbfa7f1b756
child 24900
a19d983918c2
equal deleted inserted replaced
24898:daecfff47300 24899:54719498c900
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)

mercurial