]> git.tdb.fi Git - ext/subsurface.git/commitdiff
Add some more dive info - and actually update it
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 31 Aug 2011 22:35:28 +0000 (15:35 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 31 Aug 2011 22:35:28 +0000 (15:35 -0700)
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>
display.h
info.c
main.c

index 327997f053ebd8fdc479ead451d178c5e8c8474f..b9de932cb942608e291e9e150c7a0fe4b2edc50f 100644 (file)
--- 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 05bcf0f78684495d38a88056c7739e0bd557c68e..efd17f896f85ec987a9c26900710087cfd3fd2fb 100644 (file)
--- 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 d3853faabd9aaba473f194d6b07462387aba1ac8..6a82c6f933e4e3f6cab9ef53d777e72c4a36b6aa 100644 (file)
--- 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);
 }