views:

41

answers:

1

I used MrEd Designer to make a user interface for a Scheme program. It includes a mred:canvas% on which I'd like to plot points using draw-point. It's defined as:

(define (naca-ui-init
         {...}
         #:airfoil-canvas-class
         (airfoil-canvas-class canvas%)
         {...})

and later:

(set! airfoil-canvas
        (new
         airfoil-canvas-class
         (parent vertical-pane-2165)
         (horiz-margin 0)
         (min-width 350)
         (vert-margin 0)
         (gl-config #f)
         (stretchable-width #t)
         (enabled #t)
         (stretchable-height #t)
         (min-height 175)
         (label "Canvas")
         (style '(border))))

When I try to (send airfoil-canvas draw-point 15 30), however, I get:

send: no such method: draw-point for class: canvas%

 === context ===
/usr/local/lib/racket/collects/racket/private/class-internal.rkt:4543:0: obj-error
/home/jason/NACA/naca-ui.scm:29:8: plot-point
/home/jason/NACA/naca.scm:225:23
/home/jason/NACA/naca-ui.scm:21:10: inner

Am I misreading the documentation, or is there something else I don't get here?

PS: Can someone with more rep add the tag MrEd? It would be pertinent here, but you need 1500 to add new tags.

+1  A: 

Answering my own question: in short, my docs were moldy and I should have used http://docs.racket-lang.org/. From there, it was easy to see that:

(send airfoil-canvas draw-point 15 30)

should have been:

(send (send airfoil-canvas get-dc) draw-point 15 30)

You need to do your drawing on a drawing-context these days.

JasonFruit