diff --git a/src/enums.zig b/src/enums.zig index d62673b..4cfa564 100644 --- a/src/enums.zig +++ b/src/enums.zig @@ -16,8 +16,3 @@ pub const Input = enum { login, password, }; - -pub const ViMode = enum { - normal, - insert, -}; diff --git a/src/main.zig b/src/main.zig index d54a8bf..c9aea0a 100644 --- a/src/main.zig +++ b/src/main.zig @@ -158,7 +158,7 @@ pub fn main() !void { defer password.deinit(); var active_input = config.default_input; - var vi_mode: ViMode = if (config.vi_mode) .normal else .insert; + var insert_mode: bool = if (config.vi_mode) false else true; // Load last saved username and desktop selection, if any if (config.load) { @@ -187,11 +187,11 @@ pub fn main() !void { password.position(coordinates.x, coordinates.y + 6, coordinates.visible_length); switch (active_input) { - .session => desktop.handle(null, vi_mode), - .login => login.handle(null, vi_mode) catch { + .session => desktop.handle(null, insert_mode), + .login => login.handle(null, insert_mode) catch { try info_line.setText(lang.err_alloc); }, - .password => password.handle(null, vi_mode) catch { + .password => password.handle(null, insert_mode) catch { try info_line.setText(lang.err_alloc); }, } @@ -291,11 +291,11 @@ pub fn main() !void { // If the user entered a wrong password 10 times in a row, play a cascade animation, else update normally if (auth_fails < 10) { switch (active_input) { - .session => desktop.handle(null, vi_mode), - .login => login.handle(null, vi_mode) catch { + .session => desktop.handle(null, insert_mode), + .login => login.handle(null, insert_mode) catch { try info_line.setText(lang.err_alloc); }, - .password => password.handle(null, vi_mode) catch { + .password => password.handle(null, insert_mode) catch { try info_line.setText(lang.err_alloc); }, } @@ -387,7 +387,7 @@ pub fn main() !void { } if (config.vi_mode) { - const label_txt = if (vi_mode == .normal) lang.normal else lang.insert; + const label_txt = if (!insert_mode) lang.normal else lang.insert; buffer.drawLabel(label_txt, buffer.box_x, buffer.box_y - 1); } @@ -459,8 +459,8 @@ pub fn main() !void { switch (event.key) { termbox.TB_KEY_ESC => { - if (config.vi_mode and vi_mode != .normal) { - vi_mode = .normal; + if (config.vi_mode and insert_mode) { + insert_mode = false; update = true; } }, @@ -564,7 +564,7 @@ pub fn main() !void { } }, else => { - if (vi_mode == .normal) { + if (!insert_mode) { switch (event.ch) { 'k' => { active_input = switch (active_input) { @@ -583,7 +583,7 @@ pub fn main() !void { continue; }, 'i' => { - vi_mode = .insert; + insert_mode = true; update = true; continue; }, @@ -592,11 +592,11 @@ pub fn main() !void { } switch (active_input) { - .session => desktop.handle(&event, vi_mode), - .login => login.handle(&event, vi_mode) catch { + .session => desktop.handle(&event, insert_mode), + .login => login.handle(&event, insert_mode) catch { try info_line.setText(lang.err_alloc); }, - .password => password.handle(&event, vi_mode) catch { + .password => password.handle(&event, insert_mode) catch { try info_line.setText(lang.err_alloc); }, } diff --git a/src/tui/components/Desktop.zig b/src/tui/components/Desktop.zig index 0441917..c6808b9 100644 --- a/src/tui/components/Desktop.zig +++ b/src/tui/components/Desktop.zig @@ -118,7 +118,7 @@ pub fn crawl(self: *Desktop, path: []const u8, display_server: DisplayServer) !v } } -pub fn handle(self: *Desktop, maybe_event: ?*termbox.tb_event, vi_mode: ViMode) void { +pub fn handle(self: *Desktop, maybe_event: ?*termbox.tb_event, insert_mode: bool) void { if (maybe_event) |event| blk: { if (event.type != termbox.TB_EVENT_KEY) break :blk; @@ -126,7 +126,7 @@ pub fn handle(self: *Desktop, maybe_event: ?*termbox.tb_event, vi_mode: ViMode) termbox.TB_KEY_ARROW_LEFT, termbox.TB_KEY_CTRL_H => self.goLeft(), termbox.TB_KEY_ARROW_RIGHT, termbox.TB_KEY_CTRL_L => self.goRight(), else => { - if (vi_mode == .normal) { + if (!insert_mode) { switch (event.ch) { 'h' => self.goLeft(), 'l' => self.goRight(), diff --git a/src/tui/components/Text.zig b/src/tui/components/Text.zig index 6cb0221..934e97e 100644 --- a/src/tui/components/Text.zig +++ b/src/tui/components/Text.zig @@ -47,7 +47,7 @@ pub fn position(self: *Text, x: u64, y: u64, visible_length: u64) void { self.visible_length = visible_length; } -pub fn handle(self: *Text, maybe_event: ?*termbox.tb_event, vi_mode: ViMode) !void { +pub fn handle(self: *Text, maybe_event: ?*termbox.tb_event, insert_mode: bool) !void { if (maybe_event) |event| blk: { if (event.type != termbox.TB_EVENT_KEY) break :blk; @@ -56,7 +56,7 @@ pub fn handle(self: *Text, maybe_event: ?*termbox.tb_event, vi_mode: ViMode) !vo termbox.TB_KEY_ARROW_RIGHT => self.goRight(), termbox.TB_KEY_DELETE => self.delete(), termbox.TB_KEY_BACKSPACE, termbox.TB_KEY_BACKSPACE2 => { - if (vi_mode == .insert) { + if (insert_mode) { self.backspace(); } else { self.goLeft(); @@ -65,7 +65,7 @@ pub fn handle(self: *Text, maybe_event: ?*termbox.tb_event, vi_mode: ViMode) !vo termbox.TB_KEY_SPACE => try self.write(' '), else => { if (event.ch > 31 and event.ch < 127) { - if (vi_mode == .insert) { + if (insert_mode) { try self.write(@intCast(event.ch)); } else { switch (event.ch) {