diff options
Diffstat (limited to 'src/wl/callback.zig')
| -rw-r--r-- | src/wl/callback.zig | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/wl/callback.zig b/src/wl/callback.zig new file mode 100644 index 0000000..0e7ea5b --- /dev/null +++ b/src/wl/callback.zig @@ -0,0 +1,33 @@ +const std = @import("std"); +const wayland = @import("../root.zig"); +const wl = wayland.wl; + +const log = std.log.scoped(.callback); + +const Self = @This(); + +pub const Events = wayland.EventSet(Self, .{done}); + +is_done: *bool, +interface: wayland.Object, + +pub fn init( + self: *Self, + allocator: std.mem.Allocator, + display: *wl.Display, + is_done: *bool, +) !void { + self.is_done = is_done; + self.interface = wayland.Object.from_self(self); + try display.registry.add_object(allocator, &self.interface); + std.debug.print("ids {any}\n", .{display.registry.objects.items}); + std.debug.print("callback #{?}\n", .{self.interface.id}); + try display.request(display, .{ .sync = .{&self.interface} }); + +} + +fn done(self: *Self, ctx: *wayland.Context, value: u32) void { + _ = value; + _ = ctx; + self.is_done.* = true; +} |