]> git.tdb.fi Git - ext/subsurface.git/blobdiff - main.c
Fix up dive number naming
[ext/subsurface.git] / main.c
diff --git a/main.c b/main.c
index 7088a6dfacac37a824c62886ff039cba02756153..5367571ad6e6520c5b2fc6db21ee2c3907916f90 100644 (file)
--- 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);