Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <gtk/gtk.h>
- static GtkWidget *tree_view;
- static GtkWidget *btn_add_item;
- static int row_count = 0;
- static void btn_add_item_clicked(GtkWidget *button, gpointer data) {
- GtkListStore *model;
- GtkTreeIter iter;
- char text[50];
- model = (GtkListStore*) gtk_tree_view_get_model(GTK_TREE_VIEW(tree_view));
- gtk_list_store_append(model,
- &iter);
- sprintf(text,
- "%d",
- row_count + 1);
- gtk_list_store_set(model,
- &iter,
- 0, g_strdup(text),
- -1);
- }
- static GtkWidget *create_tree_view() {
- GtkWidget *grid;
- GtkWidget *scrolled_window;
- GtkListStore *list_store;
- GtkTreeViewColumn *label_col;
- GtkTreeViewColumn *content_col;
- GtkCellRenderer *content_renderer;
- list_store = gtk_list_store_new(2,
- G_TYPE_STRING,
- G_TYPE_INT);
- tree_view = gtk_tree_view_new();
- label_col = gtk_tree_view_column_new_with_attributes("Layer",
- gtk_cell_renderer_text_new(),
- NULL);
- content_renderer = gtk_cell_renderer_text_new();
- g_object_set(content_renderer,
- "editable", TRUE,
- NULL);
- content_col = gtk_tree_view_column_new_with_attributes("Content",
- content_renderer,
- NULL);
- gtk_tree_view_append_column(GTK_TREE_VIEW(tree_view),
- label_col);
- gtk_tree_view_append_column(GTK_TREE_VIEW(tree_view),
- content_col);
- gtk_tree_view_set_model(GTK_TREE_VIEW(tree_view),
- GTK_TREE_MODEL(list_store));
- scrolled_window = gtk_scrolled_window_new(NULL,
- NULL);
- gtk_container_add(GTK_CONTAINER(scrolled_window),
- tree_view);
- btn_add_item = gtk_button_new_with_label("Add");
- g_signal_connect(btn_add_item,
- "clicked",
- G_CALLBACK(btn_add_item_clicked),
- NULL);
- grid = gtk_box_new(GTK_ORIENTATION_VERTICAL,
- 5);
- gtk_box_pack_start(GTK_BOX(grid),
- scrolled_window,
- TRUE,
- TRUE,
- 5);
- gtk_box_pack_start(GTK_BOX(grid),
- btn_add_item,
- FALSE,
- FALSE,
- 5);
- return grid;
- }
- int main(int argc, char **argv) {
- GtkWidget *window;
- GtkWidget *content_area;
- gtk_init(&argc, &argv);
- window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
- gtk_container_add(GTK_CONTAINER(window),
- create_tree_view());
- gtk_window_resize(GTK_WINDOW(window),
- 800,
- 600);
- gtk_widget_show_all(window);
- gtk_main();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement