aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Hurst <ark@mansus.space>2022-09-11 03:06:45 +0200
committerJulian Hurst <ark@mansus.space>2022-09-11 03:06:45 +0200
commite911aba2b0b7d18262856782ba3ddac9a8fa5d7f (patch)
tree81e98a2085b88a3aa9461150e18a31f8a9583820
parent84a4d1a97365a8d031851d23699b92757324793c (diff)
downloadilhare-e911aba2b0b7d18262856782ba3ddac9a8fa5d7f.tar.gz
Update resize code for libtui
-rw-r--r--main.ha34
1 files changed, 22 insertions, 12 deletions
diff --git a/main.ha b/main.ha
index 512b78a..7117cca 100644
--- a/main.ha
+++ b/main.ha
@@ -25,17 +25,21 @@ fn sighandler(sig: int, info: *signal::siginfo, ucontext: *void) void = {
switch (sig) {
case signal::SIGWINCH =>
let sz = libtui::getwinsize(u.list.widget.ui)!;
- let rows: (u16 | size) = if (sz.rows - 2 < len(u.list.items)) {
- yield sz.rows - 2;
- } else {
- yield len(u.list.items);
- };
+ //let rows: (u16 | size) = if (sz.rows - 2 < len(u.list.items)) {
+ //yield sz.rows - 2;
+ //} else {
+ //yield len(u.list.items);
+ //};
const oldsz = list::ttysize {
rows = u.list.sz.rows,
cols = u.list.sz.cols,
};
- u.list.sz.rows = rows: u16;
- u.list.sz.cols = sz.columns;
+ list::setsize(u.list, tty::ttysize {
+ rows = sz.rows - 1u16,
+ columns = sz.columns,
+ });
+ //u.list.sz.rows = rows: u16;
+ //u.list.sz.cols = sz.columns;
list::resize(u.list, oldsz);
libtui::clear(u.list.widget.ui);
list::print(u.list)!;
@@ -46,8 +50,8 @@ fn sighandler(sig: int, info: *signal::siginfo, ucontext: *void) void = {
fn resize(list: *list::listwidget) void = {
let sz = libtui::getwinsize(list.widget.ui)!;
- let rows: (u16 | size) = if (sz.rows - 2 < len(list.items)) {
- yield sz.rows - 2;
+ let rows: (u16 | size) = if (sz.rows - 1 < len(list.items)) {
+ yield sz.rows - 1;
} else {
yield len(list.items);
};
@@ -55,8 +59,10 @@ fn resize(list: *list::listwidget) void = {
rows = list.sz.rows,
cols = list.sz.cols,
};
- list.sz.rows = rows: u16;
- list.sz.cols = sz.columns;
+ list::setsize(list, tty::ttysize {
+ rows = sz.rows - 1u16,
+ columns = sz.columns,
+ });
list::resize(list, oldsz);
};
@@ -76,7 +82,11 @@ export fn main() void = {
let ui = libtui::init();
defer libtui::finish(&ui);
- let l = list::newlist(ui, items...);
+ let sz = libtui::getwinsize(ui)!;
+ let l = list::newlistsz(ui, tty::ttysize {
+ rows = sz.rows - 1u16,
+ columns = sz.columns,
+ }, items...);
libtui::addlistener(&ui, &globalrunehandler);
widget::addlistener(&l, &runehandler);