+ /*
+ * We create the cylinder size model at startup, since
+ * we're going to share it across all cylinders and all
+ * dives. So if you add a new cylinder type in one dive,
+ * it will show up when you edit the cylinder types for
+ * another dive.
+ */
+ cylinder_model = create_tank_size_model();
+
+ cylinder_list.tree_view = cylinder_list_create();
+
+ hbox = gtk_hbox_new(FALSE, 3);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 3);
+
+ frame = gtk_frame_new("Cylinders");
+ gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, FALSE, 3);
+
+ framebox = gtk_vbox_new(FALSE, 3);
+ gtk_container_add(GTK_CONTAINER(frame), framebox);
+
+ hbox = gtk_hbox_new(FALSE, 3);
+ gtk_box_pack_start(GTK_BOX(framebox), hbox, TRUE, FALSE, 3);
+
+ gtk_box_pack_start(GTK_BOX(hbox), cylinder_list.tree_view, TRUE, FALSE, 3);
+
+ hbox = gtk_hbox_new(TRUE, 3);
+ gtk_box_pack_start(GTK_BOX(framebox), hbox, TRUE, FALSE, 3);
+
+ edit = gtk_button_new_from_stock(GTK_STOCK_EDIT);
+ add = gtk_button_new_from_stock(GTK_STOCK_ADD);
+ del = gtk_button_new_from_stock(GTK_STOCK_DELETE);
+ gtk_box_pack_start(GTK_BOX(hbox), edit, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), add, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), del, FALSE, FALSE, 0);
+
+ cylinder_list.edit = edit;
+ cylinder_list.add = add;
+ cylinder_list.del = del;
+
+ g_signal_connect(edit, "clicked", G_CALLBACK(edit_cb), NULL);
+ g_signal_connect(add, "clicked", G_CALLBACK(add_cb), NULL);
+ g_signal_connect(del, "clicked", G_CALLBACK(del_cb), NULL);