#include <gtk/gtk.h>

enum
{
    COL_ICON = 0,
    COL_TEXT,
    NUM_COLS
};

void Ajouter_TreeviewItem(GtkListStore *store, gchar* titre, gchar* img)
{
   GtkTreeIter    iter;
   GdkPixbuf     *icon;
   GError        *error = NULL;

   icon = gdk_pixbuf_new_from_file(img, &error);
   if (error)
   {
     g_warning ("Could not load icon: %s\n", error->message);
     g_error_free(error);
     error = NULL;
   }
   gtk_list_store_append(store, &iter);
   gtk_list_store_set(store, &iter,COL_ICON, icon, COL_TEXT, titre,-1);
}


GtkWidget * create_treeview(gchar* titre)
{
    GtkTreeModel      *model;
    GtkTreeViewColumn *col;
    GtkCellRenderer   *renderer;
    GtkWidget         *view;
    GtkListStore  *store;

    store = gtk_list_store_new(2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
    model = GTK_TREE_MODEL(store);

    Ajouter_TreeviewItem(store,"un"  ,"../gtk.png");
    Ajouter_TreeviewItem(store,"deux","../gtk.png");

    view = gtk_tree_view_new_with_model(model);

    col = gtk_tree_view_column_new();
    gtk_tree_view_column_set_title(col, titre);

    renderer = gtk_cell_renderer_pixbuf_new();
    gtk_tree_view_column_pack_start(col, renderer, FALSE);
    gtk_tree_view_column_set_attributes(col, renderer,"pixbuf", COL_ICON,NULL);

    renderer = gtk_cell_renderer_text_new();
    gtk_tree_view_column_pack_start(col, renderer, TRUE);
    gtk_tree_view_column_set_attributes(col, renderer,"text", COL_TEXT,NULL);

    gtk_tree_view_append_column(GTK_TREE_VIEW(view), col);

    gtk_widget_show_all(view);

    return view;
}


int main (int argc, char **argv)
{
  GtkWidget *window;
  GtkWidget *view;

  gtk_init(&argc, &argv);

  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  g_signal_connect(window, "delete_event", gtk_main_quit, NULL);

  view = create_treeview("Titre Treeview");

  gtk_container_add(GTK_CONTAINER(window), view);
  gtk_widget_show_all(window);
  gtk_main();

  return 0;
}