]> git.tdb.fi Git - ext/subsurface.git/blobdiff - info.c
Fix up printing some more
[ext/subsurface.git] / info.c
diff --git a/info.c b/info.c
index 3c8415cb36a7283e596aa970428e857ec03aa0d1..9e061970d808ba14bb18d9c259de638781b0c0af 100644 (file)
--- a/info.c
+++ b/info.c
@@ -1,3 +1,13 @@
+/* info.c */
+/* creates the UI for the info frame - 
+ * controlled through the following interfaces:
+ * 
+ * void flush_dive_info_changes(struct dive *dive)
+ * void show_dive_info(struct dive *dive)
+ *
+ * called from gtk-ui:
+ * GtkWidget *extended_dive_info_widget(void)
+ */
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
@@ -5,6 +15,7 @@
 
 #include "dive.h"
 #include "display.h"
+#include "display-gtk.h"
 #include "divelist.h"
 
 static GtkEntry *location, *buddy, *divemaster;
@@ -53,6 +64,30 @@ void flush_dive_info_changes(struct dive *dive)
 
 void show_dive_info(struct dive *dive)
 {
+       struct tm *tm;
+       const char *text;
+       char buffer[80];
+
+       /* dive number and location (or lacking that, the date) go in the window title */
+       tm = gmtime(&dive->when);
+       text = dive->location;
+       if (!text)
+               text = "";
+       if (*text) {
+               snprintf(buffer, sizeof(buffer), "Dive #%d - %s", dive->number, text);
+       } else {
+               snprintf(buffer, sizeof(buffer), "Dive #%d - %s %02d/%02d/%04d at %d:%02d",
+                       dive->number,
+                       weekday(tm->tm_wday),
+                       tm->tm_mon+1, tm->tm_mday,
+                       tm->tm_year+1900,
+                       tm->tm_hour, tm->tm_min);
+       }
+       text = buffer;
+       if (!dive->number)
+               text += 10;     /* Skip the "Dive #0 - " part */
+       gtk_window_set_title(GTK_WINDOW(main_window), text);
+
        SET_TEXT_ENTRY(divemaster);
        SET_TEXT_ENTRY(buddy);
        SET_TEXT_ENTRY(location);