aboutsummaryrefslogtreecommitdiff
path: root/src/xdg/surface.zig
blob: fc9d8386945e0f603f86c334dc57483f8b074a10 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
const wayland = @import("../root.zig");
const wl = wayland.wl;

const Self = @This();

pub const Request = union(enum) {
    destroy: void,
    get_toplevel: struct { wayland.Object.Ref },
    get_popup: struct { wayland.Object.Ref, ?wayland.Object.Ref, wayland.Object.Ref },
    set_window_geometry: struct { i32, i32, i32, i32 },
    ack_configure: struct { u32 },
};

pub const Events = wayland.EventSet(Self, .{ configure });

handle: wayland.Object.Ref,
init: wayland.Object.interface.Init(Self) = .{},

fn configure(
    self: *Self,
    ctx: wayland.Context,
    payload: u32
) !void {
    try ctx.display.request(self, .{ .ack_configure = .{ payload } });
}