feat: update to new render-request API
This commit is contained in:
parent
e2884c646a
commit
dae1092273
|
@ -5,14 +5,6 @@ pkgs:
|
||||||
license: GPL-3.0
|
license: GPL-3.0
|
||||||
root: src/main.zig
|
root: src/main.zig
|
||||||
deps:
|
deps:
|
||||||
# zellzig dependency for development
|
|
||||||
zellzig:
|
zellzig:
|
||||||
local: ..
|
local: ..
|
||||||
root: src/main.zig
|
root: src/main.zig
|
||||||
|
|
||||||
# use this for actual plugins:
|
|
||||||
#zellzig:
|
|
||||||
# git:
|
|
||||||
# url: "https://mzte.de/git/LordMZTE/zellzig.git"
|
|
||||||
# ref: master
|
|
||||||
# root: src/main.zig
|
|
||||||
|
|
|
@ -14,6 +14,9 @@ comptime {
|
||||||
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
||||||
var mode: ?zz.types.InputMode = null;
|
var mode: ?zz.types.InputMode = null;
|
||||||
|
|
||||||
|
// the zellij version the plugin is written for
|
||||||
|
pub const zellij_version = "0.34.0";
|
||||||
|
|
||||||
// called on startup
|
// called on startup
|
||||||
pub fn init() void {
|
pub fn init() void {
|
||||||
// This is required to make zellij close once everything but our plugin is gone.
|
// This is required to make zellij close once everything but our plugin is gone.
|
||||||
|
@ -24,14 +27,19 @@ pub fn init() void {
|
||||||
}
|
}
|
||||||
|
|
||||||
// called on every event
|
// called on every event
|
||||||
pub fn update() void {
|
// return true to indicate that the plugin should be rendered
|
||||||
var ev = zz.getEvent(gpa.allocator()) catch return;
|
pub fn update() bool {
|
||||||
|
var ev = zz.getEvent(gpa.allocator()) catch return false;
|
||||||
defer ev.deinit();
|
defer ev.deinit();
|
||||||
|
|
||||||
switch (ev.data) {
|
switch (ev.data) {
|
||||||
.ModeUpdate => |mode_info| mode = mode_info.mode,
|
.ModeUpdate => |mode_info| {
|
||||||
|
mode = mode_info.mode;
|
||||||
|
return true;
|
||||||
|
},
|
||||||
else => {},
|
else => {},
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// called to draw the UI
|
// called to draw the UI
|
||||||
|
|
14
src/main.zig
14
src/main.zig
|
@ -26,13 +26,17 @@ test {
|
||||||
/// zz.createPlugin(@This());
|
/// zz.createPlugin(@This());
|
||||||
/// }
|
/// }
|
||||||
///
|
///
|
||||||
/// pub const zellij_version = "0.33.0";
|
/// pub const zellij_version = "0.34.0";
|
||||||
///
|
///
|
||||||
/// pub fn init() void {}
|
/// pub fn init() void {}
|
||||||
/// pub fn update(event: zz.Event) void {
|
/// pub fn update(event: zz.Event) bool {
|
||||||
/// var event = zz.getEvent(gpa.allocator()) catch return;
|
/// var event = zz.getEvent(gpa.allocator()) catch return;
|
||||||
/// defer event.deinit();
|
/// defer event.deinit();
|
||||||
|
///
|
||||||
/// // use event
|
/// // use event
|
||||||
|
///
|
||||||
|
/// // return true to request render
|
||||||
|
/// return true;
|
||||||
/// }
|
/// }
|
||||||
/// pub fn render(rows: i32, cols: i32) void {}
|
/// pub fn render(rows: i32, cols: i32) void {}
|
||||||
/// ```
|
/// ```
|
||||||
|
@ -40,7 +44,7 @@ pub fn createPlugin(comptime Plugin: type) void {
|
||||||
if (@TypeOf(Plugin.init) != fn () void)
|
if (@TypeOf(Plugin.init) != fn () void)
|
||||||
@compileError("Function 'init' has invalid signature!");
|
@compileError("Function 'init' has invalid signature!");
|
||||||
|
|
||||||
if (@TypeOf(Plugin.update) != fn () void)
|
if (@TypeOf(Plugin.update) != fn () bool)
|
||||||
@compileError("Function 'update' has invalid signature!");
|
@compileError("Function 'update' has invalid signature!");
|
||||||
|
|
||||||
if (@TypeOf(Plugin.render) != fn (i32, i32) void)
|
if (@TypeOf(Plugin.render) != fn (i32, i32) void)
|
||||||
|
@ -55,8 +59,8 @@ pub fn createPlugin(comptime Plugin: type) void {
|
||||||
Plugin.render(rows, cols);
|
Plugin.render(rows, cols);
|
||||||
}
|
}
|
||||||
|
|
||||||
export fn update() void {
|
export fn update() bool {
|
||||||
Plugin.update();
|
return Plugin.update();
|
||||||
}
|
}
|
||||||
|
|
||||||
export fn plugin_version() void {
|
export fn plugin_version() void {
|
||||||
|
|
Loading…
Reference in a new issue