comparison 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
comparison
equal deleted inserted replaced
7908:ad4841411ada 7909:5be22af4ebfc
619 GtkTreeIter *iter, gpointer data) 619 GtkTreeIter *iter, gpointer data)
620 { 620 {
621 GaimRequestField *field = (GaimRequestField *)data; 621 GaimRequestField *field = (GaimRequestField *)data;
622 const char *text; 622 const char *text;
623 623
624 gtk_tree_model_get(model, iter, 0, &text, -1); 624 gtk_tree_model_get(model, iter, 1, &text, -1);
625 625
626 gaim_request_field_list_add_selected(field, text); 626 gaim_request_field_list_add_selected(field, text);
627 } 627 }
628 628
629 static void 629 static void
641 GtkWidget *treeview; 641 GtkWidget *treeview;
642 GtkListStore *store; 642 GtkListStore *store;
643 GtkCellRenderer *renderer; 643 GtkCellRenderer *renderer;
644 GtkTreeSelection *sel; 644 GtkTreeSelection *sel;
645 GtkTreeViewColumn *column; 645 GtkTreeViewColumn *column;
646 GtkTreeIter iter;
647 const GList *l;
646 648
647 /* Create the scrolled window */ 649 /* Create the scrolled window */
648 sw = gtk_scrolled_window_new(NULL, NULL); 650 sw = gtk_scrolled_window_new(NULL, NULL);
649 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), 651 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
650 GTK_POLICY_AUTOMATIC, 652 GTK_POLICY_AUTOMATIC,
652 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), 654 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw),
653 GTK_SHADOW_IN); 655 GTK_SHADOW_IN);
654 gtk_widget_show(sw); 656 gtk_widget_show(sw);
655 657
656 /* Create the list store */ 658 /* Create the list store */
657 store = gtk_list_store_new(1, G_TYPE_STRING); 659 store = gtk_list_store_new(2, G_TYPE_POINTER, G_TYPE_STRING);
658 660
659 /* Create the tree view */ 661 /* Create the tree view */
660 treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); 662 treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
661 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(treeview), TRUE); 663 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(treeview), TRUE);
662 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE); 664 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE);
672 column = gtk_tree_view_column_new(); 674 column = gtk_tree_view_column_new();
673 gtk_tree_view_insert_column(GTK_TREE_VIEW(treeview), column, -1); 675 gtk_tree_view_insert_column(GTK_TREE_VIEW(treeview), column, -1);
674 676
675 renderer = gtk_cell_renderer_text_new(); 677 renderer = gtk_cell_renderer_text_new();
676 gtk_tree_view_column_pack_start(column, renderer, TRUE); 678 gtk_tree_view_column_pack_start(column, renderer, TRUE);
677 gtk_tree_view_column_add_attribute(column, renderer, "text", 0); 679 gtk_tree_view_column_add_attribute(column, renderer, "text", 1);
680
681 for (l = gaim_request_field_list_get_items(field); l != NULL; l = l->next)
682 {
683 const char *text = (const char *)l->data;
684
685 gtk_list_store_append(store, &iter);
686
687 gtk_list_store_set(store, &iter,
688 0, gaim_request_field_list_get_data(field, text),
689 1, text,
690 -1);
691 }
678 692
679 gtk_container_add(GTK_CONTAINER(sw), treeview); 693 gtk_container_add(GTK_CONTAINER(sw), treeview);
680 gtk_widget_show(treeview); 694 gtk_widget_show(treeview);
681 695
682 return sw; 696 return sw;