diff options
author | June McEnroe <june@causal.agency> | 2020-04-06 13:46:35 -0400 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2020-04-06 13:46:35 -0400 |
commit | 62a3e3699c90b6edc7eb24e1db1773ac8febb546 (patch) | |
tree | d4a19e82c15312ba9fe15732def5ae62a5a726f0 | |
parent | Error on missing MODE parameters (diff) | |
download | catgirl-62a3e3699c90b6edc7eb24e1db1773ac8febb546.tar.gz catgirl-62a3e3699c90b6edc7eb24e1db1773ac8febb546.zip |
Implement split scrolling
-rw-r--r-- | ui.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/ui.c b/ui.c index 2a26ac3..c736246 100644 --- a/ui.c +++ b/ui.c @@ -258,6 +258,8 @@ static void errExit(void) { reset_shell_mode(); } +enum { SplitLines = 5 }; + void uiInit(void) { initscr(); cbreak(); @@ -279,9 +281,8 @@ void uiInit(void) { status = newwin(1, COLS, 0, 0); if (!status) err(EX_OSERR, "newwin"); - marker = newwin(1, COLS, LINES - 2, 0); - short fg = 8 + COLOR_BLACK; - wbkgd(marker, '~' | colorAttr(fg) | COLOR_PAIR(colorPair(fg, -1))); + marker = newwin(1, COLS, BOTTOM - SplitLines - 1, 0); + wbkgd(marker, ACS_BULLET); input = newpad(1, 1024); if (!input) err(EX_OSERR, "newpad"); @@ -311,6 +312,12 @@ void uiDraw(void) { if (window->scroll) { touchwin(marker); wnoutrefresh(marker); + pnoutrefresh( + window->pad, + WindowLines - SplitLines, 0, + BOTTOM - SplitLines, 0, + BOTTOM - 1, RIGHT + ); } int y, x; getyx(input, y, x); @@ -655,7 +662,7 @@ static void reflow(struct Window *window) { } static void resize(void) { - mvwin(marker, LINES - 2, 0); + mvwin(marker, BOTTOM - SplitLines - 1, 0); int height, width; getmaxyx(windows.ptrs[0]->pad, height, width); if (width == COLS) return; |