1 2 #include <stdlib.h> 3 #include "ast-model.h" 4 #include "ast-inspect.h" 5 #include "ast-view.h" 6 7 static GtkWidget * 8 create_view_and_model (void *ptr) 9 { 10 GtkTreeViewColumn *text; 11 GtkCellRenderer *renderer; 12 AstNode *root; 13 GtkWidget *view; 14 15 root = ast_new(NULL, 0, "", ptr, inspect_symbol_list); 16 17 view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(root)); 18 19 g_object_unref(root); /* destroy store automatically with view */ 20 21 renderer = gtk_cell_renderer_text_new(); 22 text = gtk_tree_view_column_new_with_attributes("Node", renderer, 23 "text", AST_COL_NAME, 24 NULL); 25 gtk_tree_view_append_column(GTK_TREE_VIEW(view), text); 26 27 return view; 28 } 29 30 void 31 treeview_main (struct symbol_list *syms) 32 { 33 GtkWidget *window, *view, *scrollwin; 34 35 window = gtk_window_new(GTK_WINDOW_TOPLEVEL); 36 gtk_window_set_default_size (GTK_WINDOW(window), 600, 800); 37 g_signal_connect(window, "delete_event", gtk_main_quit, NULL); 38 39 scrollwin = gtk_scrolled_window_new(NULL,NULL); 40 41 view = create_view_and_model(syms); 42 43 gtk_container_add(GTK_CONTAINER(scrollwin), view); 44 gtk_container_add(GTK_CONTAINER(window), scrollwin); 45 46 gtk_widget_show_all(window); 47 48 gtk_main(); 49 }