Mercurial > pidgin.yaz
comparison pidgin/gtkrequest.c @ 29845:9a5d98ddca8d
propagate from branch 'im.pidgin.pidgin' (head 2ee32f4f1f50a3e3c9038487554b4cfa22507df0)
to branch 'im.pidgin.cpw.rekkanoryo.icqxstatus' (head a9b19faa48d45e5536c6c2f66dd309f37f52bcce)
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Wed, 26 Nov 2008 22:11:44 +0000 |
parents | 245f3432a5ab |
children | 93cb9f54df45 |
comparison
equal
deleted
inserted
replaced
24488:a6a6a6c19058 | 29845:9a5d98ddca8d |
---|---|
994 GtkCellRenderer *renderer; | 994 GtkCellRenderer *renderer; |
995 GtkTreeSelection *sel; | 995 GtkTreeSelection *sel; |
996 GtkTreeViewColumn *column; | 996 GtkTreeViewColumn *column; |
997 GtkTreeIter iter; | 997 GtkTreeIter iter; |
998 GList *l; | 998 GList *l; |
999 GList *icons = NULL; | |
1000 | |
1001 icons = purple_request_field_list_get_icons(field); | |
999 | 1002 |
1000 /* Create the scrolled window */ | 1003 /* Create the scrolled window */ |
1001 sw = gtk_scrolled_window_new(NULL, NULL); | 1004 sw = gtk_scrolled_window_new(NULL, NULL); |
1002 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), | 1005 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), |
1003 GTK_POLICY_AUTOMATIC, | 1006 GTK_POLICY_AUTOMATIC, |
1005 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), | 1008 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), |
1006 GTK_SHADOW_IN); | 1009 GTK_SHADOW_IN); |
1007 gtk_widget_show(sw); | 1010 gtk_widget_show(sw); |
1008 | 1011 |
1009 /* Create the list store */ | 1012 /* Create the list store */ |
1010 store = gtk_list_store_new(2, G_TYPE_POINTER, G_TYPE_STRING); | 1013 if (icons) |
1014 store = gtk_list_store_new(3, G_TYPE_POINTER, G_TYPE_STRING, GDK_TYPE_PIXBUF); | |
1015 else | |
1016 store = gtk_list_store_new(2, G_TYPE_POINTER, G_TYPE_STRING); | |
1011 | 1017 |
1012 /* Create the tree view */ | 1018 /* Create the tree view */ |
1013 treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); | 1019 treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); |
1014 g_object_unref(G_OBJECT(store)); | 1020 g_object_unref(G_OBJECT(store)); |
1015 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE); | 1021 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE); |
1024 | 1030 |
1025 renderer = gtk_cell_renderer_text_new(); | 1031 renderer = gtk_cell_renderer_text_new(); |
1026 gtk_tree_view_column_pack_start(column, renderer, TRUE); | 1032 gtk_tree_view_column_pack_start(column, renderer, TRUE); |
1027 gtk_tree_view_column_add_attribute(column, renderer, "text", 1); | 1033 gtk_tree_view_column_add_attribute(column, renderer, "text", 1); |
1028 | 1034 |
1035 if (icons) | |
1036 { | |
1037 renderer = gtk_cell_renderer_pixbuf_new(); | |
1038 gtk_tree_view_column_pack_start(column, renderer, TRUE); | |
1039 gtk_tree_view_column_add_attribute(column, renderer, "pixbuf", 2); | |
1040 | |
1041 gtk_widget_set_size_request(treeview, 200, 400); | |
1042 } | |
1043 | |
1029 for (l = purple_request_field_list_get_items(field); l != NULL; l = l->next) | 1044 for (l = purple_request_field_list_get_items(field); l != NULL; l = l->next) |
1030 { | 1045 { |
1031 const char *text = (const char *)l->data; | 1046 const char *text = (const char *)l->data; |
1032 | 1047 |
1033 gtk_list_store_append(store, &iter); | 1048 gtk_list_store_append(store, &iter); |
1034 | 1049 |
1035 gtk_list_store_set(store, &iter, | 1050 if (icons) |
1051 { | |
1052 const char *icon_path = (const char *)icons->data; | |
1053 char* filename; | |
1054 GdkPixbuf* pixbuf = NULL; | |
1055 | |
1056 if (icon_path) | |
1057 { | |
1058 filename = g_build_filename(DATADIR, icon_path, NULL); | |
1059 pixbuf = gdk_pixbuf_new_from_file(filename, NULL); | |
1060 g_free(filename); | |
1061 } | |
1062 | |
1063 gtk_list_store_set(store, &iter, | |
1064 0, purple_request_field_list_get_data(field, text), | |
1065 1, text, | |
1066 2, pixbuf, | |
1067 -1); | |
1068 icons = icons->next; | |
1069 } | |
1070 else | |
1071 gtk_list_store_set(store, &iter, | |
1036 0, purple_request_field_list_get_data(field, text), | 1072 0, purple_request_field_list_get_data(field, text), |
1037 1, text, | 1073 1, text, |
1038 -1); | 1074 -1); |
1039 | 1075 |
1040 if (purple_request_field_list_is_selected(field, text)) | 1076 if (purple_request_field_list_is_selected(field, text)) |