diff options
Diffstat (limited to 'sdl2/events.ha')
| -rw-r--r-- | sdl2/events.ha | 471 |
1 files changed, 0 insertions, 471 deletions
diff --git a/sdl2/events.ha b/sdl2/events.ha deleted file mode 100644 index 55a0a63..0000000 --- a/sdl2/events.ha +++ /dev/null @@ -1,471 +0,0 @@ -use types::c; - -export type SDL_EventType = enum u32 { - FIRSTEVENT = 0, - - QUIT = 0x100, - - APP_TERMINATING, - APP_LOWMEMORY, - APP_WILLENTERBACKGROUND, - APP_DIDENTERBACKGROUND, - APP_WILLENTERFOREGROUND, - APP_DIDENTERFOREGROUND, - - DISPLAYEVENT = 0x150, - - WINDOWEVENT = 0x200, - SYSWMEVENT, - - KEYDOWN = 0x300, - KEYUP, - TEXTEDITING, - TEXTINPUT, - KEYMAPCHANGED, - - MOUSEMOTION = 0x400, - MOUSEBUTTONDOWN, - MOUSEBUTTONUP, - MOUSEWHEEL, - - JOYAXISMOTION = 0x600, - JOYBALLMOTION, - JOYHATMOTION, - JOYBUTTONDOWN, - JOYBUTTONUP, - JOYDEVICEADDED, - JOYDEVICEREMOVED, - - CONTROLLERAXISMOTION = 0x650, - CONTROLLERBUTTONDOWN, - CONTROLLERBUTTONUP, - CONTROLLERDEVICEADDED, - CONTROLLERDEVICEREMOVED, - CONTROLLERDEVICEREMAPPED, - - FINGERDOWN = 0x700, - FINGERUP, - FINGERMOTION, - - DOLLARGESTURE = 0x800, - DOLLARRECORD, - MULTIGESTURE, - - CLIPBOARDUPDATE = 0x900, - - DROPFILE = 0x1000, - DROPTEXT, - DROPBEGIN, - DROPCOMPLETE, - - AUDIODEVICEADDED = 0x1100, - AUDIODEVICEREMOVED, - - SENSORUPDATE = 0x1200, - - RENDER_TARGETS_RESET = 0x2000, - RENDER_DEVICE_RESET, - - USEREVENT = 0x8000, - - LASTEVENT = 0xFFFF -}; - -// Fields shared by every event -export type SDL_CommonEvent = struct { - event_type: SDL_EventType, - timestamp: u32, -}; - -// Display state change event data (event.display.*) -export type SDL_DisplayEvent = struct { - SDL_CommonEvent, - display: u32, - event: u8, - padding1: u8, - padding2: u8, - padding3: u8, - data1: i32, -}; - -// Window state change event data (event.window.*) -export type SDL_WindowEvent = struct { - SDL_CommonEvent, - window_id: u32, - event: u8, - padding1: u8, - padding2: u8, - padding3: u8, - data1: i32, - data2: i32, -}; - -// Keyboard button event structure (event.key.*) -export type SDL_KeyboardEvent = struct { - SDL_CommonEvent, - window_id: u32, - state: u8, - repeat: u8, - padding2: u8, - padding3: u8, - keysym: SDL_Keysym, -}; - -// Size of the [[SDL_TextEditingEvent]] 'text' field. -export def TEXTEDITINGEVENT_TEXT_SIZE: size = 32; - -// Keyboard text editing event structure (event.edit.*) -export type SDL_TextEditingEvent = struct { - SDL_CommonEvent, - window_id: u32, - text: [TEXTEDITINGEVENT_TEXT_SIZE]c::char, - start: i32, - length: i32, -}; - -// Size of the [[SDL_TextInputEvent]] 'text' field. -export def TEXTINPUTEVENT_TEXT_SIZE: size = 32; - -// Keyboard text input event structure (event.text.*) -export type SDL_TextInputEvent = struct { - SDL_CommonEvent, - window_id: u32, - text: [TEXTINPUTEVENT_TEXT_SIZE]c::char, -}; - -// Mouse motion event structure (event.motion.*) -export type SDL_MouseMotionEvent = struct { - SDL_CommonEvent, - window_id: u32, - which: u32, - state: u32, - x: i32, - y: i32, - xrel: i32, - yrel: i32, -}; - -// Mouse button event structure (event.button.*) -export type SDL_MouseButtonEvent = struct { - SDL_CommonEvent, - window_id: u32, - which: u32, - button: u8, - state: u8, - clicks: u8, - padding1: u8, - x: i32, - y: i32, -}; - -// Mouse wheel event structure (event.wheel.*) -export type SDL_MouseWheelEvent = struct { - SDL_CommonEvent, - window_id: u32, - which: u32, - x: i32, - y: i32, - direction: u32, -}; - -// Joystick axis motion event structure (event.jaxis.*) -export type SDL_JoyAxisEvent = struct { - SDL_CommonEvent, - which: i32, // TODO: Rig me up with the JoystickID type - axis: u8, - padding1: u8, - padding2: u8, - padding3: u8, - value: i16, - padding4: u16, -}; - -// Joystick trackball motion event structure (event.jball.*) -export type SDL_JoyBallEvent = struct { - SDL_CommonEvent, - which: i32, // TODO: Rig me up with the JoystickID type - ball: u8, - padding1: u8, - padding2: u8, - padding3: u8, - xrel: i16, - yrel: i16, -}; - -// Joystick hat position change event structure (event.jhat.*) -export type SDL_JoyHatEvent = struct { - SDL_CommonEvent, - which: i32, // TODO: Rig me up with the JoystickID type - hat: u8, - value: u8, // TODO: Rig me up with HAT_UP et al - padding1: u8, - padding2: u8, -}; - -// Joystick button event structure (event.jbutton.*) -export type SDL_JoyButtonEvent = struct { - SDL_CommonEvent, - which: i32, // TODO: Rig me up with the JoystickID type - button: u8, - state: u8, - padding1: u8, - padding2: u8, -}; - -// Joystick device event structure (event.jdevice.*) -export type SDL_JoyDeviceEvent = struct { - SDL_CommonEvent, - which: i32, -}; - -// Game controller axis motion event structure (event.caxis.*) -export type SDL_ControllerAxisEvent = struct { - SDL_CommonEvent, - which: i32, // TODO - axis: SDL_GameControllerAxis, - padding1: u8, - padding2: u8, - padding3: u8, - value: i16, - padding4: u16, -}; - -// Game controller button event structure (event.cbutton.*) -export type SDL_ControllerButtonEvent = struct { - SDL_CommonEvent, - which: i32, - button: u8, - state: u8, - padding1: u8, - padding2: u8, -}; - -// Controller device event structure (event.cdevice.*) -export type SDL_ControllerDeviceEvent = struct { - SDL_CommonEvent, - which: i32, -}; - -// Audio device event structure (event.adevice.*) -export type SDL_AudioDeviceEvent = struct { - SDL_CommonEvent, - which: u32, - iscapture: u8, - padding1: u8, - padding2: u8, - padding3: u8, -}; - -// Touch finger event structure (event.tfinger.*) -export type SDL_TouchFingerEvent = struct { - SDL_CommonEvent, - touch_id: i64, // TODO - finger_id: i64, // TODO - x: f32, - y: f32, - dx: f32, - dy: f32, - pressure: f32, -}; - -// Multiple Finger Gesture Event (event.mgesture.*) -export type SDL_MultiGestureEvent = struct { - SDL_CommonEvent, - touch_id: i64, // TODO - dtheta: f32, - ddist: f32, - x: f32, - y: f32, - num_fingers: u16, - padding: u16, -}; - -// Dollar Gesture Event (event.dgesture.*) -export type SDL_DollarGestureEvent = struct { - SDL_CommonEvent, - touch_id: i64, // TODO - gesture_id: i64, // TODO - num_fingers: u32, - error: f32, - x: f32, - y: f32, -}; - -// An event used to request a file open by the system (event.drop.*) -// This event is enabled by default, you can disable it with [[eventstate]]. -// If this event is enabled, you must free the filename in the event. -export type SDL_DropEvent = struct { - SDL_CommonEvent, - file: *c::char, - window_id: u32, -}; - -// Sensor event structure (event.sensor.*) -export type SDL_SensorEvent = struct { - SDL_CommonEvent, - which: i32, - data: [6]f32, -}; - -// The "quit requested" event -export type SDL_QuitEvent = struct { - SDL_CommonEvent, -}; - -// OS Specific event -export type SDL_OSEvent = struct { - SDL_CommonEvent, -}; - -// A user-defined event type (event.user.*) -export type SDL_UserEvent = struct { - SDL_CommonEvent, - window_id: u32, - code: i32, - data1: *opaque, - data2: *opaque, -}; - -// A video driver dependent system event (event.syswm.*) -// This event is disabled by default, you can enable it with [[eventstate]]. -export type SDL_SysWMEvent = struct { - SDL_CommonEvent, - msg: *opaque, // TODO -}; - -// General event structure -export type event = union { - event_type: SDL_EventType, - common: SDL_CommonEvent, - display: SDL_DisplayEvent, - window: SDL_WindowEvent, - key: SDL_KeyboardEvent, - edit: SDL_TextEditingEvent, - text: SDL_TextInputEvent, - motion: SDL_MouseMotionEvent, - button: SDL_MouseButtonEvent, - wheel: SDL_MouseWheelEvent, - jaxis: SDL_JoyAxisEvent, - jball: SDL_JoyBallEvent, - jhat: SDL_JoyHatEvent, - jbutton: SDL_JoyButtonEvent, - jdevice: SDL_JoyDeviceEvent, - caxis: SDL_ControllerAxisEvent, - cbutton: SDL_ControllerButtonEvent, - cdevice: SDL_ControllerDeviceEvent, - adevice: SDL_AudioDeviceEvent, - sensor: SDL_SensorEvent, - quit: SDL_QuitEvent, - user: SDL_UserEvent, - syswm: SDL_SysWMEvent, - tfinger: SDL_TouchFingerEvent, - mgesture: SDL_MultiGestureEvent, - dgestures: SDL_DollarGestureEvent, - drop: SDL_DropEvent, - - padding: [56]u8, -}; - -// Pumps the event loop, gathering events from the input devices. -// -// This function updates the event queue and internal input device state. -// -// This should only be run in the thread that sets the video mode. -export @symbol("SDL_PumpEvents") fn SDL_PumpEvents() void; - -export type eventaction = enum { - ADDEVENT, - PEEKEVENT, - GETEVENT, -}; - -@symbol("SDL_PeepEvents") fn _peep_events(events: *event, numevents: int, - action: eventaction, mintype: SDL_EventType, maxtype: SDL_EventType) int; - -// Checks the event queue for messages and optionally returns them. -// -// If 'action' is ADDEVENT, up to 'numevents' events will be added to the back -// of the event queue. -// -// If 'action' is PEEKEVENT, up to 'numevents' events at the front of the event -// queue, within the specified minimum and maximum type, will be returned and -// will not be removed from the queue. -// -// If 'action' is GETEVENT, up to 'numevents' events at the front of the event -// queue, within the specified minimum and maximum type, will be returned and -// will be removed from the queue. -// -// This function is thread-safe. -export fn SDL_PeepEvents( - events: *event, - numevents: int, - action: eventaction, - mintype: SDL_EventType, - maxtype: SDL_EventType, -) (int | error) = { - return wrapint(_peep_events(events, numevents, action, mintype, maxtype)); -}; - -// Checks to see if certain event types are in the event queue. -export @symbol("SDL_HasEvent") fn SDL_HasEvent(SDL_EventType: SDL_EventType) bool; - -// Checks to see if certain event types are in the event queue. -export @symbol("SDL_HasEvents") fn SDL_HasEvents(mintype: SDL_EventType, maxtype: SDL_EventType) bool; - -// This function clears events from the event queue -// This function only affects currently queued events. If you want to make -// sure that all pending OS events are flushed, you can call SDL_PumpEvents() -// on the main thread immediately before the flush call. -export @symbol("SDL_FlushEvent") fn flush_event(SDL_EventType: SDL_EventType) void; - -// This function clears events from the event queue -// This function only affects currently queued events. If you want to make -// sure that all pending OS events are flushed, you can call SDL_PumpEvents() -// on the main thread immediately before the flush call. -export @symbol("SDL_FlushEvents") fn SDL_FlushEvents(mintype: SDL_EventType, maxtype: SDL_EventType) void; - -@symbol("SDL_PollEvent") fn _poll_event(event: nullable *event) int; - -// Polls for currently pending events. -// -// Returns 1 if there are any pending events, or 0 if there are none available. -// -// If 'event' is not null, the next event is removed from the queue and stored -// in that area. -export fn SDL_PollEvent(event: nullable *event) (int | error) = { - return wrapint(_poll_event(event)); -}; - -@symbol("SDL_WaitEvent") fn _wait_event(event: nullable *event) int; - -// Waits indefinitely for the next available event. -// -// If 'event' is not null, the next event is removed from the queue and stored -// in that area. -export fn SDL_WaitEvent(event: nullable *event) (void | error) = { - return wrapvoid(_wait_event(event)); -}; - -@symbol("SDL_WaitEventTimeout") fn _wait_event_timeout( - event: nullable *event, timeout: int) int; - -// Waits until the specified timeout (in milliseconds) for the next available event. -// -// If 'event' is not null, the next event is removed from the queue and stored -// in that area. The 'timeout' is the time (in milliseconds) to wait for next -// event. -export fn SDL_WaitEventTimeout( - event: nullable *event, - timeout: int, -) (void | error) = { - return wrapvoid(_wait_event_timeout(event, timeout)); -}; - -@symbol("SDL_PushEvent") fn _push_event(event: *event) int; - -// Add an event to the event queue. -export fn SDL_PushEvent(event: *event) (void | error) = { - return wrapvoid(_push_event(event)); -}; - -// TODO: Finish rigging up other SDL_events.h bits |
