summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dive.h3
-rw-r--r--divelist.c6
-rw-r--r--info.c24
3 files changed, 30 insertions, 3 deletions
diff --git a/dive.h b/dive.h
index e36839a1e..109d0c57d 100644
--- a/dive.h
+++ b/dive.h
@@ -226,4 +226,7 @@ extern void update_air_info(char *buffer);
#define DIVE_ERROR_PARSE 1
+const char *weekday(int wday);
+const char *monthname(int mon);
+
#endif /* DIVE_H */
diff --git a/divelist.c b/divelist.c
index 53d9bdf71..3b840794b 100644
--- a/divelist.c
+++ b/divelist.c
@@ -38,7 +38,7 @@ static void selection_cb(GtkTreeSelection *selection, GtkTreeModel *model)
repaint_dive();
}
-static const char *weekday(int wday)
+const char *weekday(int wday)
{
static const char wday_array[7][4] = {
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
@@ -46,7 +46,7 @@ static const char *weekday(int wday)
return wday_array[wday];
}
-static const char *monthname(int mon)
+const char *monthname(int mon)
{
static const char month_array[12][4] = {
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
@@ -463,7 +463,7 @@ struct DiveList dive_list_create(void)
dive_list.container_widget = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(dive_list.container_widget),
- GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_container_add(GTK_CONTAINER(dive_list.container_widget), dive_list.tree_view);
return dive_list;
diff --git a/info.c b/info.c
index 3c8415cb3..c1779cc45 100644
--- a/info.c
+++ b/info.c
@@ -53,6 +53,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);