[Openmcl-devel] Uncle!

Ron Garret ron at awun.net
Fri Nov 2 23:09:18 UTC 2007


Poking through the easygui code I encountered this intriguing tidbit:

(defclass cocoa-drawing-view (ns:ns-view)
...

(define-useful-mouse-event-handling-routines cocoa-drawing-view)

Gotta love a language where you can define something called "define- 
useful-mouse-event-handling-routines"!

So I decided to see what a cocoa-drawing-view did.  I tried this:

(add-subviews (make-instance 'window) (make-instance 'cocoa-drawing- 
view))

which doesn't work because cocoa-drawing-views are ns:ns-views, not  
views.  Ten minutes of head-scratching and reverse-engineering later I  
came up with this:

(setf w (make-instance 'window))
(setf d (make-instance 'cocoa-drawing-view))
(dcc (#/addSubview: (cocoa-ref w) d))

which produced:

Calling addSubview: on (#<NS-WINDOW <NSWindow: 0xc4cd8f0> (#xC4CD8F0)>  
#<COCOA-DRAWING-VIEW <CocoaDrawingView: 0xc409d10> (#xC409D10)>)
 > Error: Objective-C runtime exception:
 >        *** -[NSWindow addSubview:]: unrecognized selector sent to  
instance 0xc4cd8f0
 > While executing: #<Anonymous Function #x3000411F1AAF>, in process  
Listener(54).
 > Type :POP to abort, :R for a list of available restarts.
 > Type :? for other options.

at which point I decided it was time to ask for help.  Accordingly...

Help!

:-)

Thanks,
rg




More information about the Openmcl-devel mailing list