X-Git-Url: http://nitlanguage.org diff --git a/lib/sdl.nit b/lib/sdl.nit index df270e4..5225f9f 100644 --- a/lib/sdl.nit +++ b/lib/sdl.nit @@ -92,17 +92,14 @@ extern class SDLDisplay `{SDL_Surface *`} SDL_FillRect(recv, NULL, SDL_MapRGB(recv->format,ri,gi,bi)); `} + # SDL events since the last call to this method fun events: Sequence[SDLInputEvent] do - var new_event: nullable Object = null - var events = new List[SDLInputEvent] + var events = new Array[SDLInputEvent] loop - new_event = poll_event - if new_event != null then # new_event isa Event then # - events.add(new_event) - else - break - end + var new_event = poll_event + if new_event == null then break + events.add new_event end return events end @@ -173,7 +170,7 @@ extern class SDLDrawable `{SDL_Surface*`} redef type I: SDLImage redef fun blit(img, x, y) do native_blit(img, x.to_i, y.to_i) - fun native_blit(img: I, x, y: Int) `{ + private fun native_blit(img: I, x, y: Int) `{ SDL_Rect dst; dst.x = x; dst.y = y; @@ -283,6 +280,24 @@ class SDLMouseButtonEvent redef var pressed: Bool redef fun depressed: Bool do return not pressed + # Is this event raised by the left button? + fun is_left_button: Bool do return button == 1 + + # Is this event raised by the right button? + fun is_right_button: Bool do return button == 2 + + # Is this event raised by the middle button? + fun is_middle_button: Bool do return button == 3 + + # Is this event raised by the wheel going down? + fun is_down_wheel: Bool do return button == 4 + + # Is this event raised by the wheel going up? + fun is_up_wheel: Bool do return button == 5 + + # Is this event raised by the wheel? + fun is_wheel: Bool do return is_down_wheel or is_up_wheel + init (x, y: Float, button: Int, pressed: Bool) do super(x, y)