55809160b9
This detects support for pixel mouse mode so it can be enabled only if supported. This also translates pixel coordinates to something more compatible with plaine cell coordinates. This make it much easier to write applications that support both.
48 lines
691 B
Zig
48 lines
691 B
Zig
/// A mouse event
|
|
pub const Mouse = @This();
|
|
|
|
pub const Shape = enum {
|
|
default,
|
|
text,
|
|
pointer,
|
|
help,
|
|
progress,
|
|
wait,
|
|
@"ew-resize",
|
|
@"ns-resize",
|
|
cell,
|
|
};
|
|
|
|
pub const Button = enum(u8) {
|
|
left,
|
|
middle,
|
|
right,
|
|
none,
|
|
wheel_up = 64,
|
|
wheel_down = 65,
|
|
button_8 = 128,
|
|
button_9 = 129,
|
|
button_10 = 130,
|
|
button_11 = 131,
|
|
};
|
|
|
|
pub const Modifiers = packed struct(u3) {
|
|
shift: bool = false,
|
|
alt: bool = false,
|
|
ctrl: bool = false,
|
|
};
|
|
|
|
pub const Type = enum {
|
|
press,
|
|
release,
|
|
motion,
|
|
drag,
|
|
};
|
|
|
|
col: usize,
|
|
row: usize,
|
|
xoffset: usize = 0,
|
|
yoffset: usize = 0,
|
|
button: Button,
|
|
mods: Modifiers,
|
|
type: Type,
|