From 6789ffa5366604d361267e96732f25f391943130 Mon Sep 17 00:00:00 2001 From: Ekaitz Zarraga Date: Fri, 22 Jul 2022 14:43:22 +0200 Subject: mouse: Add cursor manipulation bindings. * sdl2/bindings.scm (SDL_SYSTEM_CURSOR_ARROW, SDL_SYSTEM_CURSOR_IBEAM) (SDL_SYSTEM_CURSOR_WAIT, SDL_SYSTEM_CURSOR_CROSSHAIR) (SDL_SYSTEM_CURSOR_WAITARROW, SDL_SYSTEM_CURSOR_SIZENWSE) (SDL_SYSTEM_CURSOR_SIZENESW, SDL_SYSTEM_CURSOR_SIZEWE) (SDL_SYSTEM_CURSOR_SIZENS, SDL_SYSTEM_CURSOR_SIZEALL) (SDL_SYSTEM_CURSOR_NO, SDL_SYSTEM_CURSOR_HAND, SDL_NUM_SYSTEM_CURSORS): New variables. (sdl-create-system-cursor, sdl-create-color-cursor, sdl-free-cursor) (sdl-set-cursor, sdl-get-cursor, sdl-show-cursor): New procedures. * sdl2/input/mouse.scm (make-system-cursor, make-surface-cursor) (set-cursor!, get-cursor, delete-cursor!): New procedures. * doc/api.texi (Mouse): Document the added features --- doc/api.texi | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'doc') diff --git a/doc/api.texi b/doc/api.texi index 8e0fe73..85e5bf7 100644 --- a/doc/api.texi +++ b/doc/api.texi @@ -313,6 +313,47 @@ Return @code{#t} if @var{button} is currently being pressed. Return @code{#t} if @var{button} is not currently being pressed. @end deffn +@deffn {Procedure} make-system-cursor cursor-type +Create a new cursor from the system's available set, chosen by +@var{cursor-type}. The possible values for @var{cursor-type} are: + +@itemize +@item @code{arrow} +@item @code{crosshair} +@item @code{hand} +@item @code{i-beam} +@item @code{size-north-south} +@item @code{size-northwest-southeast} +@item @code{size-northeast-southwest} +@item @code{size-west-east} +@item @code{size-all} +@item @code{no} +@item @code{wait} +@item @code{wait-arrow} +@end itemize + +@end deffn + +@deffn {Procedure} make-surface-cursor surface hot-x hot-y +Create a new cursor from a surface and the given hotspot coordinates +(@var{hot-x}, @var{hot-y}). +@end deffn + +@deffn {Procedure} get-cursor +Return the cursor currently in use. The returned cursor object is +internally managed and it's not necessary to call +@code{delete-cursor!} for it. +@end deffn + +@deffn {Procedure} set-cursor! cursor +Set the current cursor to @var{cursor}. If @var{cursor} is @code{#f}, +the system default cursor is restored. +@end deffn + +@deffn {Procedure} delete-cursor! cursor +Free the memory used by @var{cursor}. Be careful! +@end deffn + @node Joysticks @subsection Joysticks -- cgit v1.2.3