feat: provide user feadback on bar misconfiguration

This commit is contained in:
CJ van den Berg 2024-10-31 13:54:38 +01:00
parent dec2399b19
commit a6f09895d1
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9

View file

@ -1,6 +1,7 @@
const std = @import("std");
const EventHandler = @import("EventHandler");
const Plane = @import("renderer").Plane;
const log = @import("log");
const Widget = @import("../Widget.zig");
@ -21,6 +22,17 @@ pub const CreateError = error{ OutOfMemory, Exit };
pub const CreateFunction = *const fn (allocator: std.mem.Allocator, parent: Plane, event_handler: ?EventHandler) CreateError!Widget;
pub fn create(name: []const u8, allocator: std.mem.Allocator, parent: Plane, event_handler: ?EventHandler) CreateError!?Widget {
const create_ = widgets.get(name) orelse return null;
const create_ = widgets.get(name) orelse {
const logger = log.logger("statusbar");
logger.print_err("config", "unknown widget \"{s}\" (see log)", .{name});
log_widgets(logger);
return null;
};
return try create_(allocator, parent, event_handler);
}
fn log_widgets(logger: anytype) void {
logger.print("available widgets:", .{});
for (widgets.keys()) |name|
logger.print(" {s}", .{name});
}