| 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; |