use io; use unix::tty; use tui; use tui::widget; use strings; export type text = struct { widget: widget::widget, txt: str, }; export fn newtext(state: *tui::tui, txt: str, pos: widget::coords, style: (*widget::style | void)) text = { return text { widget = widget::widget { state = state, print = &printtext, resize = &resizetext, pos = pos, sz = void, style = style, ... }, txt = txt, }; }; fn printtext(widget: *widget::widget) void = { const widget = widget: *text; widget.widget.buf = strings::dup(widget.txt); defer free(widget.widget.buf); widget::print(widget); }; fn resizetext(widget: *widget::widget, ttysize: tty::ttysize) void = { return; }; export fn settext(text: *text, txt: str) void = { text.txt = txt; };