Finish binding wlr_data_device.h, clean up

This commit is contained in:
Isaac Freund 2020-10-15 20:00:45 +02:00
parent efa8647a9f
commit 819136c893
No known key found for this signature in database
GPG key ID: 86DED400DDFD7A11
4 changed files with 183 additions and 14 deletions

View file

@ -1,2 +1,2 @@
// TODO: fill in this definition
const Egl = opaque {};
pub const Egl = opaque {};

View file

@ -1,3 +1,5 @@
const wlr = @import("../wlroots.zig");
const wayland = @import("wayland");
const wl = wayland.server.wl;
@ -16,3 +18,142 @@ pub const DataDeviceManager = extern struct {
extern fn wlr_data_device_manager_create(server: *wl.Server) ?*DataDeviceManager;
pub const create = wlr_data_device_manager_create;
};
pub const DataOffer = extern struct {
pub const Type = extern enum {
selection,
drag,
};
resource: *wl.DataOffer,
source: ?*DataSource,
kind: Type,
/// wlr.Seat.selection_offers, wlr.Seat.drag_offers
link: wl.List,
actions: u32,
preferred_action: wl.DataDeviceManager.DndAction,
in_ask: bool,
source_destroy: wl.Listener,
};
pub const DataSource = extern struct {
pub const Impl = extern struct {
send: fn (source: *DataSource, mime_type: [*:0]const u8, fd: i32) callconv(.C) void,
accept: ?fn (source: *DataSource, serial: u32, mime_type: ?[*:0]const u8) callconv(.C) void,
destroy: ?fn (source: *DataSource) callconv(.C) void,
dnd_drop: ?fn (source: *DataSource) callconv(.C) void,
dnd_finish: ?fn (source: *DataSource) callconv(.C) void,
dnd_action: ?fn (source: *DataSource, wl.DataDeviceManager.DndAction) callconv(.C) void,
};
impl: *const Impl,
mime_types: wl.Array,
actions: i32,
accepted: bool,
current_dnd_action: wl.DataDeviceManager.DndAction,
compositor_action: u32,
events: extern struct {
destroy: wl.Signal,
},
extern fn wlr_data_source_init(source: *DataSource, impl: *const Impl) void;
pub const init = wlr_data_source_init;
extern fn wlr_data_source_send(source: *DataSource, mime_type: [*:0]const u8, fd: i32) void;
pub const send = wlr_data_source_send;
extern fn wlr_data_source_accept(source: *DataSource, serial: u32, mime_type: ?[*:0]const u8) void;
pub const accept = wlr_data_source_accept;
extern fn wlr_data_source_destroy(source: *DataSource) void;
pub const destroy = wlr_data_source_destroy;
extern fn wlr_data_source_dnd_drop(source: *DataSource) void;
pub const dndDrop = wlr_data_source_dnd_drop;
extern fn wlr_data_source_dnd_finish(source: *DataSource) void;
pub const dndFinish = wlr_data_source_dnd_finish;
extern fn wlr_data_source_dnd_action(source: *DataSource, action: wl.DataDeviceManager.DndAction) void;
pub const dndAction = wlr_data_source_dnd_action;
};
pub const Drag = extern struct {
pub const Icon = extern struct {
drag: *Drag,
surface: *wlr.Surface,
mapped: bool,
events: extern struct {
map: wl.Signal,
unmap: wl.Signal,
destroy: wl.Signal,
},
surface_destroy: wl.Listener,
data: ?*c_void,
};
pub const GrabType = extern enum {
keyboard,
keyboard_pointer,
keyboard_touch,
};
pub const event = struct {
pub const Motion = extern struct {
drag: *Drag,
time: u32,
sx: f64,
sy: f64,
};
pub const Drop = extern struct {
drag: *Drag,
time: u32,
};
};
grab_type: GrabType,
keyboard_grab: wlr.Seat.KeyboardGrab,
pointer_grab: wlr.Seat.PointerGrab,
touch_grab: wlr.Seat.TouchGrab,
seat: *wlr.Seat,
seat_client: *wlr.Seat.Client,
focus_client: ?*wlr.Seat.Client,
icon: ?*Icon,
focus: ?*wlr.Surface,
source: ?*DataSource,
started: bool,
dropped: bool,
cancelling: bool,
grab_touch_id: i32,
touch_id: i32,
events: extern struct {
focus: wl.Signal,
motion: wl.Signal, // event.Motion
drop: wl.Signal, // event.Drop
destroy: wl.Signal,
},
point_destroy: wl.Listener,
source_destroy: wl.Listener,
seat_client_destroy: wl.Listener,
icon_destroy: wl.Listener,
data: ?*c_void,
extern fn wlr_drag_create(seat_client: *wlr.Seat.Client, source: ?*DataSource, icon_surface: ?*wlr.Surface) ?*Drag;
pub const create = wlr_drag_create;
};

View file

@ -444,4 +444,22 @@ pub const Seat = extern struct {
extern fn wlr_seat_validate_touch_grab_serial(seat: *Seat, origin: ?*wlr.Surface, serial: u32, point_ptr: *?*TouchPoint) bool;
pub const validateTouchGrabSerial = wlr_seat_validate_touch_grab_serial;
extern fn wlr_seat_request_set_selection(seat: *Seat, client: ?*Seat.Client, source: ?*wlr.DataSource, serial: u32) void;
pub const requestSetSelection = wlr_seat_request_set_selection;
extern fn wlr_seat_set_selection(seat: *Seat, source: ?*wlr.DataSource, serial: u32) void;
pub const setSelection = wlr_seat_set_selection;
extern fn wlr_seat_request_start_drag(seat: *Seat, drag: *wlr.Drag, origin: *wlr.Surface, serial: u32) void;
pub const requestStartDrag = wlr_seat_request_start_drag;
extern fn wlr_seat_start_drag(seat: *Seat, drag: *wlr.Drag, serial: u32) void;
pub const startDrag = wlr_seat_start_drag;
extern fn wlr_seat_start_pointer_drag(seat: *Seat, drag: *wlr.Drag, serial: u32) void;
pub const startPointerDrag = wlr_seat_start_pointer_drag;
extern fn wlr_seat_start_touch_drag(seat: *Seat, drag: *wlr.Drag, serial: u32, point: *TouchPoint) void;
pub const startTouchDrag = wlr_seat_start_touch_drag;
};

View file

@ -5,22 +5,32 @@ pub const Egl = @import("render/egl.zig").Egl;
pub const Renderer = @import("render/renderer.zig").Renderer;
pub const Texture = @import("render/texture.zig").Texture;
pub const AxisOrientation = @import("types/pointer.zig").AxisOrientation;
pub const AxisSource = @import("types/pointer.zig").AxisSource;
pub const Box = @import("types/box.zig").Box;
pub const ButtonState = @import("types/input_device.zig").ButtonState;
pub const matrix = @import("types/matrix.zig");
pub const Compositor = @import("types/compositor.zig").Compositor;
pub const Cursor = @import("types/cursor.zig").Cursor;
pub const DataDeviceManager = @import("types/data_device.zig").DataDeviceManager;
pub const InputDevice = @import("types/input_device.zig").InputDevice;
pub const Output = @import("types/output.zig").Output;
pub const OutputLayout = @import("types/output_layout.zig").OutputLayout;
pub const Pointer = @import("types/pointer.zig").Pointer;
pub const Subcompositor = @import("types/compositor.zig").Subcompositor;
pub const Surface = @import("types/surface.zig").Surface;
pub const Subsurface = @import("types/surface.zig").Subsurface;
pub const Seat = @import("types/seat.zig").Seat;
pub const SerialRange = @import("types/seat.zig").SerialRange;
pub const SerialRingset = @import("types/seat.zig").SerialRingset;
pub const Subcompositor = @import("types/compositor.zig").Subcompositor;
pub const Subsurface = @import("types/surface.zig").Subsurface;
pub const Surface = @import("types/surface.zig").Surface;
pub const TouchPoint = @import("types/seat.zig").TouchPoint;
pub const matrix = @import("types/matrix.zig");
pub const InputDevice = @import("types/input_device.zig").InputDevice;
pub const ButtonState = @import("types/input_device.zig").ButtonState;
pub const Cursor = @import("types/cursor.zig").Cursor;
pub const Pointer = @import("types/pointer.zig").Pointer;
pub const AxisOrientation = @import("types/pointer.zig").AxisOrientation;
pub const AxisSource = @import("types/pointer.zig").AxisSource;
pub const DataDeviceManager = @import("types/data_device.zig").DataDeviceManager;
pub const DataOffer = @import("types/data_device.zig").DataOffer;
pub const DataSource = @import("types/data_device.zig").DataSource;
pub const Drag = @import("types/data_device.zig").Drag;
pub const Output = @import("types/output.zig").Output;
pub const OutputLayout = @import("types/output_layout.zig").OutputLayout;