{ init_graphics() : { seval("(define get-value-from-module dynamic-require)"); seval("(define (get-value-from-graphics symbol) (get-value-from-module '(lib" + ' "graphics.ss" "graphics") symbol))'); seval("(define open-graphics (get-value-from-graphics 'open-graphics))"); seval("(define close-graphics (get-value-from-graphics 'close-graphics))"); seval("(define open-viewport (get-value-from-graphics 'open-viewport))"); seval("(define close-viewport (get-value-from-graphics 'close-viewport))"); seval("(define make-posn (get-value-from-graphics 'make-posn))"); seval("(define make-rgb (get-value-from-graphics 'make-rgb))"); seval("(define draw-viewport (get-value-from-graphics 'draw-viewport))"); seval("(define flip-viewport (get-value-from-graphics 'flip-viewport))"); seval("(define clear-viewport (get-value-from-graphics 'clear-viewport))"); seval("(define draw-pixel (get-value-from-graphics 'draw-pixel))"); seval("(define clear-pixel (get-value-from-graphics 'clear-pixel))"); seval("(define flip-pixel (get-value-from-graphics 'flip-pixel))"); seval("(define draw-line (get-value-from-graphics 'draw-line))"); seval("(define clear-line (get-value-from-graphics 'clear-line))"); seval("(define flip-line (get-value-from-graphics 'flip-line))"); seval("(define draw-rectangle (get-value-from-graphics 'draw-rectangle))"); seval("(define clear-rectangle (get-value-from-graphics 'clear-rectangle))"); seval("(define flip-rectangle (get-value-from-graphics 'flip-rectangle))"); seval("(define draw-solid-rectangle (get-value-from-graphics 'draw-solid-rectangle))"); seval("(define clear-solid-rectangle (get-value-from-graphics 'clear-solid-rectangle))"); seval("(define flip-solid-rectangle (get-value-from-graphics 'flip-solid-rectangle))"); seval("(define draw-ellipse (get-value-from-graphics 'draw-ellipse))"); seval("(define clear-ellipse (get-value-from-graphics 'clear-ellipse))"); seval("(define flip-ellipse (get-value-from-graphics 'flip-ellipse))"); seval("(define draw-solid-ellipse (get-value-from-graphics 'draw-solid-ellipse))"); seval("(define clear-solid-ellipse (get-value-from-graphics 'clear-solid-ellipse))"); seval("(define flip-solid-ellipse (get-value-from-graphics 'flip-solid-ellipse))"); seval("(define draw-string (get-value-from-graphics 'draw-string))"); seval("(define clear-string (get-value-from-graphics 'clear-string))"); seval("(define flip-string (get-value-from-graphics 'flip-string))"); seval("(define get-mouse-click (get-value-from-graphics 'get-mouse-click))"); seval("(define get-key-press (get-value-from-graphics 'get-key-press))"); seval("(open-graphics)"); seval("(define color (make-rgb 0 0 0))"); seval("(define window '())") }; show_drawingboard(hor, ver) : seval('(set! window (open-viewport "Pico Drawingboard" ' + text(hor) + ' ' + text(ver) + '))'); close_drawingboard() : seval("(close-viewport window)"); save_drawingboard(filename) : seval("((save-pixmap window)" + '"' + filename + '")'); get_mouse_click() : seval("(get-mouse-click window)"); get_key_press() : seval("(get-key-press window)"); set_color(red, green, blue) : seval("(set! color (make-rgb " + text(red) + " " + text(green) + " " + text(blue) + "))"); fill_drawingboard() : seval("((draw-viewport window) color)"); erase_drawingboard() : seval("((clear-viewport window))"); flip_drawingboard() : seval("((flip-viewport window))"); draw_pixel(x,y) : seval("((draw-pixel window) (make-posn " + text(x) + " " + text(y) + ") color)"); clear_pixel(x,y) : seval("((clear-pixel window) (make-posn " + text(x) + " " + text(y) + "))"); flip_pixel(x,y) : seval("((flip-pixel window) (make-posn " + text(x) + " " + text(y) + "))"); draw_line(x1,y1,x2,y2) : seval("((draw-line window) (make-posn " + text(x1) + " " + text(y1) + ")" + "(make-posn " + text(x2) + " " + text(y2) + ") color)"); clear_line(x1,y1,x2,y2) : seval("((draw-line window) (make-posn " + text(x1) + " " + text(y1) + ")" + "(make-posn " + text(x2) + " " + text(y2) + "))"); flip_line(x1,y1,x2,y2) : seval("((draw-line window) (make-posn " + text(x1) + " " + text(y1) + ")" + "(make-posn " + text(x2) + " " + text(y2) + "))"); draw_rectangle(x,y,w,h) : seval("((draw-rectangle window) (make-posn " + text(x) + " " + text(y) + ")" + text(w) + " " + text(h) + " color)"); clear_rectangle(x,y,w,h) : seval("((clear-rectangle window) (make-posn " + text(x) + " " + text(y) + ")" + text(w) + " " + text(h) + " color)"); flip_rectangle(x,y,w,h) : seval("((flip-rectangle window) (make-posn " + text(x) + " " + text(y) + ")" + text(w) + " " + text(h) + ")"); draw_solid_rectangle(x,y,w,h) : seval("((draw-solid-rectangle window) (make-posn " + text(x) + " " + text(y) + ")" + text(w) + " " + text(h) + " color)"); clear_solid_rectangle(x,y,w,h) : seval("((clear-solid-rectangle window) (make-posn " + text(x) + " " + text(y) + ")" + text(w) + " " + text(h) + " color)"); flip_solid_rectangle(x,y,w,h) : seval("((flip-solid-rectangle window) (make-posn " + text(x) + " " + text(y) + ")" + text(w) + " " + text(h) + ")"); draw_ellipse(x,y,w,h) : seval("((draw-ellipse window) (make-posn " + text(x) + " " + text(y) + ")" + text(w) + " " + text(h) + " color)"); clear_ellipse(x,y,w,h) : seval("((clear-ellipse window) (make-posn " + text(x) + " " + text(y) + ")" + text(w) + " " + text(h) + " color)"); flip_ellipse(x,y,w,h) : seval("((flip-ellipse window) (make-posn " + text(x) + " " + text(y) + ")" + text(w) + " " + text(h) + ")"); draw_solid_ellipse(x,y,w,h) : seval("((draw-solid-ellipse window) (make-posn " + text(x) + " " + text(y) + ")" + text(w) + " " + text(h) + " color)"); clear_solid_ellipse(x,y,w,h) : seval("((clear-solid-ellipse window) (make-posn " + text(x) + " " + text(y) + ")" + text(w) + " " + text(h) + " color)"); flip_solid_ellipse(x,y,w,h) : seval("((flip-solid-ellipse window) (make-posn " + text(x) + " " + text(y) + ")" + text(w) + " " + text(h) + ")"); draw_string(x,y,s) : seval("((draw-string window) (make-posn " + text(x) + " " + text(y) + ")" + '"' + s +'"' + " color)"); clear_string(x,y,s) : seval("((clear-string window) (make-posn " + text(x) + " " + text(y) + ")" + '"' + s +'"' + ")"); flip_string(x,y,s) : seval("((flip-string window) (make-posn " + text(x) + " " + text(y) + ")" + '"' + s +'"' + ")"); init_graphics() }