diff --git a/display.h b/display.h index 327997f05..b9de932cb 100644 --- a/display.h +++ b/display.h @@ -9,6 +9,9 @@ extern int selected_dive; extern GtkWidget *dive_profile_frame(void); extern GtkWidget *dive_info_frame(void); extern GtkWidget *create_dive_list(void); +extern void update_dive_info(struct dive *dive); extern void repaint_dive(void); +#define current_dive (dive_table.dives[selected_dive]) + #endif diff --git a/info.c b/info.c index 05bcf0f78..efd17f896 100644 --- a/info.c +++ b/info.c @@ -5,11 +5,36 @@ #include "dive.h" #include "display.h" +static GtkWidget *datetime, *depth, *duration; + +void update_dive_info(struct dive *dive) +{ + struct tm *tm; + char buffer[80]; + + tm = gmtime(&dive->when); + snprintf(buffer, sizeof(buffer), + "%04d-%02d-%02d " + "%02d:%02d:%02d", + tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday, + tm->tm_hour, tm->tm_min, tm->tm_sec); + gtk_entry_set_text(GTK_ENTRY(datetime), buffer); + + snprintf(buffer, sizeof(buffer), + "%d ft", + to_feet(dive->maxdepth)); + gtk_entry_set_text(GTK_ENTRY(depth), buffer); + + snprintf(buffer, sizeof(buffer), + "%d min", + dive->duration.seconds / 60); + gtk_entry_set_text(GTK_ENTRY(duration), buffer); +} + GtkWidget *dive_info_frame(void) { GtkWidget *frame; GtkWidget *hbox; - GtkWidget *depth; frame = gtk_frame_new("Dive info"); gtk_widget_show(frame); @@ -17,11 +42,21 @@ GtkWidget *dive_info_frame(void) hbox = gtk_hbox_new(FALSE, 5); gtk_container_add(GTK_CONTAINER(frame), hbox); + datetime = gtk_entry_new(); + gtk_editable_set_editable(GTK_EDITABLE(datetime), FALSE); + + gtk_box_pack_start(GTK_BOX(hbox), datetime, FALSE, FALSE, 0); + depth = gtk_entry_new(); - gtk_entry_set_text(GTK_ENTRY(depth), "54 ft"); gtk_editable_set_editable(GTK_EDITABLE(depth), FALSE); gtk_box_pack_start(GTK_BOX(hbox), depth, FALSE, FALSE, 0); + duration = gtk_entry_new(); + gtk_editable_set_editable(GTK_EDITABLE(duration), FALSE); + + gtk_box_pack_start(GTK_BOX(hbox), duration, FALSE, FALSE, 0); + + update_dive_info(current_dive); return frame; } diff --git a/main.c b/main.c index d3853faab..6a82c6f93 100644 --- a/main.c +++ b/main.c @@ -51,6 +51,7 @@ static GtkWidget *dive_profile; void repaint_dive(void) { + update_dive_info(current_dive); gtk_widget_queue_draw(dive_profile); }