From 6c28e028509722c27078966a2c94ddb9d0090ca7 Mon Sep 17 00:00:00 2001 From: Leo Prikler Date: Tue, 1 Dec 2020 16:46:47 +0100 Subject: video: Add more bindings. * sdl2/bindings.scm (sdl-window-get-minimum-size) (sdl-window-get-maximum-size, sdl-window-set-minimum-size) (sdl-window-set-maximum-size, sdl-window-set-resizable): New procedures. * sdl2/video.scm (window-minimum-size, window-maximum-size) (set-window-minimum-size!, set-window-maximum-size!) (set-window-resizable!): New procedures. * doc/api.texi: Document new (sdl2 video) bindings. --- sdl2/bindings.scm | 15 +++++++++++++++ sdl2/video.scm | 21 +++++++++++++++++++++ 2 files changed, 36 insertions(+) (limited to 'sdl2') diff --git a/sdl2/bindings.scm b/sdl2/bindings.scm index 586011e..aea12c9 100644 --- a/sdl2/bindings.scm +++ b/sdl2/bindings.scm @@ -167,6 +167,12 @@ RETURN-TYPE and accept arguments of ARG-TYPES." (define-foreign sdl-get-window-size void "SDL_GetWindowSize" '(* * *)) +(define-foreign sdl-get-window-minimum-size + void "SDL_GetWindowMinimumSize" '(* * *)) + +(define-foreign sdl-get-window-maximum-size + void "SDL_GetWindowMaximumSize" '(* * *)) + (define-foreign sdl-get-window-position void "SDL_GetWindowPosition" '(* * *)) @@ -206,6 +212,15 @@ RETURN-TYPE and accept arguments of ARG-TYPES." (define-foreign sdl-set-window-size void "SDL_SetWindowSize" (list '* int int)) +(define-foreign sdl-set-window-minimum-size + void "SDL_SetWindowMinimumSize" (list '* int int)) + +(define-foreign sdl-set-window-maximum-size + void "SDL_SetWindowMaximumSize" (list '* int int)) + +(define-foreign sdl-set-window-resizable + void "SDL_SetWindowResizable" (list '* sdl-bool)) + (define-foreign sdl-set-window-fullscreen int "SDL_SetWindowFullscreen" (list '* uint32)) diff --git a/sdl2/video.scm b/sdl2/video.scm index 187a5bc..d26eb62 100644 --- a/sdl2/video.scm +++ b/sdl2/video.scm @@ -166,6 +166,14 @@ returns or otherwise exits." "Return the dimensions of WINDOW." (%get-coords window ffi:sdl-get-window-size)) +(define (window-minimum-size window) + "Return the minimal dimensions, that WINDOW can take." + (%get-coords window ffi:sdl-get-window-minimum-size)) + +(define (window-maximum-size window) + "Return the maximal dimensions, that WINDOW can take." + (%get-coords window ffi:sdl-get-window-maximum-size)) + (define (window-position window) "Return the position of WINDOW on the display." (%get-coords window ffi:sdl-get-window-position)) @@ -231,6 +239,19 @@ of (width,height) coordinates measured in pixels." ((width height) (ffi:sdl-set-window-size (unwrap-window window) width height)))) +(define (set-window-minimum-size! window width height) + "Set the minimum dimensions of WINDOW to WIDTH x HEIGHT pixels." + (ffi:sdl-set-window-minimum-size (unwrap-window window) width height)) + +(define (set-window-maximum-size! window width height) + "Set the maximum dimensions of WINDOW to WIDTH x HEIGHT pixels." + (ffi:sdl-set-window-maximum-size (unwrap-window window) width height)) + +(define (set-window-resizable! window resizable?) + "If RESIZABLE?, make WINDOW resizable, otherwise disable resizing for WINDOW." + (ffi:sdl-set-window-resizable (unwrap-window window) + (ffi:boolean->sdl-bool resizable?))) + (define* (set-window-fullscreen! window fullscreen? #:key desktop?) "Toggle fullscreen mode on/off for WINDOW. If FULLSCREEN?, fullscreen mode is activated, otherwise it is deactivated. If -- cgit v1.2.3