1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| #include <stdlib.h>
#include <gtk/gtk.h>
#include <glib/gprintf.h>
enum {
TEXT_COLUMN,
N_COLUMN
};
int main(int argc, char **argv){
GtkWidget *pWindow;
GtkWidget *pTreeView;
GtkWidget *pScrollbar;
GtkTreeStore *pTreeStore;
GtkTreeViewColumn *pColumn;
GtkCellRenderer *pCellRenderer;
gchar *sTexte;
gtk_init(&argc, &argv);
//creation de la fenetre principale
pWindow=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(GTK_WINDOW(pWindow),800,600);
gtk_window_set_title(GTK_WINDOW(pWindow),"Arbres");
g_signal_connect(G_OBJECT(pWindow),"destroy",G_CALLBACK(gtk_main_quit),NULL);
//creation du model
pTreeStore=gtk_tree_store_new(N_COLUMN,G_TYPE_STRING);
sTexte = g_malloc(16); //ligne 30
//insertion des elements
GtkTreeIter pIter[2];
g_sprintf(sTexte, "conversations");
gtk_tree_store_append(pTreeStore,&pIter[0],NULL);
gtk_tree_store_set(pTreeStore,&pIter[0],TEXT_COLUMN,sTexte,-1 );
g_sprintf(sTexte,"Conversation");
gtk_tree_store_append(pTreeStore,&pIter[0],&pIter[1]);
gtk_tree_store_set(pTreeStore,&pIter[1],TEXT_COLUMN,sTexte,-1 );
g_free(sTexte);
//creation de la vue
pTreeView=gtk_tree_view_new_with_model(GTK_TREE_MODEL(pTreeStore));
//creation de la premiere colonne
pCellRenderer=gtk_cell_renderer_text_new();
pColumn=gtk_tree_view_column_new_with_attributes("Label",pCellRenderer,"text",TEXT_COLUMN,NULL);
//ajout de la colonne a la vue
gtk_tree_view_append_column(GTK_TREE_VIEW(pTreeView),pColumn);
//ajout de la vue a la fenetre
pScrollbar=gtk_scrolled_window_new(NULL,NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(pScrollbar),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
gtk_container_add(GTK_CONTAINER(pScrollbar),pTreeView);
gtk_container_add(GTK_CONTAINER(pWindow),pScrollbar);
gtk_widget_show_all(pWindow);
gtk_main();
return EXIT_SUCCESS;
} |
Partager