[Openmcl-devel] iSight code?
R. Matthew Emerson
rme at clozure.com
Sun Jan 27 19:26:12 PST 2008
On Jan 27, 2008, at 7:35 PM, Ron Garret wrote:
>
> On Jan 27, 2008, at 4:20 PM, Ron Garret wrote:
>
>> The problem I'm having right now is trying to figure out how to
>> access
>> classes that aren't loaded into the Cocoa app by default (like
>> QCView). I've built and loaded the :quartz interface directory, but
>> the analog of (make-instance 'ns:ns-view) still doesn't work. I'm
>> digging through the sources to try to figure out how ns:ns-view gets
>> set up to try to do something analogous for qc:qc-view.
>
> Hm, I really would have expected this work, but it doesn't:
>
> ? (use-interface-dir :quartz)
> #<INTERFACE-DIR :QUARTZ #P"quartz/" #x300041B793AD>
> ? (ccl::use-interface-dir :quartzcore)
> #<INTERFACE-DIR :QUARTZCORE #P"quartzcore/" #x300041B832AD>
> ? (ccl::make-objc-instance "QCView")
>> Error: ObjC class QCView not found
>> While executing: CCL::LOOKUP-OBJC-CLASS, in process Listener(93).
>> Type :POP to abort, :R for a list of available restarts.
>> Type :? for other options.
> 1>
You need to load the appropriate shared libraries, too.
? (objc:load-framework "Quartz" :quartz)
NIL
? (make-instance 'ns:q-c-view)
#<Q-C-VIEW <QCView: 0x1845e1e0> (#x1845E1E0)>
?
OBJC:LOAD-FRAMEWORK is mentioned in the release notes.
The Objective-C bridge consults a built-in list of special words that
when it's deciding what the lispy name of an Objective-C class should
be. At the moment, it doesn't know about the QC prefix, so the lispy
name ends up being "q-c-view".
See ccl:objc-bridge;name-translation.lisp for the current list of
special words. I suppose we should consider adding "QT", "QC", and
"CA" at least.
More information about the Openmcl-devel
mailing list