diff options
-rw-r--r-- | display.h | 3 | ||||
-rw-r--r-- | info.c | 39 | ||||
-rw-r--r-- | main.c | 1 |
3 files changed, 41 insertions, 2 deletions
@@ -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 @@ -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; } @@ -51,6 +51,7 @@ static GtkWidget *dive_profile; void repaint_dive(void) { + update_dive_info(current_dive); gtk_widget_queue_draw(dive_profile); } |