X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=main.c;h=5367571ad6e6520c5b2fc6db21ee2c3907916f90;hb=ed4b739f5f618fa9fb316dcec4c67224bb4f2bb8;hp=7088a6dfacac37a824c62886ff039cba02756153;hpb=a13d3172fa1cd66cd81b84f1c92f0c8e7de09375;p=ext%2Fsubsurface.git diff --git a/main.c b/main.c index 7088a6d..5367571 100644 --- a/main.c +++ b/main.c @@ -90,9 +90,25 @@ static void on_destroy(GtkWidget* w, gpointer data) static GtkWidget *dive_profile; +void update_dive(struct dive *new_dive) +{ + static struct dive *buffered_dive; + struct dive *old_dive = buffered_dive; + + if (old_dive) { + flush_dive_info_changes(old_dive); + flush_dive_equipment_changes(old_dive); + } + if (new_dive) { + buffered_dive = new_dive; + show_dive_info(new_dive); + show_dive_equipment(new_dive); + } +} + void repaint_dive(void) { - update_dive_info(current_dive); + update_dive(current_dive); gtk_widget_queue_draw(dive_profile); } @@ -215,11 +231,9 @@ static void create_radio(GtkWidget *dialog, const char *name, ...) box = gtk_hbox_new(TRUE, 10); gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), box); - gtk_widget_show(box); label = gtk_label_new(name); gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 0); - gtk_widget_show(label); va_start(args, name); for (;;) { @@ -239,7 +253,6 @@ static void create_radio(GtkWidget *dialog, const char *name, ...) gtk_box_pack_start(GTK_BOX(box), button, TRUE, TRUE, 0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), enabled); g_signal_connect(button, "toggled", G_CALLBACK(callback_fn), NULL); - gtk_widget_show(button); } va_end(args); } @@ -296,7 +309,7 @@ static void unit_dialog(GtkWidget *w, gpointer data) "Fahrenheit", set_fahrenheit, (output_units.temperature == FAHRENHEIT), NULL); - gtk_widget_show(dialog); + gtk_widget_show_all(dialog); result = gtk_dialog_run(GTK_DIALOG(dialog)); if (result == GTK_RESPONSE_ACCEPT) { output_units = menu_units; @@ -359,6 +372,7 @@ int main(int argc, char **argv) GtkWidget *notebook; GtkWidget *frame; GtkWidget *dive_info; + GtkWidget *equipment; GtkWidget *menubar; GtkWidget *vbox; @@ -417,7 +431,11 @@ int main(int argc, char **argv) /* Frame for extended dive info */ dive_info = extended_dive_info_widget(); - gtk_notebook_append_page(GTK_NOTEBOOK(notebook), dive_info, gtk_label_new("Extended Dive Info")); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook), dive_info, gtk_label_new("Dive Notes")); + + /* Frame for dive equipment */ + equipment = equipment_widget(); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook), equipment, gtk_label_new("Equipment")); gtk_widget_set_app_paintable(win, TRUE); gtk_widget_show_all(win);