diff src/gtkrequest.c @ 7909:5be22af4ebfc

[gaim-migrate @ 8569] Reworked the list field API a bit. Items now have data associated with them (which is not automatically freed by the API). committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Sun, 21 Dec 2003 20:51:05 +0000
parents 1d0bc32f8038
children c3dc33bb94dc
line wrap: on
line diff
--- a/src/gtkrequest.c	Sun Dec 21 19:58:11 2003 +0000
+++ b/src/gtkrequest.c	Sun Dec 21 20:51:05 2003 +0000
@@ -621,7 +621,7 @@
 	GaimRequestField *field = (GaimRequestField *)data;
 	const char *text;
 
-	gtk_tree_model_get(model, iter, 0, &text, -1);
+	gtk_tree_model_get(model, iter, 1, &text, -1);
 
 	gaim_request_field_list_add_selected(field, text);
 }
@@ -643,6 +643,8 @@
 	GtkCellRenderer *renderer;
 	GtkTreeSelection *sel;
 	GtkTreeViewColumn *column;
+	GtkTreeIter iter;
+	const GList *l;
 
 	/* Create the scrolled window */
 	sw = gtk_scrolled_window_new(NULL, NULL);
@@ -654,7 +656,7 @@
 	gtk_widget_show(sw);
 
 	/* Create the list store */
-	store = gtk_list_store_new(1, G_TYPE_STRING);
+	store = gtk_list_store_new(2, G_TYPE_POINTER, G_TYPE_STRING);
 
 	/* Create the tree view */
 	treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
@@ -674,7 +676,19 @@
 
 	renderer = gtk_cell_renderer_text_new();
 	gtk_tree_view_column_pack_start(column, renderer, TRUE);
-	gtk_tree_view_column_add_attribute(column, renderer, "text", 0);
+	gtk_tree_view_column_add_attribute(column, renderer, "text", 1);
+
+	for (l = gaim_request_field_list_get_items(field); l != NULL; l = l->next)
+	{
+		const char *text = (const char *)l->data;
+
+		gtk_list_store_append(store, &iter);
+
+		gtk_list_store_set(store, &iter,
+						   0, gaim_request_field_list_get_data(field, text),
+						   1, text,
+						   -1);
+	}
 
 	gtk_container_add(GTK_CONTAINER(sw), treeview);
 	gtk_widget_show(treeview);