diff options
-rw-r--r-- | dive.h | 3 | ||||
-rw-r--r-- | divelist.c | 6 | ||||
-rw-r--r-- | info.c | 24 |
3 files changed, 30 insertions, 3 deletions
@@ -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; @@ -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); |