feat: add config options to disable scrollbars and/or file icons

This commit is contained in:
CJ van den Berg 2025-03-06 17:11:49 +01:00
parent e70972f357
commit a5bf57e0e6
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9
8 changed files with 26 additions and 11 deletions

View file

@ -84,7 +84,10 @@ pub fn on_render_menu(_: *Type, button: *Type.ButtonState, theme: *const Widget.
if (!(cbor.matchString(&iter, &file_path_) catch false)) @panic("invalid buffer file path");
if (!(cbor.matchString(&iter, &icon) catch false)) @panic("invalid buffer file type icon");
if (!(cbor.matchInt(u24, &iter, &color) catch false)) @panic("invalid buffer file type color");
tui.render_file_icon(&button.plane, icon, color);
if (tui.config().show_fileicons) {
tui.render_file_icon(&button.plane, icon, color);
_ = button.plane.print(" ", .{}) catch {};
}
button.plane.set_style(style_label);
_ = button.plane.print(" {s} ", .{file_path_}) catch {};

View file

@ -90,9 +90,12 @@ pub fn on_render_menu(_: *Type, button: *Type.ButtonState, theme: *const Widget.
if (!(cbor.matchString(&iter, &description_) catch false)) @panic("invalid file_type description");
if (!(cbor.matchString(&iter, &icon) catch false)) @panic("invalid file_type icon");
if (!(cbor.matchInt(u24, &iter, &color) catch false)) @panic("invalid file_type color");
tui.render_file_icon(&button.plane, icon, color);
if (tui.config().show_fileicons) {
tui.render_file_icon(&button.plane, icon, color);
_ = button.plane.print(" ", .{}) catch {};
}
button.plane.set_style(style_label);
_ = button.plane.print(" {s} ", .{description_}) catch {};
_ = button.plane.print("{s} ", .{description_}) catch {};
var name_: []const u8 = undefined;
if (!(cbor.matchString(&iter, &name_) catch false))

View file

@ -70,7 +70,7 @@ pub fn Create(options: type) type {
.view_rows = get_view_rows(tui.screen()),
.entries = std.ArrayList(Entry).init(allocator),
};
self.menu.scrollbar.?.style_factory = scrollbar_style;
if (self.menu.scrollbar) |scrollbar| scrollbar.style_factory = scrollbar_style;
self.longest_hint = try options.load_entries(self);
if (@hasDecl(options, "restore_state"))
options.restore_state(self) catch {};
@ -173,7 +173,8 @@ pub fn Create(options: type) type {
}
fn update_scrollbar(self: *Self) void {
self.menu.scrollbar.?.set(@intCast(@max(self.total_items, 1) - 1), @intCast(self.view_rows), @intCast(self.view_pos));
if (self.menu.scrollbar) |scrollbar|
scrollbar.set(@intCast(@max(self.total_items, 1) - 1), @intCast(self.view_rows), @intCast(self.view_pos));
}
fn mouse_click_button4(menu: **Menu.State(*Self), _: *Button.State(*Menu.State(*Self))) void {