From 0d8f330ccf366a2733bb6d5d1e51eef3579f04aa Mon Sep 17 00:00:00 2001 From: Julian Hurst Date: Tue, 18 Mar 2025 17:58:53 +0100 Subject: Refactor damage tracking types --- tui/widget/list/list.ha | 2 +- tui/widget/list/scrolllist.ha | 2 +- tui/widget/widget.ha | 22 ++++++++++------------ 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/tui/widget/list/list.ha b/tui/widget/list/list.ha index d741a4d..23127ac 100644 --- a/tui/widget/list/list.ha +++ b/tui/widget/list/list.ha @@ -43,7 +43,7 @@ style: (*widget::style | void), items: str...) (list | tty::error) = { pos = pos, sz = sz, style = style, - damage = widget::all, + damage = widget::damageall, ... }, items = items, diff --git a/tui/widget/list/scrolllist.ha b/tui/widget/list/scrolllist.ha index 959b9c0..55cee9a 100644 --- a/tui/widget/list/scrolllist.ha +++ b/tui/widget/list/scrolllist.ha @@ -39,7 +39,7 @@ style: (*widget::style | void), items: str...) (scrolllist | tty::error) = { pos = pos, sz = sz, style = style, - damage = widget::all, + damage = widget::damageall, ... }, items = items, diff --git a/tui/widget/widget.ha b/tui/widget/widget.ha index 6697935..8422932 100644 --- a/tui/widget/widget.ha +++ b/tui/widget/widget.ha @@ -15,15 +15,15 @@ export type finishfn = fn(w: *widget) void; export type widgetsize = (tty::ttysize | void); -export type none = void; -export type all = void; -export type row = uint; -export type col = uint; +export type damagenone = void; +export type damageall = void; +export type damagerow = uint; +export type damagecol = uint; //export type damageitem = (row | col | coords); -export type damageitem = row; +export type damageitem = damagerow; -export type damage = (none | all | []damageitem); +export type damage = (damagenone | damageall | []damageitem); export type widget = struct { state: *tui::tui, @@ -132,9 +132,9 @@ export fn print(w: *widget) void = { //defer tui::raw(w.state)!; const clear = match (w.damage) { - case all => + case damageall => yield strings::dup(CLEAR); - case none => + case damagenone => yield strings::dup(""); case let dam: []damageitem => let st = memio::dynamic(); @@ -250,15 +250,13 @@ export fn finish(w: *widget) void = { match (w.damage) { case let dam: []damageitem => free(dam); - case all => - return; - case all => + case damageall => return; }; }; export fn cleardamage(w: *widget) void = { - let dam = if (w.damage is all) { + let dam = if (w.damage is damageall) { return; } else { yield w.damage as []damageitem; -- cgit v1.2.3