COLOR_OUTPUT,
COLOR_MSG,
COLOR_ERRMSG,
- COLOR_WELCOME,
COLOR_SEPARATOR,
COLOR_TOP,
COLOR_BOT,
wrefresh(in.win);
}
-/*
- * update the status bar
- */
static void print_status_bar(void)
{
char *tmp;
- if (!curses_active)
- return;
tmp = para_strdup("para_gui " PACKAGE_VERSION " (hit ? for help)");
wmove(sb.win, 0, 0);
align_str(sb.win, tmp, sb.cols, CENTER);
free(tmp);
- wrefresh(sb.win);
}
/*
int color;
char *msg;
va_list ap;
+ unsigned bytes;
if (ll < loglevel || !curses_active)
return;
color = COLOR_ERRMSG;
}
va_start(ap, fmt);
- xvasprintf(&msg, fmt, ap);
+ bytes = xvasprintf(&msg, fmt, ap);
va_end(ap);
- chop(msg);
+ if (bytes > 0 && msg[bytes - 1] == '\n')
+ msg[bytes - 1] = '\0'; /* cut trailing newline */
rb_add_entry(color, msg);
wrefresh(bot.win);
}
kill_pg_and_die(ret);
}
-static void print_welcome(void)
-{
- if (loglevel > LL_NOTICE)
- return;
- outputf(COLOR_WELCOME, "Welcome to %s. Theme: %s",
- version_single_line("gui"), theme.name);
- wclrtoeol(bot.win);
-}
-
/*
* init all windows
*/
static void init_wins(int top_lines)
{
- int i;
-
top.lines = top_lines;
top.cols = COLS;
top.begy = 0;
assume_default_colors(theme.default_fg, theme.default_bg);
if (top.win) {
- mvwin(top.win, top.begy, top.begx);
wresize(top.win, top.lines, top.cols);
+ mvwin(top.win, top.begy, top.begx);
- mvwin(sb.win, sb.begy, sb.begx);
wresize(sb.win, sb.lines, sb.cols);
+ mvwin(sb.win, sb.begy, sb.begx);
- mvwin(sep.win, sep.begy, sep.begx);
wresize(sep.win, sep.lines, sep.cols);
+ mvwin(sep.win, sep.begy, sep.begx);
- mvwin(bot.win, bot.begy, bot.begx);
wresize(bot.win, bot.lines, bot.cols);
+ mvwin(bot.win, bot.begy, bot.begx);
- mvwin(in.win, in.begy, in.begx);
wresize(in.win, in.lines, in.cols);
+ mvwin(in.win, in.begy, in.begx);
} else {
sep.win = newwin(sep.lines, sep.cols, sep.begy, sep.begx);
top.win = newwin(top.lines, top.cols, top.begy, top.begx);
keypad(bot.win, 1);
keypad(sb.win, 1);
keypad(in.win, 1);
- print_status_bar();
}
wmove(sep.win, 0, 0);
- for (i = 1; i <= COLS; i++)
- waddstr(sep.win, theme.sep_str);
+ whline(sep.win, theme.sep_char, COLS);
wclear(top.win);
//wclear(bot.win);
wnoutrefresh(top.win);
wnoutrefresh(bot.win);
- //wnoutrefresh(sb.win);
print_status_bar();
+ wnoutrefresh(sb.win);
wnoutrefresh(in.win);
wnoutrefresh(sep.win);
doupdate();
init_pair_or_die(COLOR_OUTPUT, theme.output_fg, theme.output_bg);
init_pair_or_die(COLOR_MSG, theme.msg_fg, theme.msg_bg);
init_pair_or_die(COLOR_ERRMSG, theme.err_msg_fg, theme.err_msg_bg);
- init_pair_or_die(COLOR_WELCOME, theme.welcome_fg, theme.welcome_bg);
init_pair_or_die(COLOR_SEPARATOR, theme.sep_fg, theme.sep_bg);
init_pair_or_die(COLOR_TOP, theme.default_fg, theme.default_bg);
init_pair_or_die(COLOR_BOT, theme.default_fg, theme.default_bg);
static void change_theme(int next)
{
if (next)
- next_theme(&theme);
+ theme_next(&theme);
else
- prev_theme(&theme);
- /* This seems to be needed twice, why? */
- com_refresh();
+ theme_prev(&theme);
com_refresh();
PARA_NOTICE_LOG("new theme: %s\n", theme.name);
}
fprintf(stderr, "invalid key map\n");
exit(EXIT_FAILURE);
}
- init_theme_or_die(conf.theme_arg, &theme);
+ theme_init(conf.theme_arg, &theme);
setup_signal_handling();
bot_win_rb = ringbuffer_new(RINGBUFFER_SIZE);
setlocale(LC_CTYPE, "");
initscr(); /* needed only once, always successful */
init_curses();
- print_welcome();
for (;;) {
print_status_bar();
ret = do_select(GETCH_MODE);