summaryrefslogtreecommitdiff
path: root/tui/widget/list/list.ha
diff options
context:
space:
mode:
Diffstat (limited to 'tui/widget/list/list.ha')
-rw-r--r--tui/widget/list/list.ha13
1 files changed, 12 insertions, 1 deletions
diff --git a/tui/widget/list/list.ha b/tui/widget/list/list.ha
index a4ec77e..7e60299 100644
--- a/tui/widget/list/list.ha
+++ b/tui/widget/list/list.ha
@@ -52,7 +52,18 @@ export fn printlist(widget: *widget::widget) void = {
const list = widget: *list;
let st = memio::dynamic();
defer io::close(&st)!;
- memio::concat(&st, strings::join("\n", list.items[list.frame.start..list.frame.end]...))!;
+ for (let i = list.frame.start; i < list.frame.end; i += 1) {
+ let item = match (list.widget.sz) {
+ case let sz: tty::ttysize =>
+ yield strings::sub(list.items[i], 0z, sz.columns);
+ case widget::nosize =>
+ yield list.items[i];
+ };
+ memio::concat(&st, item)!;
+ if (i != list.frame.end - 1) {
+ memio::concat(&st, "\n")!;
+ };
+ };
widget::print(list.widget.out, memio::string(&st)!, (1, 1));
};