#include #include "window_main.h" #include "walls_ui.h" #include "db.h" #include "walls_model.h" inline static void filetree_create_model(GtkTreeView *filetree) { GtkTreeModel *tree_model; tree_model = GTK_TREE_MODEL(walls_model_new()); gtk_tree_view_set_model(filetree, GTK_TREE_MODEL(tree_model)); } inline static void filetree_init(GtkTreeView *filetree) { GtkTreeViewColumn *col1, *col2, *col3, *col4; GtkCellRenderer *renderer; col1 = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col1, "Name"); gtk_tree_view_append_column(filetree, col1); col2 = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col2, "Size"); gtk_tree_view_append_column(filetree, col2); col3 = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col3, "Width"); gtk_tree_view_append_column(filetree, col3); col4 = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col4, "Height"); gtk_tree_view_append_column(filetree, col4); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col1, renderer, TRUE); gtk_tree_view_column_add_attribute(col1, renderer, "text", 0); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col2, renderer, TRUE); gtk_tree_view_column_add_attribute(col2, renderer, "text", 1); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col3, renderer, TRUE); gtk_tree_view_column_add_attribute(col3, renderer, "text", 2); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col4, renderer, TRUE); gtk_tree_view_column_add_attribute(col4, renderer, "text", 3); filetree_create_model(filetree); } int gui_main(int argc, char **argv) { GtkWidget *window; GtkWidget *filetree; GtkBuilder *builder ; GError *error = NULL; if(!db_open()) return 1; gtk_init(&argc, &argv); builder = gtk_builder_new(); if(!gtk_builder_add_from_string(builder, ui_string, -1, &error)) { g_warning("%s", error->message); g_free(error); return 1; } window = GTK_WIDGET(gtk_builder_get_object(builder, "window")); gtk_window_set_title(GTK_WINDOW(window), "walls"); filetree = GTK_WIDGET(gtk_builder_get_object(builder, "filetree")); filetree_init(GTK_TREE_VIEW(filetree)); gtk_builder_connect_signals(builder, NULL); g_object_unref(G_OBJECT(builder)); gtk_widget_show_all(window); gtk_main(); db_close(); return 0; }