X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=src%2Fviewer.c;h=bd8cd137a8a955451a466e9925dd77c0d7240548;hb=c8f46dfa8f411b643907bc4c372bf788140f26f3;hp=5ca04a5c3706c28b1ef13feb3ea76f8a108e9d2f;hpb=680d0478fc66d6d25b1f258be0114d6c915ec0a0;p=smdp.git diff --git a/src/viewer.c b/src/viewer.c index 5ca04a5..bd8cd13 100644 --- a/src/viewer.c +++ b/src/viewer.c @@ -2,7 +2,7 @@ * Functions necessary to display a deck of slides in different color modes * using ncurses. Only white, red, and blue are supported, as they can be * faded in 256 color mode. - * Copyright (C) 2014 Michael Goehler + * Copyright (C) 2015 Michael Goehler * * This file is part of mdp. * @@ -60,7 +60,7 @@ static short red_ramp_invert[24] = { 15, 231, 231, 224, 224, 225, 206, 207, 201, 200, 199, 199, 198, 198, 197, 197, 196, 196}; -int ncurses_display(deck_t *deck, int notrans, int nofade, int invert, int reload, int noreload) { +int ncurses_display(deck_t *deck, int notrans, int nofade, int invert, int reload, int noreload, int slidenum) { int c = 0; // char int i = 0; // iterate @@ -79,7 +79,7 @@ int ncurses_display(deck_t *deck, int notrans, int nofade, int invert, int reloa int bar_top = (deck->headers > 0) ? 1 : 0; // header line 2 is displayed at the bottom // anyway we display the slide number at the bottom - int bar_bottom = 1; + int bar_bottom = (slidenum || deck->headers > 1)? 1 : 0; slide_t *slide = deck->slide; line_t *line; @@ -283,9 +283,18 @@ int ncurses_display(deck_t *deck, int notrans, int nofade, int invert, int reloa } // add slide number to right footer - mvwprintw(stdscr, - LINES - 1, COLS - int_length(deck->slides) - int_length(sc) - 6, - "%d / %d", sc, deck->slides); + switch(slidenum) { + case 1: // show slide number only + mvwprintw(stdscr, + LINES - 1, COLS - int_length(sc) - 6, + "%d", sc); + break; + case 2: // show current slide & number of slides + mvwprintw(stdscr, + LINES - 1, COLS - int_length(deck->slides) - int_length(sc) - 6, + "%d / %d", sc, deck->slides); + break; + } // make header + fooder visible wrefresh(content); @@ -633,8 +642,11 @@ void add_line(WINDOW *window, int y, int x, line_t *line, int max_cols, int colo } // fill rest off line with spaces - for(i = getcurx(window) - x; i < max_cols; i++) - wprintw(window, "%s", " "); + // we only need this if the color is inverted (e.g. code-blocks), + // to ensure the background fades too + if(CHECK_BIT(line->bits, IS_CODE)) + for(i = getcurx(window) - x; i < max_cols; i++) + wprintw(window, "%s", " "); // reset to default color if(colors) @@ -710,7 +722,7 @@ void inline_display(WINDOW *window, const wchar_t *c, const int colors) { if (*i == L'!') i++; - if (wcschr(i, L']')[1] == L'(') { + if (wcschr(i, L']')[1] == L'(' && wcschr(i, L')')) { i++; // turn higlighting and underlining on