]> git.tdb.fi Git - ext/subsurface.git/blob - divelist.c
Split up divelist scroll window generation into its own file
[ext/subsurface.git] / divelist.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <time.h>
4
5 #include "dive.h"
6 #include "display.h"
7
8 static GtkTreeModel *fill_dive_list(void)
9 {
10         int i;
11         GtkListStore *store;
12         GtkTreeIter iter;
13
14         store = gtk_list_store_new(1, G_TYPE_STRING);
15
16         for (i = 0; i < dive_table.nr; i++) {
17                 struct dive *dive = dive_table.dives[i];
18
19                 gtk_list_store_append(store, &iter);
20                 gtk_list_store_set(store, &iter,
21                         0, dive->name,
22                         -1);
23         }
24
25         return GTK_TREE_MODEL(store);
26 }
27
28 GtkWidget *create_dive_list(void)
29 {
30         GtkWidget *list;
31         GtkCellRenderer *renderer;
32         GtkTreeModel *model;
33         GtkWidget *scrolled_window;
34
35         list = gtk_tree_view_new();
36
37         renderer = gtk_cell_renderer_text_new();
38         gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(list),
39                 -1, "Dive", renderer, "text", 0, NULL);
40
41         model = fill_dive_list();
42         gtk_tree_view_set_model(GTK_TREE_VIEW(list), model);
43         g_object_unref(model);
44
45         /* Scrolled window for the list goes into the vbox.. */
46         scrolled_window=gtk_scrolled_window_new(NULL, NULL);
47         gtk_widget_set_usize(scrolled_window, 150, 350);
48         gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
49         gtk_widget_show(scrolled_window);
50
51         /* .. and connect it to the scrolled window */
52         gtk_container_add(GTK_CONTAINER(scrolled_window), list);
53
54         return scrolled_window;
55 }