mirror of
https://github.com/fairyglade/ly.git
synced 2026-05-06 15:20:36 +00:00
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:
14
src/main.zig
14
src/main.zig
@@ -94,7 +94,7 @@ const UiState = struct {
|
||||
saved_users: SavedUsers,
|
||||
login: UserList,
|
||||
password: *Text,
|
||||
password_widget: Widget,
|
||||
password_widget: *Widget,
|
||||
insert_mode: bool,
|
||||
edge_margin: Position,
|
||||
config: Config,
|
||||
@@ -910,7 +910,7 @@ pub fn main() !void {
|
||||
}
|
||||
|
||||
// Initialize the animation, if any
|
||||
var animation: ?Widget = null;
|
||||
var animation: ?*Widget = null;
|
||||
switch (state.config.animation) {
|
||||
.none => {},
|
||||
.doom => {
|
||||
@@ -985,7 +985,7 @@ pub fn main() !void {
|
||||
animation = dur.widget();
|
||||
},
|
||||
}
|
||||
defer if (animation) |*a| a.deinit();
|
||||
defer if (animation) |a| a.deinit();
|
||||
|
||||
var cascade = Cascade.init(
|
||||
&state.buffer,
|
||||
@@ -1030,17 +1030,17 @@ pub fn main() !void {
|
||||
const session_widget = state.session.widget();
|
||||
const login_widget = state.login.widget();
|
||||
|
||||
var widgets: std.ArrayList([]Widget) = .empty;
|
||||
var widgets: std.ArrayList([]*Widget) = .empty;
|
||||
defer widgets.deinit(state.allocator);
|
||||
|
||||
// Layer 1
|
||||
if (animation) |a| {
|
||||
var layer1 = [_]Widget{a};
|
||||
var layer1 = [_]*Widget{a};
|
||||
try widgets.append(state.allocator, &layer1);
|
||||
}
|
||||
|
||||
// Layer 2
|
||||
var layer2: std.ArrayList(Widget) = .empty;
|
||||
var layer2: std.ArrayList(*Widget) = .empty;
|
||||
defer layer2.deinit(state.allocator);
|
||||
|
||||
if (!state.config.hide_key_hints) {
|
||||
@@ -1089,7 +1089,7 @@ pub fn main() !void {
|
||||
|
||||
// Layer 3
|
||||
if (state.config.auth_fails > 0) {
|
||||
var layer3 = [_]Widget{cascade.widget()};
|
||||
var layer3 = [_]*Widget{cascade.widget()};
|
||||
try widgets.append(state.allocator, &layer3);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user