stream: Optimize `StringIStream.read_all`
[nit.git] / lib / sdl.nit
index df270e4..5225f9f 100644 (file)
@@ -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)