From f60ccd7c37c3049a76a4be2b4d25b9ac8dccf771 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Mon, 8 Jul 2024 21:55:11 +0200 Subject: [PATCH] fix(home): resize home screen menu before rendering --- src/tui/home.zig | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/tui/home.zig b/src/tui/home.zig index b0e8aed..8ff6184 100644 --- a/src/tui/home.zig +++ b/src/tui/home.zig @@ -136,8 +136,6 @@ pub fn render(self: *Self, theme: *const Widget.Theme) bool { self.plane.home(); if (self.fire) |*fire| fire.render(); - const more = self.menu.render(theme); - const style_title = if (tui.find_scope_style(theme, "function")) |sty| sty.style else theme.editor; const style_subtext = if (tui.find_scope_style(theme, "comment")) |sty| sty.style else theme.editor; @@ -145,33 +143,36 @@ pub fn render(self: *Self, theme: *const Widget.Theme) bool { const subtext = "a programmer's text editor"; if (self.plane.dim_x() > 120 and self.plane.dim_y() > 22) { - self.plane.cursor_move_yx(2, 4) catch return more; - fonts.print_string_large(&self.plane, title, style_title) catch return more; + self.plane.cursor_move_yx(2, 4) catch return false; + fonts.print_string_large(&self.plane, title, style_title) catch return false; - self.plane.cursor_move_yx(10, 8) catch return more; - fonts.print_string_medium(&self.plane, subtext, style_subtext) catch return more; + self.plane.cursor_move_yx(10, 8) catch return false; + fonts.print_string_medium(&self.plane, subtext, style_subtext) catch return false; self.menu.resize(.{ .y = 15, .x = 10, .w = 32 }); } else if (self.plane.dim_x() > 55 and self.plane.dim_y() > 16) { - self.plane.cursor_move_yx(2, 4) catch return more; - fonts.print_string_medium(&self.plane, title, style_title) catch return more; + self.plane.cursor_move_yx(2, 4) catch return false; + fonts.print_string_medium(&self.plane, title, style_title) catch return false; self.plane.set_style_bg_transparent(style_subtext); - self.plane.cursor_move_yx(7, 6) catch return more; + self.plane.cursor_move_yx(7, 6) catch return false; _ = self.plane.print(subtext, .{}) catch {}; self.menu.resize(.{ .y = 9, .x = 8, .w = 32 }); } else { self.plane.set_style_bg_transparent(style_title); - self.plane.cursor_move_yx(1, 4) catch return more; - _ = self.plane.print(title, .{}) catch return more; + self.plane.cursor_move_yx(1, 4) catch return false; + _ = self.plane.print(title, .{}) catch return false; self.plane.set_style_bg_transparent(style_subtext); - self.plane.cursor_move_yx(3, 6) catch return more; + self.plane.cursor_move_yx(3, 6) catch return false; _ = self.plane.print(subtext, .{}) catch {}; - self.menu.resize(.{ .y = 5, .x = 8, .w = 32 }); + const x = @min(self.plane.dim_x() -| 32, 8); + self.menu.resize(.{ .y = 5, .x = x, .w = 32 }); } + const more = self.menu.render(theme); + return more or self.fire != null; }