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 ncurses_display(deck_t *deck, int notrans, int nofade, int invert, int reload, int noreload) {
int c = 0; // char
int i = 0; // iterate
fprintf(stderr, "Error: Terminal width (%i columns) too small. Need at least %i columns.\n", COLS, i);
fprintf(stderr, "You may need to shorten some lines by inserting line breaks.\n");
- return 1;
+ // no reload
+ return 0;
}
// set max_cols
fprintf(stderr, "Error: Terminal height (%i lines) too small. Need at least %i lines.\n", LINES, max_lines + bar_top + bar_bottom);
fprintf(stderr, "You may need to add additional horizontal rules ('***') to split your file in shorter slides.\n");
- return 1;
+ // no reload
+ return 0;
}
// disable cursor
wbkgd(content, COLOR_PAIR(CP_WHITE));
slide = deck->slide;
+
+ // find slide to reload
+ while(reload > 1 && reload <= deck->slides) {
+ slide = slide->next;
+ sc++;
+ reload--;
+ }
+
+ // reset reload indicator
+ reload = 0;
+
while(slide) {
url_init();
}
break;
+ // reload
+ case 'r':
+ if(noreload == 0) {
+ // reload slide N
+ reload = sc;
+ slide = NULL;
+ } else {
+ // disable fading if reload is not possible
+ fade = false;
+ }
+ break;
+
// quit
case 'q':
// do not fade out on exit
fade = false;
+ // do not reload
+ reload = 0;
slide = NULL;
break;
// free ncurses memory
delwin(content);
- delwin(stdscr);
+ if(reload == 0)
+ delwin(stdscr);
- return 0;
+ // return reload indicator (0 means no reload)
+ return reload;
}
void add_line(WINDOW *window, int y, int x, line_t *line, int max_cols, int colors) {