diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-09-19 22:09:47 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-09-19 22:09:47 -0700 |
commit | 3a6c1f767d527c2247eefb264f68adf3f3770608 (patch) | |
tree | c4dbe905dcde01aca07a2b2535a8ad900993d415 | |
parent | 6a9e951f1c5f4e8a6c3c97b5f999506ca1f24d8e (diff) | |
download | subsurface-3a6c1f767d527c2247eefb264f68adf3f3770608.tar.gz |
Reinstate the main window title
It got removed by some of my overly aggressive cleanup in commit
fefcbf125e89 ("Remove dive info frame") because the dive info frame
initialization also initialized the main window title..
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-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); |