> Hello,
> 
> I need help understanding how one would create a treeview so that the
> first column is an icon and the second column is text.  The icon and
> text represent the type of machine the user can choose (linux
> workstation, linux server, hp).  I want to have a different icon for
> each machine; however, I notice that whatever icon is called last in the
> code that I have written, is the icon that is shown for ALL the rows.  
> 
> Please help!  What am I doing wrong?

I forgot to attach the code!

Here it is:


void build_server_list (GtkWidget *treeview)
{
        GtkListStore *liststore;
        GtkTreeIter iter;
        GtkCellRenderer *text_renderer;
        GtkCellRenderer *icon_renderer;
        gint i = 0;
        gint count = 0;
        

        icon_renderer = gtk_cell_renderer_pixbuf_new();
        gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW(treeview),
                                               0,      
                                               " ",  
                                               icon_renderer,
                                               NULL);
        
        text_renderer = gtk_cell_renderer_text_new();
        gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW(treeview),
                                               1,      
                                               " ",  
                                               text_renderer,
                                               NULL);
        
        liststore = gtk_list_store_new(2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
        
        /* workstations */
        count = g_strv_length(workstations);
        g_object_set(icon_renderer, "stock-id", "gtk-close", NULL);
        for (i=0; i<count; i++) {
                gtk_list_store_append(liststore, &iter);
                gtk_list_store_set(liststore, &iter,
                        0, icon_renderer,
                        1, workstations[i], -1);
        }
        
        /* linux servers */
        count = g_strv_length(servers_linux);
        g_object_set(icon_renderer, "stock-id", "gtk-save", NULL);
        for (i=0; i<count; i++) {
                gtk_list_store_append(liststore, &iter);
                gtk_list_store_set(liststore, &iter,
                        0, icon_renderer,
                        1, servers_linux[i], -1);
        }
        
        
        /* hp servers */
        count = g_strv_length(servers_hp);
        g_object_set(icon_renderer, "stock-id", "gtk-open", NULL);
        for (i=0; i<count; i++) {
                gtk_list_store_append(liststore, &iter);
                gtk_list_store_set(liststore, &iter,
                        0, icon_renderer,
                        1, servers_hp[i], -1);
        }
        
        gtk_tree_view_set_model(GTK_TREE_VIEW(treeview),
GTK_TREE_MODEL(liststore));
}


_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to