diff options
Diffstat (limited to 'libui')
| -rw-r--r-- | libui/layout/layout.ha | 2 | ||||
| -rw-r--r-- | libui/widget/list/list.ha | 5 | ||||
| -rw-r--r-- | libui/widget/widget.ha | 2 |
3 files changed, 6 insertions, 3 deletions
diff --git a/libui/layout/layout.ha b/libui/layout/layout.ha index ef6bf71..c15626f 100644 --- a/libui/layout/layout.ha +++ b/libui/layout/layout.ha @@ -1,3 +1,4 @@ +use libui; use libui::widget; use io; use unix::tty; @@ -18,6 +19,7 @@ export fn newlayout(widgets: *widget::widget...) layout = { // Display all the widgets contained in the given layout. export fn print(layout: layout) (void | widget::error) = { + libui::clear(layout.widgets[0].ui); for (let i = 0z; i < len(layout.widgets); i += 1) { match (layout.widgets[i].print) { case null => diff --git a/libui/widget/list/list.ha b/libui/widget/list/list.ha index 6506ce1..e4b3209 100644 --- a/libui/widget/list/list.ha +++ b/libui/widget/list/list.ha @@ -13,7 +13,6 @@ use set; export type listwidget = struct { widget: widget::widget, - ui: libui::ttyui, items: []str, marked: set::set, cursor: size, @@ -51,9 +50,9 @@ export fn newlist(ui: libui::ttyui, items: str...) listwidget = { widget = widget::widget { print = &print, finish = &finish, + ui = ui, ... }, - ui = ui, items = items, marked = set::set {...}, cursor = 0z, @@ -134,7 +133,7 @@ export fn print(list: *widget::widget) (void | widget::error) = { // unsupported? //io::copy(list.ui.f, &st)?; let s = strio::string(&st); - libui::print(list.ui, s); + libui::print(list.widget.ui, s); io::close(&st)?; }; diff --git a/libui/widget/widget.ha b/libui/widget/widget.ha index 1f23aac..3bccd2f 100644 --- a/libui/widget/widget.ha +++ b/libui/widget/widget.ha @@ -1,3 +1,4 @@ +use libui; use io; use unix::tty; @@ -50,6 +51,7 @@ export type widget = struct { print: nullable *print, finish: nullable *finish, listeners: []listener, + ui: libui::ttyui, }; // Add a listener to the given widget. |
