diff options
author | James Booth <boothj5@gmail.com> | 2012-05-27 20:36:31 +0100 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2012-05-27 20:36:31 +0100 |
commit | dd9f6f825ea7b602f3064ca4a6099dfb5cd9910d (patch) | |
tree | e55549537342d40031b4b41d903a8622dac6c175 /title_bar.c | |
parent | f5eab875884feda2b1e40e0dcd76150ca1b0763f (diff) | |
download | profani-tty-dd9f6f825ea7b602f3064ca4a6099dfb5cd9910d.tar.gz |
Commands for presence updates
Diffstat (limited to 'title_bar.c')
-rw-r--r-- | title_bar.c | 53 |
1 files changed, 26 insertions, 27 deletions
diff --git a/title_bar.c b/title_bar.c index 2b0e08b5..c487801a 100644 --- a/title_bar.c +++ b/title_bar.c @@ -24,15 +24,16 @@ #include <string.h> #include <ncurses.h> +#include "common.h" #include "ui.h" static WINDOW *title_bar; static char *current_title = NULL; -static int connected = FALSE; static int dirty; +static jabber_presence_t current_status; -void _title_bar_draw_title(void); -void _title_bar_draw_status(void); +static void _title_bar_draw_title(void); +static void _title_bar_draw_status(void); void create_title_bar(void) { @@ -42,7 +43,7 @@ void create_title_bar(void) title_bar = newwin(1, cols, 0, 0); wbkgd(title_bar, COLOR_PAIR(3)); title_bar_title(); - title_bar_disconnected(); + title_bar_set_status(PRESENCE_OFFLINE); dirty = TRUE; } @@ -52,18 +53,6 @@ void title_bar_title(void) dirty = TRUE; } -void title_bar_connected(void) -{ - connected = TRUE; - _title_bar_draw_status(); -} - -void title_bar_disconnected(void) -{ - connected = FALSE; - _title_bar_draw_status(); -} - void title_bar_resize(void) { int rows, cols; @@ -96,18 +85,13 @@ void title_bar_show(const char * const title) _title_bar_draw_title(); } -void _title_bar_draw_title(void) +void title_bar_set_status(jabber_presence_t status) { - wmove(title_bar, 0, 0); - int i; - for (i = 0; i < 45; i++) - waddch(title_bar, ' '); - mvwprintw(title_bar, 0, 0, " %s", current_title); - - dirty = TRUE; + current_status = status; + _title_bar_draw_status(); } -void _title_bar_draw_status(void) +static void _title_bar_draw_status() { int rows, cols; getmaxyx(stdscr, rows, cols); @@ -116,10 +100,13 @@ void _title_bar_draw_status(void) mvwaddch(title_bar, 0, cols - 14, '['); wattroff(title_bar, COLOR_PAIR(4)); - if (connected == TRUE) + if (current_status == PRESENCE_ONLINE) { mvwprintw(title_bar, 0, cols - 13, " ...online "); - else + } else if (current_status == PRESENCE_AWAY) { + mvwprintw(title_bar, 0, cols - 13, " .....away "); + } else { mvwprintw(title_bar, 0, cols - 13, " ..offline "); + } wattron(title_bar, COLOR_PAIR(4)); mvwaddch(title_bar, 0, cols - 2, ']'); @@ -127,3 +114,15 @@ void _title_bar_draw_status(void) dirty = TRUE; } + +static void _title_bar_draw_title(void) +{ + wmove(title_bar, 0, 0); + int i; + for (i = 0; i < 45; i++) + waddch(title_bar, ' '); + mvwprintw(title_bar, 0, 0, " %s", current_title); + + dirty = TRUE; +} + |