From 0eb48d66447cca4a9b1e719542b9551357fc7a17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Wed, 9 Apr 2014 13:28:49 +0200 Subject: Add typespecs to the sdl_events module --- src/sdl_events.erl | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/sdl_events.erl b/src/sdl_events.erl index a4710a5..37162e5 100644 --- a/src/sdl_events.erl +++ b/src/sdl_events.erl @@ -16,6 +16,38 @@ -export([poll/0]). +-type window_event_type() :: shown | hidden | exposed | moved | resized + | size_changed | minimized | maximized | restored | enter | leave + | focus_gained | focus_lost | close. +-type window_event() :: #{type=>window, timestamp=>non_neg_integer(), + window_id=>non_neg_integer(), event=>window_event_type(), + data=>{integer(), integer()}}. + +-type keymod() :: left_shift | right_shift | left_ctrl | right_ctrl + | left_alt | right_alt | left_gui | right_gui | num | caps | mode. +-type key_event() :: #{type=>key_down | key_up, timestamp=>non_neg_integer(), + window_id=>non_neg_integer(), repeat=>boolean(), scancode=>non_neg_integer(), + sym=>non_neg_integer(), mod=>[keymod()]}. + +-type mouse_button() :: left | middle | right | x1 | x2 | non_neg_integer(). +-type mouse_button_event() :: #{type=>mouse_down | mouse_up, timestamp=>non_neg_integer(), + window_id=>non_neg_integer(), which=>touch | non_neg_integer(), + button=>mouse_button(), x=>integer(), y=>integer()}. + +-type mouse_motion_event() :: #{type=>mouse_motion, timestamp=>non_neg_integer(), + window_id=>non_neg_integer(), which=>touch | non_neg_integer(), + x=>integer(), y=>integer(), xrel=>integer(), yrel=>integer()}. + +-type mouse_wheel_event() :: #{type=>mouse_wheel, timestamp=>non_neg_integer(), + window_id=>non_neg_integer(), which=>touch | non_neg_integer(), + x=>integer(), y=>integer()}. + +-type quit_event() :: #{type=>quit, timestamp=>non_neg_integer()}. + +-type event() :: window_event() | key_event() | mouse_button_event() + | mouse_motion_event() | mouse_wheel_event() | quit_event(). + +-spec poll() -> event() | false. poll() -> esdl2:poll_event(), receive {'_nif_thread_ret_', Ret} -> Ret end. -- cgit v1.2.3