Switch to single-instance Widget model

And make widget() functions return pointers to widgets instead of just
widgets

Signed-off-by: AnErrupTion <anerruption@disroot.org>
This commit is contained in:
AnErrupTion
2026-03-21 16:19:33 +01:00
parent aa392837bc
commit 60e3380375
15 changed files with 93 additions and 41 deletions

View File

@@ -8,6 +8,7 @@ const Widget = ly_ui.Widget;
const Cascade = @This();
instance: ?Widget = null,
buffer: *TerminalBuffer,
current_auth_fails: *usize,
max_auth_fails: usize,
@@ -18,14 +19,16 @@ pub fn init(
max_auth_fails: usize,
) Cascade {
return .{
.instance = null,
.buffer = buffer,
.current_auth_fails = current_auth_fails,
.max_auth_fails = max_auth_fails,
};
}
pub fn widget(self: *Cascade) Widget {
return Widget.init(
pub fn widget(self: *Cascade) *Widget {
if (self.instance) |*instance| return instance;
self.instance = Widget.init(
"Cascade",
null,
self,
@@ -36,6 +39,7 @@ pub fn widget(self: *Cascade) Widget {
null,
null,
);
return &self.instance.?;
}
fn draw(self: *Cascade) void {