diff options
| author | Julian Hurst <ark@mansus.space> | 2022-09-11 03:04:43 +0200 |
|---|---|---|
| committer | Julian Hurst <ark@mansus.space> | 2023-09-07 00:09:06 +0200 |
| commit | 1b59bc89efca95209d9c9164b7789a668805b95f (patch) | |
| tree | ea74e7e8c3aec7b33057a53ad16d094c1880f130 /libtui | |
| parent | aa5e327ef606167d0bd13ece4e09cc28207fd48a (diff) | |
| download | hare-libtui-1b59bc89efca95209d9c9164b7789a668805b95f.tar.gz | |
list: Fix sub-typing and improve setsize
Diffstat (limited to 'libtui')
| -rw-r--r-- | libtui/widget/list/list.ha | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/libtui/widget/list/list.ha b/libtui/widget/list/list.ha index 070e4f7..e501f6f 100644 --- a/libtui/widget/list/list.ha +++ b/libtui/widget/list/list.ha @@ -3,7 +3,7 @@ use libtui; use libtui::widget; -use fmt; +//use fmt; use os; use strings; use io; @@ -64,6 +64,7 @@ export fn newlistsz(ui: libtui::ttyui, sz: tty::ttysize, items: str...) listwidg widget = widget::widget { print = &print, finish = &finish, + setsize = &setsize, ui = ui, ... }, @@ -227,20 +228,17 @@ export fn resize(l: *listwidget, oldsz: ttysize) bool = { return false; }; -export fn setsize(l: *listwidget, sz: tty::ttysize) void = { +export fn setsize(l: *widget::widget, sz: tty::ttysize) void = { + const l = l: *listwidget; let rows: (u16 | size) = if (sz.rows < len(l.items)) { yield sz.rows; } else { yield len(l.items); }; - l.sz = ttysize { - rows = sz.rows, - cols = sz.columns, - }; - l.frame.sz = ttysize { - rows = rows: u16, - cols = sz.columns, - }; + l.sz.rows = sz.rows; + l.sz.cols = sz.columns; + l.frame.sz.rows = rows: u16; + l.frame.sz.cols = sz.columns; }; fn cursorinframe(l: *listwidget) bool = { |
