mod(Render): fullscreen option as comptime configuration through App(..)

This commit is contained in:
2024-11-06 17:06:45 +01:00
parent 9b165e8f81
commit 4ded0210ee
3 changed files with 57 additions and 21 deletions

View File

@@ -2,8 +2,11 @@ const std = @import("std");
const terminal = @import("terminal.zig");
const zlog = @import("zlog");
const App = @import("app.zig").App(union(enum) {});
const Renderer = @import("render.zig").PlainRenderer();
const App = @import("app.zig").App(
union(enum) {},
@import("render.zig").PlainRenderer,
true,
);
const Key = @import("key.zig");
pub const std_options = zlog.std_options;
@@ -23,20 +26,16 @@ pub fn main() !void {
const allocator = gpa.allocator();
var app: App = .{};
var renderer: Renderer = .{};
var renderer: App.Renderer = .{};
var rawText = App.Widget.RawText.init(allocator);
const widget = App.Widget.createFrom(&rawText);
var layout = App.Layout.Pane.init(allocator, widget);
defer layout.deinit();
defer layout.deinit(); // deinitializes the contained widget
try app.start();
defer app.stop() catch unreachable;
// NOTE: necessary for fullscreen tui applications
try terminal.enterAltScreen();
defer terminal.existAltScreen() catch unreachable;
// App.Event loop
while (true) {
const event = app.nextEvent();