summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeo Prikler <leo.prikler@student.tugraz.at>2021-06-27 19:23:20 +0200
committerDavid Thompson <dthompson2@worcester.edu>2021-06-30 09:24:14 -0400
commitb8aaa96201a6716b7ad5617c0c2987e5def66cb4 (patch)
tree35cfb2648d1376da76f27003891f64423c9c29ac
parent031605783e630d46b7294d6ac8bfbf5e4884bb82 (diff)
Add support for SDL_SetWindowIcon.
* sdl/bindings.scm (sdl-set-window-icon): New variable. * sdl/video.scm (set-window-icon!): New variable. * doc/api.texi (Windows): Document it.
-rw-r--r--doc/api.texi4
-rw-r--r--sdl2/bindings.scm3
-rw-r--r--sdl2/video.scm7
3 files changed, 14 insertions, 0 deletions
diff --git a/doc/api.texi b/doc/api.texi
index 8a352a4..204db9e 100644
--- a/doc/api.texi
+++ b/doc/api.texi
@@ -162,6 +162,10 @@ remove the border.
Set the title of @var{window} to the string @var{title}.
@end deffn
+@deffn {Procedure} set-window-icon! window icon
+Set the icon of @var{window} to the surface @var{icon}.
+@end deffn
+
@deffn {Procedure} set-window-position! window x y
Set the position of @var{window} to (@var{x}, @var{y}).
@end deffn
diff --git a/sdl2/bindings.scm b/sdl2/bindings.scm
index 7f12b45..ac16481 100644
--- a/sdl2/bindings.scm
+++ b/sdl2/bindings.scm
@@ -206,6 +206,9 @@ RETURN-TYPE and accept arguments of ARG-TYPES."
(define-foreign sdl-set-window-title
void "SDL_SetWindowTitle" '(* *))
+(define-foreign sdl-set-window-icon
+ void "SDL_SetWindowIcon" (list '* '*))
+
(define-foreign sdl-set-window-position
void "SDL_SetWindowPosition" (list '* int int))
diff --git a/sdl2/video.scm b/sdl2/video.scm
index a481183..0db5314 100644
--- a/sdl2/video.scm
+++ b/sdl2/video.scm
@@ -50,6 +50,7 @@
restore-window!
set-window-border!
set-window-title!
+ set-window-icon!
set-window-position!
set-window-size!
set-window-minimum-size!
@@ -231,6 +232,12 @@ the border."
(ffi:sdl-set-window-title (unwrap-window window)
(string->pointer title)))
+(define (set-window-icon! window icon)
+ "Set the icon of WINDOW to the surface ICON."
+ (ffi:sdl-set-window-icon (unwrap-window window)
+ ((@@ (sdl2 surface) unwrap-surface) icon)))
+
+
(define (set-window-position! window x y)
"Set the position of WINDOW to (X, Y)."
(ffi:sdl-set-window-position (unwrap-window window) x y))