brandizzi icon

Showing two table views in a pane with scrolled window

brandizzi | PRO | 09/21/12 03:32:37 PM UTC | 0 ⭐ | 774 👁️ | Never ⏰ | []
C |

2.39 KB

|

None

|

0 👍

/

0 👎

#include <gtk/gtk.h>
    
int main(int argc, char *argv[]) {
    gtk_init(&argc, &argv);
    
    // Creating tree view stuff
    GtkListStore *store1 = gtk_list_store_new(1, G_TYPE_STRING),
                 *store2 = gtk_list_store_new(2, G_TYPE_INT, G_TYPE_STRING);
    
    GtkWidget *tree_view1 = gtk_tree_view_new(),
              *tree_view2 = gtk_tree_view_new();
    
    gtk_tree_view_set_model(GTK_TREE_VIEW(tree_view1), GTK_TREE_MODEL(store1));
    gtk_tree_view_set_model(GTK_TREE_VIEW(tree_view2), GTK_TREE_MODEL(store2));
    
    // Creating columns
    gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree_view1),
            -1, "Left", gtk_cell_renderer_text_new(),
            "text", 0, NULL);
    gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree_view2),
            -1, "Number", gtk_cell_renderer_text_new(),
            "text", 0, NULL);
    gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree_view2),
            -1, "Right", gtk_cell_renderer_text_new(),
            "text", 1, NULL);
 
    // Populating models
    GtkTreeIter iter;
    gtk_list_store_append(store1, &iter);
    gtk_list_store_set(store1, &iter, 0, "left 1", -1);
    gtk_list_store_append(store1, &iter);
    gtk_list_store_set(store1, &iter, 0, "left 2", -1);
    
    gtk_list_store_append(store2, &iter);
    gtk_list_store_set(store2, &iter, 0, 42);
    gtk_list_store_set(store2, &iter, 1, "right 1", -1);
    gtk_list_store_append(store2, &iter);
    gtk_list_store_set(store2, &iter, 0, 13);
    gtk_list_store_set(store2, &iter, 1, "right 2", -1);
    gtk_list_store_append(store2, &iter);
    gtk_list_store_set(store2, &iter, 0, 9);
    gtk_list_store_set(store2, &iter, 1, "right 3", -1);
    
    // Packing together
    GtkWidget *paned = gtk_hpaned_new();
    GtkWidget *scrolled_window1 = gtk_scrolled_window_new(NULL, NULL),
              *scrolled_window2 = gtk_scrolled_window_new(NULL, NULL);
    gtk_container_add(GTK_CONTAINER(scrolled_window1), tree_view1);
    gtk_container_add(GTK_CONTAINER(scrolled_window2), tree_view2);
    gtk_paned_add1(GTK_PANED(paned), scrolled_window1);
    gtk_paned_add2(GTK_PANED(paned), scrolled_window2);
    
    GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_container_add(GTK_CONTAINER(window), paned);
    
    gtk_widget_show_all(window);
    
    gtk_main();
    
    return 0;
}

Comments