- static GType type = 0;
-
- if (type)
- return type;
-
- if (1) {
- static const GTypeInfo cell_info =
- {
- sizeof (CustomListClass),
- NULL,
- NULL,
- (GClassInitFunc)custom_list_class_init,
- NULL,
- NULL,
- sizeof (CustomList),
- 0,
- (GInstanceInitFunc)custom_list_init,
- };
-
- // Derive from GtkCellRenderer
- type = g_type_register_static(GTK_TYPE_CELL_RENDERER, "CustomList", &cell_info, 0);
- }
-
- return type;
+ GtkTreeViewColumn *col;
+ GtkCellRenderer *renderer;
+ GtkWidget *view;
+
+ g_store = gtk_list_store_new(NB_COL, G_TYPE_STRING, GDK_TYPE_PIXBUF);
+
+ view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(g_store));
+ gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(view), TRUE);
+ gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(view), FALSE);
+
+ g_object_unref(g_store); // destroy store automatically with view
+
+ renderer = gtk_cell_renderer_text_new();
+ col = gtk_tree_view_column_new();
+ gtk_tree_view_column_pack_start(col, renderer, TRUE);
+ gtk_tree_view_column_add_attribute(col, renderer, "text", COL_THEME_FILE);
+ gtk_tree_view_column_set_visible(col, FALSE);
+ gtk_tree_view_append_column(GTK_TREE_VIEW(view),col);
+
+ g_width_list = 200;
+ g_height_list = 30;
+ g_renderer = gtk_cell_renderer_pixbuf_new();
+ g_object_set(g_renderer, "xalign", 0.0, NULL);
+ gtk_cell_renderer_set_fixed_size(g_renderer, g_width_list, g_height_list);
+ // specific to gtk-2.18 or higher
+ //gtk_cell_renderer_set_padding(g_renderer, 5, 5);
+ col = gtk_tree_view_column_new();
+ gtk_tree_view_column_pack_start(col, g_renderer, TRUE);
+ gtk_tree_view_column_add_attribute(col, g_renderer, "pixbuf", COL_SNAPSHOT);
+ gtk_tree_view_append_column(GTK_TREE_VIEW(view),col);
+
+ GtkTreeSortable *sortable;
+ sortable = GTK_TREE_SORTABLE(g_store);
+ gtk_tree_sortable_set_sort_column_id(sortable, COL_THEME_FILE, GTK_SORT_ASCENDING);
+ return view;