Mercurial > pidgin.yaz
comparison pidgin/gtkrequest.c @ 29853:c3b735f8f490
propagate from branch 'im.pidgin.pidgin' (head 226a30da7a9fe3b828a1fe564797b3388e6159bc)
to branch 'im.pidgin.cpw.rekkanoryo.icqxstatus' (head b7c2ff532b70196eedf48de0343d06eb45e90f1f)
author | Marcus Lundblad <ml@update.uu.se> |
---|---|
date | Sun, 07 Feb 2010 19:40:49 +0000 |
parents | a538cb73f897 |
children | 185677f47825 |
comparison
equal
deleted
inserted
replaced
29389:584ef95f0e77 | 29853:c3b735f8f490 |
---|---|
1064 GtkCellRenderer *renderer; | 1064 GtkCellRenderer *renderer; |
1065 GtkTreeSelection *sel; | 1065 GtkTreeSelection *sel; |
1066 GtkTreeViewColumn *column; | 1066 GtkTreeViewColumn *column; |
1067 GtkTreeIter iter; | 1067 GtkTreeIter iter; |
1068 GList *l; | 1068 GList *l; |
1069 GList *icons = NULL; | |
1070 | |
1071 icons = purple_request_field_list_get_icons(field); | |
1069 | 1072 |
1070 /* Create the scrolled window */ | 1073 /* Create the scrolled window */ |
1071 sw = gtk_scrolled_window_new(NULL, NULL); | 1074 sw = gtk_scrolled_window_new(NULL, NULL); |
1072 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), | 1075 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), |
1073 GTK_POLICY_AUTOMATIC, | 1076 GTK_POLICY_AUTOMATIC, |
1075 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), | 1078 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), |
1076 GTK_SHADOW_IN); | 1079 GTK_SHADOW_IN); |
1077 gtk_widget_show(sw); | 1080 gtk_widget_show(sw); |
1078 | 1081 |
1079 /* Create the list store */ | 1082 /* Create the list store */ |
1080 store = gtk_list_store_new(2, G_TYPE_POINTER, G_TYPE_STRING); | 1083 if (icons) |
1084 store = gtk_list_store_new(3, G_TYPE_POINTER, G_TYPE_STRING, GDK_TYPE_PIXBUF); | |
1085 else | |
1086 store = gtk_list_store_new(2, G_TYPE_POINTER, G_TYPE_STRING); | |
1081 | 1087 |
1082 /* Create the tree view */ | 1088 /* Create the tree view */ |
1083 treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); | 1089 treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); |
1084 g_object_unref(G_OBJECT(store)); | 1090 g_object_unref(G_OBJECT(store)); |
1085 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE); | 1091 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE); |
1094 | 1100 |
1095 renderer = gtk_cell_renderer_text_new(); | 1101 renderer = gtk_cell_renderer_text_new(); |
1096 gtk_tree_view_column_pack_start(column, renderer, TRUE); | 1102 gtk_tree_view_column_pack_start(column, renderer, TRUE); |
1097 gtk_tree_view_column_add_attribute(column, renderer, "text", 1); | 1103 gtk_tree_view_column_add_attribute(column, renderer, "text", 1); |
1098 | 1104 |
1105 if (icons) | |
1106 { | |
1107 renderer = gtk_cell_renderer_pixbuf_new(); | |
1108 gtk_tree_view_column_pack_start(column, renderer, TRUE); | |
1109 gtk_tree_view_column_add_attribute(column, renderer, "pixbuf", 2); | |
1110 | |
1111 gtk_widget_set_size_request(treeview, 200, 400); | |
1112 } | |
1113 | |
1099 for (l = purple_request_field_list_get_items(field); l != NULL; l = l->next) | 1114 for (l = purple_request_field_list_get_items(field); l != NULL; l = l->next) |
1100 { | 1115 { |
1101 const char *text = (const char *)l->data; | 1116 const char *text = (const char *)l->data; |
1102 | 1117 |
1103 gtk_list_store_append(store, &iter); | 1118 gtk_list_store_append(store, &iter); |
1104 | 1119 |
1105 gtk_list_store_set(store, &iter, | 1120 if (icons) |
1121 { | |
1122 const char *icon_path = (const char *)icons->data; | |
1123 GdkPixbuf* pixbuf = NULL; | |
1124 | |
1125 if (icon_path) | |
1126 pixbuf = gdk_pixbuf_new_from_file(icon_path, NULL); | |
1127 | |
1128 gtk_list_store_set(store, &iter, | |
1129 0, purple_request_field_list_get_data(field, text), | |
1130 1, text, | |
1131 2, pixbuf, | |
1132 -1); | |
1133 icons = icons->next; | |
1134 } | |
1135 else | |
1136 gtk_list_store_set(store, &iter, | |
1106 0, purple_request_field_list_get_data(field, text), | 1137 0, purple_request_field_list_get_data(field, text), |
1107 1, text, | 1138 1, text, |
1108 -1); | 1139 -1); |
1109 | 1140 |
1110 if (purple_request_field_list_is_selected(field, text)) | 1141 if (purple_request_field_list_is_selected(field, text)) |