diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-08-31 15:35:28 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-08-31 15:35:28 -0700 |
commit | a39b2ee220cd23d4d6ed52f23e50fee0d4381a93 (patch) | |
tree | bfb9c01bc9f77045c3fa2c214d668764415de492 | |
parent | c7e29063722a57211e00acc5ee98e05c37f89a99 (diff) | |
download | subsurface-a39b2ee220cd23d4d6ed52f23e50fee0d4381a93.tar.gz |
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 <torvalds@linux-foundation.org>
-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); } |