[Openmcl-devel] Core Animation ?

R. Matthew Emerson rme at clozure.com
Thu Apr 10 21:31:57 UTC 2008


On Apr 10, 2008, at 3:29 PM, Didier Verna wrote:
>
>       Hello,
>
> is it possible to use Core Animation in CCL, and if so how ? For
> instance, objc-to-lisp-classname tells me that CALayer would be named
> c-a-layer, which doesn't look right, and there doesn't seem to be such
> class anyway.

Not all Cocoa frameworks are loaded by default.  You load additional  
ones with OBJC:LOAD-FRAMEWORK.

There's a link to an example that shows how to use the Address Book  
framework on the Trac wiki:

http://trac.clozure.com/openmcl/wiki/Cocoa

In the Core Animation case, you'd say:

Welcome to Clozure Common Lisp Version 1.2-r8908MS  (DarwinX8664)!
? (objc:load-framework "QuartzCore" :quartzcore)
NIL
? ns:c-a-layer
#<OBJC:OBJC-CLASS NS:C-A-LAYER (#x7FFF703A7440)>
?

The c-a-layer ugliness can be corrected if we tell the bridge that  
"CA" is a "special word" in Cocoa names.  In ccl:objc-bridge;name- 
translation.lisp, we add the form:

(define-special-objc-word "CA")

I went ahead and committed that addition to the trunk, if you happen  
to be running it.  With that change:

? ns:ca-layer
#<OBJC:OBJC-CLASS NS:CA-LAYER (#x7FFF703A7440)>





More information about the Openmcl-devel mailing list