╭─────────────╮ │scroll to top│ ╰─────────────╯ ╭ Settings.zig ─────────────────────────────────────────────────╮ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╰───────────────────────────────────────────────────────────────╯
╭────╮ ╭ clone ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╮ │http│ ssh │ │ ╰────╯ ╰ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╯
81 } 82 self.focus.child_id = self.authorized.getFocus().id; 83 } else { 84 try self.unauthorized.build(allocator, constraint, root_focus); 85 if (self.unauthorized.getGrid()) |inner_grid| { 86 try self.focus.addChild(allocator, self.unauthorized.getFocus(), inner_grid.size, 0, 0); 87 } 88 self.focus.child_id = self.unauthorized.getFocus().id; 89 } 90 } 91 92 pub fn input(self: *View, allocator: std.mem.Allocator, key: Key, root_focus: *Focus) !void { 93 _ = allocator; 94 if (self.session.data.user_id == null) return; // blank/disabled when logged out 95 switch (key) { 96 .enter => try self.toggle(), 97 .mouse => |mouse| { 98 if (inp.leftClickOn(root_focus, self.button_id, mouse)) { 99 try self.toggle(); 100 } 101 }, 102 else => {}, 103 } 104 } 105 106 fn toggle(self: *View) !void { 107 try self.session.push(.toggle_ansi); 108 } 109 110 pub fn clearGrid(self: *View) void { 111 self.authorized.clearGrid(); 112 self.unauthorized.clearGrid(); 113 } 114 115 pub fn getGrid(self: View) ?Grid { 116 if (self.session.data.user_id != null) return self.authorized.getGrid(); 117 return self.unauthorized.getGrid(); 118 } 119 120 pub fn getFocus(self: *View) *Focus { 121 return self.focus; 122 } 123 124 pub fn getSelectedIndex(self: View) ?usize { 125 _ = self; 126 return 0; 127 } 128 }; 129 130 fn ansiLabel(session: *const ui.Session) []const u8 { 131 const label_on = "turn off ANSI art"; 132 const label_off = "turn on ANSI art"; 133 return if (session.data.enable_ansi) label_on else label_off; 134 } 135