hello again,
So far I was able to display images in the TreeView widget(in a resized manner) in the raw column format. But when I select an image in the TreeView area the whole raw get selected, I wanted to select only a one images in a raw. I mean those images should be selected separately, is there is something wrong with my model, please help me, I have attached the code for model and view of the TreeViewWidget.
Thanks in advance
Code:
GtkWidget*
create_main_window (void)
{
// more code here
GtkCellRenderer *renderer1, *renderer2, *renderer3;
GtkTreeModel *model;
GtkTreeViewColumn *col1, *col2, *col3, *col4;
model = GTK_TREE_MODEL(create_liststore());
treeview1 = gtk_tree_view_new_with_model(model);
col1 = gtk_tree_view_column_new();
gtk_tree_view_append_column(GTK_TREE_VIEW(treeview1), col1);
renderer1 = gtk_cell_renderer_pixbuf_new();
gtk_tree_view_column_pack_start(col1, renderer1, FALSE);
gtk_tree_view_column_set_attributes(col1, renderer1, "pixbuf", NULL);
col2 = gtk_tree_view_column_new();
gtk_tree_view_append_column(GTK_TREE_VIEW(treeview1), col2);
renderer2 = gtk_cell_renderer_pixbuf_new();
gtk_tree_view_column_pack_start(col2, renderer2, FALSE);
gtk_tree_view_column_set_attributes(col2, renderer2, "pixbuf", NULL);
gtk_tree_view_set_model(GTK_TREE_VIEW(treeview1), model);
g_object_unref(model);
return main_window;
}
GtkListStore *
create_liststore(void)
{
GtkListStore *store;
GtkTreeIter iter;
GdkPixbuf *icon1, *icon2, *icon3, *icon4, *icon5;
const GdkPixbuf *scale_icon1, *scale_icon2, *scale_icon3, *scale_icon4, *scale_icon5;
GError *error = NULL;
store = gtk_list_store_new(1, GDK_TYPE_PIXBUF);
icon1 = gdk_pixbuf_new_from_file("1.jpg", &error);
if (error)
{
g_warning ("Could not load icon: %s\n", error->message);
g_error_free(error);
error = NULL;
}
scale_icon1 = gdk_pixbuf_scale_simple(icon1, 150, 100,GDK_INTERP_HYPER);
gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter,COL_ICON, scale_icon1,-1);
icon2 = gdk_pixbuf_new_from_file("2.jpg", &error);
if(error)
{
g_warning("Could not load icon: %s\n", error->message);
g_error_free(error);
error = NULL;
}
scale_icon2 = gdk_pixbuf_scale_simple(icon2, 150, 100, GDK_INTERP_HYPER);
gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter, COL_ICON, scale_icon2, -1);
icon3 = gdk_pixbuf_new_from_file("3.jpg", &error);
if(error)
{
g_warning("Could not load icon: %s\n", error->message);
g_error_free(error);
error = NULL;
}
scale_icon3 = gdk_pixbuf_scale_simple(icon3, 150, 100, GDK_INTERP_HYPER);
gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter, COL_ICON,scale_icon3, -1);
icon4 = gdk_pixbuf_new_from_file("4.jpg", &error);
if(error)
{
g_warning("Could not load icon: %s\n", error->message);
g_error_free(error);
error = NULL;
}
scale_icon4 = gdk_pixbuf_scale_simple(icon4, 150, 100, GDK_INTERP_HYPER);
gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter, COL_ICON, scale_icon4, -1);
icon5 = gdk_pixbuf_new_from_file("5.jpg", &error);
if(error)
{
g_warning("Could not load icon: %s\n", error->message);
g_error_free(error);
error = NULL;
}
scale_icon5 = gdk_pixbuf_scale_simple(icon2, 150, 100, GDK_INTERP_HYPER);
gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter, COL_ICON, scale_icon5, -1);
return store;
}