From fb0a1cabe8d61d3305d9d14acc4754a1b6151b8c Mon Sep 17 00:00:00 2001 From: Louis Burda Date: Tue, 28 Dec 2021 22:56:43 +0100 Subject: Refactor for readability, use static line buffer for statusline etc --- src/pane.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/pane.c (limited to 'src/pane.c') diff --git a/src/pane.c b/src/pane.c new file mode 100644 index 0000000..c5aea81 --- /dev/null +++ b/src/pane.c @@ -0,0 +1,35 @@ +#include "pane.h" +#include "util.h" + +void +pane_init(struct pane *pane, pane_handler handle, pane_updater update) +{ + pane->win = newwin(1, 1, 0, 0); + ASSERT(pane->win != NULL); + pane->handle = handle; + pane->update = update; +} + +void +pane_resize(struct pane *pane, int sx, int sy, int ex, int ey) +{ + pane->sx = sx; + pane->sy = sy; + pane->ex = ex; + pane->ey = ey; + pane->w = pane->ex - pane->sx; + pane->h = pane->ey - pane->sy; + + pane->active = (pane->w > 0 && pane->h > 0); + if (pane->active) { + wresize(pane->win, pane->h, pane->w); + mvwin(pane->win, pane->sy, pane->sx); + redrawwin(pane->win); + } +} + +void +pane_free(struct pane *pane) +{ + delwin(pane->win); +} -- cgit v1.2.3-71-gd317