]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - gui.c
gui: Remove change_theme().
[paraslash.git] / gui.c
diff --git a/gui.c b/gui.c
index e4849fbab3f622ea160494bf7bbc9bdc653337cc..01af3227ffda5227d8243c9c8ec5a51ea79b62c9 100644 (file)
--- a/gui.c
+++ b/gui.c
@@ -73,7 +73,6 @@ enum gui_color_pair {
        COLOR_OUTPUT,
        COLOR_MSG,
        COLOR_ERRMSG,
-       COLOR_WELCOME,
        COLOR_SEPARATOR,
        COLOR_TOP,
        COLOR_BOT,
@@ -360,20 +359,14 @@ __printf_2_3 static void print_in_bar(int color, const char *fmt,...)
        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);
 }
 
 /*
@@ -526,6 +519,7 @@ static __printf_2_3 void curses_log(int ll, const char *fmt,...)
        int color;
        char *msg;
        va_list ap;
+       unsigned bytes;
 
        if (ll < loglevel || !curses_active)
                return;
@@ -539,9 +533,10 @@ static __printf_2_3 void curses_log(int ll, const char *fmt,...)
                        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);
 }
@@ -595,22 +590,11 @@ __noreturn __printf_2_3 static void msg_n_exit(int ret, const char* fmt, ...)
        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;
@@ -638,20 +622,20 @@ static void init_wins(int top_lines)
 
        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);
@@ -679,14 +663,13 @@ static void init_wins(int top_lines)
                keypad(in.win, 1);
        }
        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();
@@ -819,7 +802,6 @@ static void init_colors_or_die(void)
        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);
@@ -1429,29 +1411,18 @@ static void com_refresh(void)
        init_curses();
 }
 
-static void change_theme(int next)
-{
-       if (next)
-               next_theme(&theme);
-       else
-               prev_theme(&theme);
-       /* This seems to be needed twice, why? */
-       com_refresh();
-       com_refresh();
-       PARA_NOTICE_LOG("new theme: %s\n", theme.name);
-}
-
 static void com_next_theme(void)
 {
-       change_theme(1);
+       theme_next(&theme);
+       com_refresh();
 }
 
 static void com_prev_theme(void)
 {
-       change_theme(0);
+       theme_prev(&theme);
+       com_refresh();
 }
 
-
 static void handle_command(int c)
 {
        int i;
@@ -1537,13 +1508,12 @@ int main(int argc, char *argv[])
                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);