;; MrEd or MrED Debug language levels required
(require-library "errortrace.ss" "errortrace")
(require-library "turtle.ss" "graphics")

(require-library "math.ss")
(require-library "macro.ss")

(require-library "turex.ss" "graphics")

(define frame (make-object frame% "Turtle Examples"))

(define options
  `(("Triangle" ,(lambda () (regular-poly 3 100)))
    ("Hexagons" ,(lambda () (regular-polys 6 10)))
    ("Spokes" ,spokes)
    ("Spyro Gyra" ,spyro-gyra)
    ("Neato" ,neato)
    ("Graphics BExam" ,(lambda () 
			 (turn/radians (/ pi 4))
			 (move -150)
			 (turn/radians (- (/ pi 4)))
			 (graphics-bexam)))
    ("Serpinski (split)" ,(lambda () (serp serp-size)))
    ("Serpinski (no split)" ,(lambda () (serp-nosplit serp-size)))
    ("Koch (split)" ,(lambda () (koch-split koch-size)))
    ("Koch (no split)" ,(lambda () (koch-draw koch-size)))
    ("Lorenz Attractor" ,lorenz1)
    ("Peano" ,(lambda () (peano-position-turtle) (peano peano-size)))
    ("Fern" ,(lambda () (turn/radians (/ pi 2)) (move -100) (fern1 fern-size)))
    ("Gapped Lines" ,(lambda () (gapped-lines)))))

(for-each (lambda (test) 
	    (send
	     (make-object button% 
			  (car test)
			  frame
			  (lambda x 
			    (turtles #t)
			    (clear)
			    (yield)
			    ((cadr test))))
	     stretchable-width #t))
	  options)

(make-object grow-box-spacer-pane% frame)	  

(send frame show #t)
