Added status bar refresh to main loop

This commit is contained in:
James Booth
2012-02-12 22:34:31 +00:00
parent bff2210b7f
commit e112ef5aac
4 changed files with 22 additions and 15 deletions

View File

@@ -25,10 +25,12 @@ int handle_start_command(char *cmd)
user = strndup(cmd+9, strlen(cmd)-9); user = strndup(cmd+9, strlen(cmd)-9);
status_bar_get_password(); status_bar_get_password();
status_bar_refresh();
char passwd[20]; char passwd[20];
inp_get_password(passwd); inp_get_password(passwd);
status_bar_print_message(user); status_bar_print_message(user);
status_bar_refresh();
jabber_connect(user, passwd); jabber_connect(user, passwd);
result = START_MAIN; result = START_MAIN;
} else { } else {

View File

@@ -18,6 +18,7 @@ void profanity_start(void)
char cmd[50]; char cmd[50];
while (cmd_result == AWAIT_COMMAND) { while (cmd_result == AWAIT_COMMAND) {
status_bar_refresh();
inp_get_command_str(cmd); inp_get_command_str(cmd);
cmd_result = handle_start_command(cmd); cmd_result = handle_start_command(cmd);
} }
@@ -51,7 +52,7 @@ static void _profanity_event_loop(int *ch, char *cmd, int *size)
{ {
usleep(1); usleep(1);
status_bar_update_time(); status_bar_refresh();
// handle incoming messages // handle incoming messages
jabber_process_events(); jabber_process_events();

View File

@@ -4,6 +4,8 @@
static WINDOW *status_bar; static WINDOW *status_bar;
static void _status_bar_update_time(void);
void create_status_bar(void) void create_status_bar(void)
{ {
int rows, cols; int rows, cols;
@@ -14,34 +16,42 @@ void create_status_bar(void)
wrefresh(status_bar); wrefresh(status_bar);
} }
void status_bar_refresh(void)
{
_status_bar_update_time();
touchwin(status_bar);
wrefresh(status_bar);
inp_put_back();
}
void status_bar_inactive(int win) void status_bar_inactive(int win)
{ {
mvwaddch(status_bar, 0, 30 + win, ' '); mvwaddch(status_bar, 0, 30 + win, ' ');
if (win == 9) if (win == 9)
mvwaddch(status_bar, 0, 30 + win + 1, ' '); mvwaddch(status_bar, 0, 30 + win + 1, ' ');
wrefresh(status_bar);
} }
void status_bar_active(int win) void status_bar_active(int win)
{ {
mvwprintw(status_bar, 0, 30 + win, "%d", win+1); mvwprintw(status_bar, 0, 30 + win, "%d", win+1);
touchwin(status_bar);
wrefresh(status_bar);
} }
void status_bar_get_password(void) void status_bar_get_password(void)
{ {
mvwprintw(status_bar, 0, 1, "Enter password:"); mvwprintw(status_bar, 0, 9, "Enter password:");
wrefresh(status_bar);
} }
void status_bar_print_message(char *msg) void status_bar_print_message(char *msg)
{ {
mvwprintw(status_bar, 0, 9, msg); mvwprintw(status_bar, 0, 9, msg);
wrefresh(status_bar);
} }
void status_bar_update_time(void) void status_bar_clear(void)
{
wclear(status_bar);
}
static void _status_bar_update_time(void)
{ {
char bar_time[8]; char bar_time[8];
char tstmp[80]; char tstmp[80];
@@ -49,12 +59,5 @@ void status_bar_update_time(void)
sprintf(bar_time, "[%s]", tstmp); sprintf(bar_time, "[%s]", tstmp);
mvwprintw(status_bar, 0, 1, bar_time); mvwprintw(status_bar, 0, 1, bar_time);
wrefresh(status_bar);
inp_put_back();
} }
void status_bar_clear(void)
{
wclear(status_bar);
wrefresh(status_bar);
}

View File

@@ -18,6 +18,7 @@ void create_status_bar(void);
void create_input_window(void); void create_input_window(void);
// status bar actions // status bar actions
void status_bar_refresh(void);
void status_bar_clear(void); void status_bar_clear(void);
void status_bar_get_password(void); void status_bar_get_password(void);
void status_bar_print_message(char *msg); void status_bar_print_message(char *msg);