Input module

Event

structSource

One input event. Check type first; it decides which other fields mean anything: key_code and repeat for .KEYBOARD, utf32 for .TEXT_INPUT, wheel_delta for .MOUSE_WHEEL, files for .DRAG_AND_DROP_FILES, and so on. The modifier flags (shift_pressed, ctrl_pressed, alt_pressed, cmd_meta_pressed) apply to every event.

Example↗
event: Event;
event.type = .KEYBOARD;
event.key_code = .ENTER;
event.shift_pressed = true;
assert(event.key_code == .ENTER && event.packed != 0);

Fields

modifier_flags: Modifier_Flags
key_pressed: u32
key_code: := Key_Code.UNKNOWN
utf32: u32
repeat: := false
text_input_count: u16
typical_wheel_delta: s32
wheel_delta: s32
files: [..] string
touch_type: enum u8 { MOVED :: 0; PRESSED :: 1; RELEASED :: 2; }
touch_index: s32
touch_x: float
touch_y: float
window_event_type: Window_Event_Type
window: Window_Type

See also