nitlanguage
/
nit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
lib/: Added statistics module for Text variants
[nit.git]
/
lib
/
sdl.nit
diff --git
a/lib/sdl.nit
b/lib/sdl.nit
index
16695e2
..
ed60975
100644
(file)
--- a/
lib/sdl.nit
+++ b/
lib/sdl.nit
@@
-14,13
+14,13
@@
# See the License for the specific language governing permissions and
# limitations under the License.
# See the License for the specific language governing permissions and
# limitations under the License.
-# SDL display support (used in Linux for windows and inputes only)
+# Simple DirectMedia Layer
module sdl is
module sdl is
- c_compiler_option(exec("sdl-config", "--cflags"))
- c_linker_option(exec("sdl-config", "--libs"), "-lSDL_image -lSDL_ttf")
+ cflags exec("sdl-config", "--cflags")
+ ldflags(exec("sdl-config", "--libs"), "-lSDL_image -lSDL_ttf")
end
end
-import mnit_display
+import mnit::display
import c
in "C header" `{
import c
in "C header" `{
@@
-70,27
+70,27
@@
extern class SDLDisplay `{SDL_Surface *`}
TTF_Quit();
`}
TTF_Quit();
`}
- redef fun finish `{ SDL_Flip(recv); `}
+ redef fun finish `{ SDL_Flip(self); `}
# Clear the entire window with given RGB color (integer values)
fun clear_int(r, g, b: Int) `{
# Clear the entire window with given RGB color (integer values)
fun clear_int(r, g, b: Int) `{
- SDL_FillRect(recv, NULL, SDL_MapRGB(recv->format,r,g,b));
+ SDL_FillRect(self, NULL, SDL_MapRGB(self->format,r,g,b));
`}
`}
- redef fun width: Int `{ return recv->w; `}
- redef fun height: Int `{ return recv->h; `}
+ redef fun width `{ return self->w; `}
+ redef fun height `{ return self->h; `}
# Fill a rectangle with given color
fun fill_rect(rect: SDLRectangle, r, g, b: Int) `{
# Fill a rectangle with given color
fun fill_rect(rect: SDLRectangle, r, g, b: Int) `{
- SDL_FillRect(recv, rect, SDL_MapRGB(recv->format,r,g,b));
+ SDL_FillRect(self, rect, SDL_MapRGB(self->format,r,g,b));
`}
`}
- redef fun clear(r, g, b: Float) `{
+ redef fun clear(r, g, b) `{
Uint8 ri, gi, bi;
ri = (Uint8)r*255;
gi = (Uint8)g*255;
bi = (Uint8)b*255;
Uint8 ri, gi, bi;
ri = (Uint8)r*255;
gi = (Uint8)g*255;
bi = (Uint8)b*255;
- SDL_FillRect(recv, NULL, SDL_MapRGB(recv->format,ri,gi,bi));
+ SDL_FillRect(self, NULL, SDL_MapRGB(self->format,ri,gi,bi));
`}
# SDL events since the last call to this method
`}
# SDL events since the last call to this method
@@
-164,13
+164,13
@@
extern class SDLDisplay `{SDL_Surface *`}
fun show_cursor=(val: Bool) `{ SDL_ShowCursor(val? SDL_ENABLE: SDL_DISABLE); `}
# Is the cursor visible?
fun show_cursor=(val: Bool) `{ SDL_ShowCursor(val? SDL_ENABLE: SDL_DISABLE); `}
# Is the cursor visible?
- fun show_cursor: Bool `{ SDL_ShowCursor(SDL_QUERY); `}
+ fun show_cursor: Bool `{ return SDL_ShowCursor(SDL_QUERY); `}
# Grab or release the input
fun grab_input=(val: Bool) `{ SDL_WM_GrabInput(val? SDL_GRAB_ON: SDL_GRAB_OFF); `}
# Is the input grabbed?
# Grab or release the input
fun grab_input=(val: Bool) `{ SDL_WM_GrabInput(val? SDL_GRAB_ON: SDL_GRAB_OFF); `}
# Is the input grabbed?
- fun grab_input: Bool `{ SDL_WM_GrabInput(SDL_GRAB_QUERY) == SDL_GRAB_ON; `}
+ fun grab_input: Bool `{ return SDL_WM_GrabInput(SDL_GRAB_QUERY) == SDL_GRAB_ON; `}
# Are instances of `SDLMouseMotionEvent` ignored?
fun ignore_mouse_motion_events: Bool `{
# Are instances of `SDLMouseMotionEvent` ignored?
fun ignore_mouse_motion_events: Bool `{
@@
-181,6
+181,12
@@
extern class SDLDisplay `{SDL_Surface *`}
fun ignore_mouse_motion_events=(val: Bool) `{
SDL_EventState(SDL_MOUSEMOTION, val? SDL_IGNORE: SDL_ENABLE);
`}
fun ignore_mouse_motion_events=(val: Bool) `{
SDL_EventState(SDL_MOUSEMOTION, val? SDL_IGNORE: SDL_ENABLE);
`}
+
+ # Does `self` has the mouse focus?
+ fun mouse_focus: Bool `{ return SDL_GetAppState() & SDL_APPMOUSEFOCUS; `}
+
+ # Does `self` has the input focus?
+ fun input_focus: Bool `{ return SDL_GetAppState() & SDL_APPINPUTFOCUS; `}
end
# Basic Drawing figures
end
# Basic Drawing figures
@@
-197,7
+203,7
@@
extern class SDLDrawable `{SDL_Surface*`}
dst.w = 0;
dst.h = 0;
dst.w = 0;
dst.h = 0;
- SDL_BlitSurface(img, NULL, recv, &dst);
+ SDL_BlitSurface(img, NULL, self, &dst);
`}
redef fun blit_centered(img, x, y)
`}
redef fun blit_centered(img, x, y)
@@
-239,18
+245,18
@@
extern class SDLImage
fun save_to_file(path: String) import String.to_cstring `{ `}
# Destroy the image and free the memory
fun save_to_file(path: String) import String.to_cstring `{ `}
# Destroy the image and free the memory
- redef fun destroy `{ SDL_FreeSurface(recv); `}
+ redef fun destroy `{ SDL_FreeSurface(self); `}
- redef fun width: Int `{ return recv->w; `}
- redef fun height: Int `{ return recv->h; `}
+ redef fun width `{ return self->w; `}
+ redef fun height `{ return self->h; `}
fun is_ok: Bool do return not address_is_null
# Returns a reference to the pixels of the texture
fun is_ok: Bool do return not address_is_null
# Returns a reference to the pixels of the texture
- fun pixels: NativeCByteArray `{ return recv->pixels; `}
+ fun pixels: NativeCByteArray `{ return self->pixels; `}
# Does this texture has an alpha mask?
# Does this texture has an alpha mask?
- fun amask: Bool `{ return recv->format->Amask; `}
+ fun amask: Bool `{ return self->format->Amask; `}
end
# A simple rectangle
end
# A simple rectangle
@@
-265,17
+271,17
@@
extern class SDLRectangle `{SDL_Rect*`}
return rect;
`}
return rect;
`}
- fun x=(v: Int) `{ recv->x = (Sint16)v; `}
- fun x: Int `{ return recv->x; `}
+ fun x=(v: Int) `{ self->x = (Sint16)v; `}
+ fun x: Int `{ return self->x; `}
- fun y=(v: Int) `{ recv->y = (Sint16)v; `}
- fun y: Int `{ return recv->y; `}
+ fun y=(v: Int) `{ self->y = (Sint16)v; `}
+ fun y: Int `{ return self->y; `}
- fun w=(v: Int) `{ recv->w = (Uint16)v; `}
- fun w: Int `{ return recv->w; `}
+ fun w=(v: Int) `{ self->w = (Uint16)v; `}
+ fun w: Int `{ return self->w; `}
- fun h=(v: Int) `{ recv->h = (Uint16)v; `}
- fun h: Int `{ return recv->h; `}
+ fun h=(v: Int) `{ self->h = (Uint16)v; `}
+ fun h: Int `{ return self->h; `}
end
interface SDLInputEvent
end
interface SDLInputEvent
@@
-303,8
+309,8
@@
class SDLMouseButtonEvent
var button: Int
var button: Int
- redef var pressed: Bool
- redef fun depressed: Bool do return not pressed
+ redef var pressed
+ redef fun depressed 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 left button?
fun is_left_button: Bool do return button == 1
@@
-349,8
+355,8
@@
class SDLMouseMotionEvent
var rel_x: Float
var rel_y: Float
var rel_x: Float
var rel_y: Float
- redef var pressed: Bool
- redef fun depressed: Bool do return not pressed
+ redef var pressed
+ redef fun depressed do return not pressed
init (x, y, rel_x, rel_y: Float, pressed: Bool)
do
init (x, y, rel_x, rel_y: Float, pressed: Bool)
do
@@
-369,27
+375,27
@@
class SDLKeyEvent
super KeyEvent
super SDLInputEvent
super KeyEvent
super SDLInputEvent
- var key_name: String
+ redef var name
var down: Bool
init (key_name: String, down: Bool)
do
var down: Bool
init (key_name: String, down: Bool)
do
- self.key_name = key_name
+ self.name = key_name
self.down = down
end
self.down = down
end
- redef fun to_c: nullable Char
+ redef fun to_c
do
do
- if key_name.length == 1 then return key_name.chars.first
+ if name.length == 1 then return name.chars.first
return null
end
redef fun to_s
do
if down then
return null
end
redef fun to_s
do
if down then
- return "KeyboardEvent key {key_name} down"
+ return "KeyboardEvent key {name} down"
else
else
- return "KeyboardEvent key {key_name} up"
+ return "KeyboardEvent key {name} up"
end
end
end
end
@@
-397,13
+403,13
@@
class SDLKeyEvent
redef fun is_down do return down
# Return true if the key is the up arrow
redef fun is_down do return down
# Return true if the key is the up arrow
- redef fun is_arrow_up do return key_name == "up"
+ redef fun is_arrow_up do return name == "up"
# Return true if the key is the left arrow
# Return true if the key is the left arrow
- redef fun is_arrow_left do return key_name == "left"
+ redef fun is_arrow_left do return name == "left"
# Return true if the key is the down arrow
# Return true if the key is the down arrow
- redef fun is_arrow_down do return key_name == "down"
+ redef fun is_arrow_down do return name == "down"
# Return true if the key is the right arrow
# Return true if the key is the right arrow
- redef fun is_arrow_right do return key_name == "right"
+ redef fun is_arrow_right do return name == "right"
end
class SDLQuitEvent
end
class SDLQuitEvent
@@
-412,7
+418,7
@@
class SDLQuitEvent
end
redef class Int
end
redef class Int
- fun delay `{ SDL_Delay(recv); `}
+ fun delay `{ SDL_Delay(self); `}
end
# Class to load and use TTF_Font
end
# Class to load and use TTF_Font
@@
-430,7
+436,7
@@
extern class SDLFont `{TTF_Font *`}
return font;
`}
return font;
`}
- fun destroy `{ TTF_CloseFont(recv); `}
+ fun destroy `{ TTF_CloseFont(self); `}
# Create a String with the specified color, return an SDLImage
fun render(text: String, r, g, b: Int): SDLImage import String.to_cstring `{
# Create a String with the specified color, return an SDLImage
fun render(text: String, r, g, b: Int): SDLImage import String.to_cstring `{
@@
-443,7
+449,7
@@
extern class SDLFont `{TTF_Font *`}
color.b = b;
ctext = String_to_cstring(text);
color.b = b;
ctext = String_to_cstring(text);
- if(!(text_surface=TTF_RenderText_Blended(recv, ctext, color)))
+ if(!(text_surface=TTF_RenderText_Blended(self, ctext, color)))
{
fprintf(stderr, "SDL TFF error: %s\n", TTF_GetError());
exit(1);
{
fprintf(stderr, "SDL TFF error: %s\n", TTF_GetError());
exit(1);
@@
-461,30
+467,30
@@
extern class SDLFont `{TTF_Font *`}
# Maximum pixel height of all glyphs of this font.
fun height: Int `{
# Maximum pixel height of all glyphs of this font.
fun height: Int `{
- return TTF_FontHeight(recv);
+ return TTF_FontHeight(self);
`}
fun ascent: Int `{
`}
fun ascent: Int `{
- return TTF_FontAscent(recv);
+ return TTF_FontAscent(self);
`}
fun descent: Int `{
`}
fun descent: Int `{
- return TTF_FontDescent(recv);
+ return TTF_FontDescent(self);
`}
# Get the recommended pixel height of a rendered line of text of the loaded font. This is usually larger than the Font.height.
fun line_skip: Int `{
`}
# Get the recommended pixel height of a rendered line of text of the loaded font. This is usually larger than the Font.height.
fun line_skip: Int `{
- return TTF_FontLineSkip(recv);
+ return TTF_FontLineSkip(self);
`}
# Return true is the font used fixed width for each char
fun is_fixed_width: Bool `{
`}
# Return true is the font used fixed width for each char
fun is_fixed_width: Bool `{
- return TTF_FontFaceIsFixedWidth(recv);
+ return TTF_FontFaceIsFixedWidth(self);
`}
# Return the family name of the font
fun family_name: nullable String import String.to_cstring, String.as nullable `{
`}
# Return the family name of the font
fun family_name: nullable String import String.to_cstring, String.as nullable `{
- char *fn = TTF_FontFaceFamilyName(recv);
+ char *fn = TTF_FontFaceFamilyName(self);
if (fn == NULL)
return null_String();
if (fn == NULL)
return null_String();
@@
-494,7
+500,7
@@
extern class SDLFont `{TTF_Font *`}
# Return the style name of the font
fun style_name: nullable String import String.to_cstring, String.as nullable `{
# Return the style name of the font
fun style_name: nullable String import String.to_cstring, String.as nullable `{
- char *sn = TTF_FontFaceStyleName(recv);
+ char *sn = TTF_FontFaceStyleName(self);
if (sn == NULL)
return null_String();
if (sn == NULL)
return null_String();
@@
-506,7
+512,7
@@
extern class SDLFont `{TTF_Font *`}
fun width_of(text: String): Int import NativeString.to_s `{
char *ctext = String_to_cstring(text);
int w;
fun width_of(text: String): Int import NativeString.to_s `{
char *ctext = String_to_cstring(text);
int w;
- if (TTF_SizeText(recv, ctext, &w, NULL))
+ if (TTF_SizeText(self, ctext, &w, NULL))
{
fprintf(stderr, "SDL TFF error: %s\n", TTF_GetError());
exit(1);
{
fprintf(stderr, "SDL TFF error: %s\n", TTF_GetError());
exit(1);
@@
-535,6
+541,6
@@
extern class SDLSystemWindowManagerInfo `{SDL_SysWMinfo *`}
# Returns the handle of this window on a X11 window system
fun x11_window_handle: Pointer `{
# Returns the handle of this window on a X11 window system
fun x11_window_handle: Pointer `{
- return (void*)recv->info.x11.window;
+ return (void*)self->info.x11.window;
`}
end
`}
end