diff options
author | James Booth <boothj5@gmail.com> | 2013-10-02 23:33:48 +0100 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2013-10-02 23:33:48 +0100 |
commit | 6ff7177b9b505d290009080a30f73b16ee2c276a (patch) | |
tree | e8a487f74888c037bed0b058b37f8bd6d8e7bc40 /src/ui/statusbar.c | |
parent | 2625630ff367eeab566065e92258d4724bfeefed (diff) | |
download | profani-tty-6ff7177b9b505d290009080a30f73b16ee2c276a.tar.gz |
Show current window in status bar
Diffstat (limited to 'src/ui/statusbar.c')
-rw-r--r-- | src/ui/statusbar.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/ui/statusbar.c b/src/ui/statusbar.c index e7456adc..16bd31c9 100644 --- a/src/ui/statusbar.c +++ b/src/ui/statusbar.c @@ -39,12 +39,14 @@ static WINDOW *status_bar; static char *message = NULL; // 1 2 3 4 5 6 7 8 9 0 > static char _active[34] = "[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]"; +static char *bracket = "- -"; static int is_active[12]; static GHashTable *remaining_active; static int is_new[12]; static GHashTable *remaining_new; static int dirty; static GDateTime *last_time; +static int current; static void _status_bar_update_time(void); static void _update_win_statuses(void); @@ -66,11 +68,13 @@ create_status_bar(void) } remaining_active = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, NULL); remaining_new = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, NULL); + current = 1; status_bar = newwin(1, cols, rows-2, 0); wbkgd(status_bar, COLOUR_STATUS_TEXT); wattron(status_bar, COLOUR_STATUS_BRACKET); mvwprintw(status_bar, 0, cols - 34, _active); + mvwprintw(status_bar, 0, cols - 34 + ((current - 1) * 3), bracket); wattroff(status_bar, COLOUR_STATUS_BRACKET); if (last_time != NULL) @@ -116,6 +120,7 @@ status_bar_resize(void) werase(status_bar); wattron(status_bar, COLOUR_STATUS_BRACKET); mvwprintw(status_bar, 0, cols - 34, _active); + mvwprintw(status_bar, 0, cols - 34 + ((current - 1) * 3), bracket); wattroff(status_bar, COLOUR_STATUS_BRACKET); _update_win_statuses(); @@ -144,6 +149,23 @@ status_bar_set_all_inactive(void) } void +status_bar_current(int i) +{ + if (i == 0) { + current = 10; + } else if (i > 10) { + current = 11; + } else { + current = i; + } + int cols = getmaxx(stdscr); + wattron(status_bar, COLOUR_STATUS_BRACKET); + mvwprintw(status_bar, 0, cols - 34, _active); + mvwprintw(status_bar, 0, cols - 34 + ((current - 1) * 3), bracket); + wattroff(status_bar, COLOUR_STATUS_BRACKET); +} + +void status_bar_inactive(const int win) { int true_win = win; @@ -263,6 +285,7 @@ status_bar_print_message(const char * const msg) wattron(status_bar, COLOUR_STATUS_BRACKET); mvwprintw(status_bar, 0, cols - 34, _active); + mvwprintw(status_bar, 0, cols - 34 + ((current - 1) * 3), bracket); wattroff(status_bar, COLOUR_STATUS_BRACKET); _update_win_statuses(); @@ -291,6 +314,7 @@ status_bar_clear(void) wattron(status_bar, COLOUR_STATUS_BRACKET); mvwprintw(status_bar, 0, cols - 34, _active); + mvwprintw(status_bar, 0, cols - 34 + ((current - 1) * 3), bracket); wattroff(status_bar, COLOUR_STATUS_BRACKET); dirty = TRUE; @@ -310,6 +334,7 @@ status_bar_clear_message(void) wattron(status_bar, COLOUR_STATUS_BRACKET); mvwprintw(status_bar, 0, cols - 34, _active); + mvwprintw(status_bar, 0, cols - 34 + ((current - 1) * 3), bracket); wattroff(status_bar, COLOUR_STATUS_BRACKET); _update_win_statuses(); |