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.
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
- type: Event_Type
- 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