]> git.jsancho.org Git - gacela.git/commitdiff
Write window declarations using a syntax
authorJavier Sancho <jsf@jsancho.org>
Tue, 14 Feb 2017 00:01:59 +0000 (01:01 +0100)
committerJavier Sancho <jsf@jsancho.org>
Tue, 14 Feb 2017 00:01:59 +0000 (01:01 +0100)
examples/01-hello-world/01-hello-world.scm
examples/02-event-driven-programming/02-event-driven-programming.scm
gacela/window.scm

index cc5e0f3a506094116925b08b072cc16c0afeedf4..61263f13ed08f72a263e2a54b8a66181c602e3c8 100644 (file)
@@ -20,5 +20,5 @@
 (use-modules (gacela))
 
 (display-scene
- (window '(#:resolution (640 480))
-        (bitmap "hello-world.bmp")))
+ (window ((resolution '(640 480)))
+   (bitmap "hello-world.bmp")))
index 2fcd3ababc46925c9ad0f78d8b1a4c0860ee4ef1..505f4b052a2b59f32e8278a1696a2608eb106def 100644 (file)
@@ -20,5 +20,6 @@
 (use-modules (gacela))
 
 (display-scene
- (window '(#:resolution (640 480))
-        (bitmap "x.bmp")))
+ (window ((resolution '(640 480))
+         (when-quit (lambda () (format #t "Quit clicked!!~%"))))
+   (bitmap "x.bmp")))
index eeed32d2beba1c6cc33a4adb928a7f48545f06b7..6d43ce600971c29f18be332dcc4ca2d8de7ec0be 100644 (file)
   #:export (window))
 
 
-(define* (window window-properties #:optional scene)
-  (make-scene
-   "window"
-   (lambda ()
-     (apply run-scene (cons scene window-properties)))))
+(define-syntax window
+  (lambda (x)
+    (syntax-case x ()
+      ((_ ((property-name property-value) ...) scene)
+       #'(make-scene
+         "window"
+         (lambda ()
+           (apply run-scene (cons scene
+                                  (append (list (symbol->keyword 'property-name) property-value)
+                                          ...)))))))))