diff --git a/examples/M-modules/quick/palindrome-2/generate-qml.lisp b/examples/M-modules/quick/palindrome-2/generate-qml.lisp index 5e413e2..2c260e3 100644 --- a/examples/M-modules/quick/palindrome-2/generate-qml.lisp +++ b/examples/M-modules/quick/palindrome-2/generate-qml.lisp @@ -52,7 +52,7 @@ (mapc (lambda (char xy) (incf num) (qml "PalindromeImage" - (format s "objectName: 'img~A'; source: 'img/~A.png'; x: ~D; y: ~D~%" + (format s "objectName: 'img~A'~% source: 'img/~A.png'~% x: ~D; y: ~D~%" num (image-of-char char) (* 31 (first xy)) diff --git a/examples/M-modules/quick/palindrome-2/palindrome.lisp b/examples/M-modules/quick/palindrome-2/palindrome.lisp index f97cd4a..d195d83 100644 --- a/examples/M-modules/quick/palindrome-2/palindrome.lisp +++ b/examples/M-modules/quick/palindrome-2/palindrome.lisp @@ -13,8 +13,8 @@ (defvar *timer* (qnew "QTimer")) -(defun run-animation () - (dolist (move-to (rest *move-to-positions*)) +(defun run-animation (&optional first) + (dolist (move-to (nthcdr (if first 1 0) *move-to-positions*)) (let ((target 0)) (dolist (xy move-to) (incf target) @@ -31,6 +31,6 @@ (|setSource| (|fromLocalFile.QUrl| "qml/palindrome.qml")) (|setResizeMode| |QQuickView.SizeRootObjectToView|) (|show|)) - (qlater 'run-animation)) ; don't block REPL (for eql5 -qtpl) + (qlater (lambda () (run-animation t)))) ; QLATER: don't block REPL (for eql5 -qtpl) (run) diff --git a/examples/M-modules/quick/palindrome-2/qml/palindrome.qml b/examples/M-modules/quick/palindrome-2/qml/palindrome.qml index 120fb71..e767c3c 100644 --- a/examples/M-modules/quick/palindrome-2/qml/palindrome.qml +++ b/examples/M-modules/quick/palindrome-2/qml/palindrome.qml @@ -8,102 +8,152 @@ Rectangle { color: 'black' PalindromeImage { - objectName: 'img1'; source: 'img/R.png'; x: 186; y: 186 + objectName: 'img1' + source: 'img/R.png' + x: 186; y: 186 } PalindromeImage { - objectName: 'img2'; source: 'img/O.png'; x: 217; y: 186 + objectName: 'img2' + source: 'img/O.png' + x: 217; y: 186 } PalindromeImage { - objectName: 'img3'; source: 'img/T.png'; x: 248; y: 186 + objectName: 'img3' + source: 'img/T.png' + x: 248; y: 186 } PalindromeImage { - objectName: 'img4'; source: 'img/A.png'; x: 279; y: 186 + objectName: 'img4' + source: 'img/A.png' + x: 279; y: 186 } PalindromeImage { - objectName: 'img5'; source: 'img/S.png'; x: 310; y: 186 + objectName: 'img5' + source: 'img/S.png' + x: 310; y: 186 } PalindromeImage { - objectName: 'img6'; source: 'img/O.png'; x: 186; y: 217 + objectName: 'img6' + source: 'img/O.png' + x: 186; y: 217 } PalindromeImage { - objectName: 'img7'; source: 'img/P.png'; x: 217; y: 217 + objectName: 'img7' + source: 'img/P.png' + x: 217; y: 217 } PalindromeImage { - objectName: 'img8'; source: 'img/E.png'; x: 248; y: 217 + objectName: 'img8' + source: 'img/E.png' + x: 248; y: 217 } PalindromeImage { - objectName: 'img9'; source: 'img/R.png'; x: 279; y: 217 + objectName: 'img9' + source: 'img/R.png' + x: 279; y: 217 } PalindromeImage { - objectName: 'img10'; source: 'img/A.png'; x: 310; y: 217 + objectName: 'img10' + source: 'img/A.png' + x: 310; y: 217 } PalindromeImage { - objectName: 'img11'; source: 'img/T.png'; x: 186; y: 248 + objectName: 'img11' + source: 'img/T.png' + x: 186; y: 248 } PalindromeImage { - objectName: 'img12'; source: 'img/E.png'; x: 217; y: 248 + objectName: 'img12' + source: 'img/E.png' + x: 217; y: 248 } PalindromeImage { - objectName: 'img13'; source: 'img/N.png'; x: 248; y: 248 + objectName: 'img13' + source: 'img/N.png' + x: 248; y: 248 } PalindromeImage { - objectName: 'img14'; source: 'img/E.png'; x: 279; y: 248 + objectName: 'img14' + source: 'img/E.png' + x: 279; y: 248 } PalindromeImage { - objectName: 'img15'; source: 'img/T.png'; x: 310; y: 248 + objectName: 'img15' + source: 'img/T.png' + x: 310; y: 248 } PalindromeImage { - objectName: 'img16'; source: 'img/A.png'; x: 186; y: 279 + objectName: 'img16' + source: 'img/A.png' + x: 186; y: 279 } PalindromeImage { - objectName: 'img17'; source: 'img/R.png'; x: 217; y: 279 + objectName: 'img17' + source: 'img/R.png' + x: 217; y: 279 } PalindromeImage { - objectName: 'img18'; source: 'img/E.png'; x: 248; y: 279 + objectName: 'img18' + source: 'img/E.png' + x: 248; y: 279 } PalindromeImage { - objectName: 'img19'; source: 'img/P.png'; x: 279; y: 279 + objectName: 'img19' + source: 'img/P.png' + x: 279; y: 279 } PalindromeImage { - objectName: 'img20'; source: 'img/O.png'; x: 310; y: 279 + objectName: 'img20' + source: 'img/O.png' + x: 310; y: 279 } PalindromeImage { - objectName: 'img21'; source: 'img/S.png'; x: 186; y: 310 + objectName: 'img21' + source: 'img/S.png' + x: 186; y: 310 } PalindromeImage { - objectName: 'img22'; source: 'img/A.png'; x: 217; y: 310 + objectName: 'img22' + source: 'img/A.png' + x: 217; y: 310 } PalindromeImage { - objectName: 'img23'; source: 'img/T.png'; x: 248; y: 310 + objectName: 'img23' + source: 'img/T.png' + x: 248; y: 310 } PalindromeImage { - objectName: 'img24'; source: 'img/O.png'; x: 279; y: 310 + objectName: 'img24' + source: 'img/O.png' + x: 279; y: 310 } PalindromeImage { - objectName: 'img25'; source: 'img/R.png'; x: 310; y: 310 + objectName: 'img25' + source: 'img/R.png' + x: 310; y: 310 } }