feat(event): add focus in/out event to SystemEvents
Some checks failed
Zig Project Action / Lint, Spell-check and test zig project (push) Failing after 3m54s

feat(app): add minimal size argument for App.start

Read more corresponding inputs from stdin and convert them correctly
(i.e. in band window resizing), further keys (arrow keys, F-keys, etc.).
Respect the provided minimal size for the application which posts an
error message in case the size is smaller than the requested minimal
size.
This commit is contained in:
2024-12-25 12:53:39 +01:00
parent f7cd61d619
commit 3a989321fc
11 changed files with 214 additions and 18 deletions

View File

@@ -82,7 +82,7 @@ pub fn main() !void {
});
defer layout.deinit();
try app.start();
try app.start(null);
defer app.stop() catch unreachable;
// App.Event loop
@@ -104,6 +104,7 @@ pub fn main() !void {
.err => |err| {
log.err("Received {any} with message: {s}", .{ err.err, err.msg });
},
else => {},
}
const events = try layout.handle(event);
for (events.items) |e| {

View File

@@ -68,7 +68,12 @@ pub fn main() !void {
});
defer layout.deinit();
try app.start();
const min_size: zterm.Size = .{
.cols = 25,
.rows = 20,
};
try app.start(min_size);
defer app.stop() catch unreachable;
// App.Event loop
@@ -88,7 +93,7 @@ pub fn main() !void {
}
if (Key.matches(key, .{ .cp = 'n', .mod = .{ .ctrl = true } })) {
try app.interrupt();
defer app.start() catch @panic("could not start app event loop");
defer app.start(min_size) catch @panic("could not start app event loop");
// TODO: parse environment variables to extract the value of $EDITOR and use it here instead
var child = std.process.Child.init(&.{"hx"}, allocator);
_ = child.spawnAndWait() catch |err| {
@@ -104,6 +109,7 @@ pub fn main() !void {
.err => |err| {
log.err("Received {any} with message: {s}", .{ err.err, err.msg });
},
else => {},
}
const events = try layout.handle(event);
for (events.items) |e| {

View File

@@ -80,7 +80,7 @@ pub fn main() !void {
});
defer layout.deinit();
try app.start();
try app.start(null);
defer app.stop() catch unreachable;
// App.Event loop
@@ -102,6 +102,7 @@ pub fn main() !void {
.err => |err| {
log.err("Received {any} with message: {s}", .{ err.err, err.msg });
},
else => {},
}
const events = try layout.handle(event);
for (events.items) |e| {

View File

@@ -123,7 +123,7 @@ pub fn main() !void {
});
defer layout.deinit();
try app.start();
try app.start(null);
defer app.stop() catch unreachable;
// App.Event loop
@@ -145,6 +145,7 @@ pub fn main() !void {
.err => |err| {
log.err("Received {any} with message: {s}", .{ err.err, err.msg });
},
else => {},
}
const events = try layout.handle(event);
for (events.items) |e| {

View File

@@ -89,7 +89,7 @@ pub fn main() !void {
});
defer layout.deinit();
try app.start();
try app.start(null);
defer app.stop() catch unreachable;
// App.Event loop
@@ -111,6 +111,7 @@ pub fn main() !void {
.err => |err| {
log.err("Received {any} with message: {s}", .{ err.err, err.msg });
},
else => {},
}
const events = try layout.handle(event);
for (events.items) |e| {

View File

@@ -94,7 +94,7 @@ pub fn main() !void {
});
defer layout.deinit();
try app.start();
try app.start(null);
defer app.stop() catch unreachable;
// App.Event loop
@@ -115,6 +115,7 @@ pub fn main() !void {
.err => |err| {
log.err("Received {any} with message: {s}", .{ err.err, err.msg });
},
else => {},
}
const events = try layout.handle(event);