aboutsummaryrefslogtreecommitdiff
path: root/src/wl/callback.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/wl/callback.zig')
-rw-r--r--src/wl/callback.zig33
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;
+}