From a39b2ee220cd23d4d6ed52f23e50fee0d4381a93 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Wed, 31 Aug 2011 15:35:28 -0700 Subject: [PATCH] Add some more dive info - and actually update it It's still the ugliest application ever, but now it at least gives you some basic dive info. I'd love to add a way to edit the dives to add new data (name, buddies, location etc), but that would also require the ability to save the end result. Maybe some day. Signed-off-by: Linus Torvalds --- display.h | 3 +++ info.c | 39 +++++++++++++++++++++++++++++++++++++-- main.c | 1 + 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/display.h b/display.h index 327997f..b9de932 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 05bcf0f..efd17f8 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 d3853fa..6a82c6f 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); } -- 2.43.0