int i, count;
GtkWidget *treeview;
+ GtkTreeSelection *selection;
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
GtkListStore *list_store;
treeview = gtk_tree_view_new ();
gtk_widget_show (treeview);
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
+ gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
+
for(i = 0, count = 0; columns[i].title; i++, count++)
list_store_types[i] = (columns[i].type == G_TYPE_OBJECT)?GDK_TYPE_PIXBUF:columns[i].type;
+ list_store_types[count] = G_TYPE_INT;
+
+ list_store = gtk_list_store_newv(count + 1, list_store_types);
- list_store = gtk_list_store_newv(count, list_store_types);
gtk_tree_view_set_model( GTK_TREE_VIEW( treeview ), GTK_TREE_MODEL( list_store ) );
for(i = 0; columns[i].title; i++)
{
char* prop;
- if(list_store_types[i] == G_TYPE_STRING)
- {
- renderer = gtk_cell_renderer_text_new();
- prop = "text";
- }
- else if(list_store_types[i] == G_TYPE_OBJECT)
+ if(columns[i].type == G_TYPE_OBJECT)
{
renderer = gtk_cell_renderer_pixbuf_new();
+ gtk_cell_renderer_set_padding(renderer, 0, 0);
prop = "pixbuf";
}
- else if(list_store_types[i] == G_TYPE_BOOLEAN)
+ else if(columns[i].type == G_TYPE_BOOLEAN)
{
renderer = gtk_cell_renderer_toggle_new();
prop = "active";
}
else
- renderer = NULL;
-
- if(!renderer) continue;
+ {
+ renderer = gtk_cell_renderer_text_new();
+ prop = "text";
+ }
column = gtk_tree_view_column_new_with_attributes(
columns[i].title, renderer, prop, i, NULL);