--- jam/scrlogos/hleve.lisp     2024-05-22 07:56:15.549790123 +1200
+++ common-lisp/scrlogos/hleve.lisp     2024-05-22 21:45:45.192889883 +1200
@@ -1,6 +1,8 @@
(uiop:define-package :scrlogos/hleve
+    (:import-from :scrlogos/frame)
    (:mix :clim-lisp :clim :cl)
-  (:mix-reexport :scrlogos/commands :scrlogos/engine #:scrlogos/parents)
+  (:mix-reexport :scrlogos/commands :scrlogos/engine
+                #:scrlogos/parents)

  (:export #:com-set-step-len
          #:com-set-phi
@@ -241,24 +243,36 @@
in an obvious way
"
  (let ((frame *application-frame*))
-    (refresh-labels frame)
-    (case (keyboard-event-character event)
-      (#\upwards_arrow
+    (case (keyboard-event-key-name event)
+      (:up
       (execute-frame-command frame '(com-forward)))
-      (#\downwards_arrow
+      (:down
       (execute-frame-command frame `(com-undo)))
-      (#\leftwards_arrow
+      (:left
       (with-slots (phi phi-inc) frame
        (execute-frame-command
         frame
         `(com-set-phi ,(mod (- phi phi-inc) 360)))))
-      (#\rightwards_arrow
+      (:right
       (with-slots (phi phi-inc) frame
        (execute-frame-command frame
                               `(com-set-phi ,(mod (+ phi phi-inc) 360))))))))

(defmethod run-frame-top-level :before ((obj logos) &key &allow-other-keys))

-
-
-
+(defun scrlogos/frame:line-and-turtle (frame pane &rest display-spec)
+  (declare (ignore display-spec))
+  (with-slots (lines turtle-on) frame
+    (dolist (line lines)
+      (apply 'draw-line* pane line))
+    (when turtle-on
+      (with-slots (turtle-x turtle-y turtle-rad step-len phi) frame
+       (scroll-extent pane (- turtle-x 50) (- turtle-y 50))
+       (apply 'draw-circle* pane
+              turtle-x turtle-y turtle-rad '(:filled nil))
+       (let* ((new-x (round (+ turtle-x (* step-len (cos (* phi 2 pi (/ 360.0)))))))
+              (new-y (round (+ turtle-y (* step-len (sin (* phi 2 pi (/ 360.0)))))))
+              (xy (list turtle-x turtle-y))
+              (new-xy (list new-x new-y)))
+       (apply 'draw-line* pane
+              turtle-x turtle-y new-xy))))))