[Openmcl-devel] Revision 2 of InterfaceProjects

Paul Krueger plkrueger at comcast.net
Thu Apr 15 21:48:51 PDT 2010

To CCL developers of Cocoa interfaces on Macs,

I just checked in Revision 2 of my InterfaceProjects contribution into  
CCL (...ccl/contrib/krueger/InterfaceProjects).

The Documentation subdirectory contains:
	Revision 2.0 Notes
	InterfaceBuilderWithCCLTutorial2.0 (both rtfd and pdf versions)
	LispController Reference (both rtfd and pdf versions)

The main thing added was a lisp-controller class which implements  
functionality similar to that of NSArrayController and  
NSTreeController classes, but which is Lisp friendly. Developers can  
easily use arbitrary Lisp objects as a data sources for NSTableView  
and NSOutlineView interface elements. The lisp-controller can also  
create and add new Lisp objects to collections in response to user  
interface messages.

An Xcode project is included that can be built to create an Interface  
Builder (IB) plugin for the lisp-controller. Configuration of the lisp- 
controller within IB is done largely by specifying Lisp types, forms,  
and functions using standard Lisp syntax.

The LispController Reference documents the use of lisp-controllers.  
For those who don't care how it works and just want to use it for  
their own interface projects, this is the document to read. The  
organization of that document is:
1. Plugin Build and Install
2. Configuring the lisp-controller in IB
	2.1 lisp-controller Access Functions
	2.2 Adding a lisp-controller to an Interface Design in IB
	2.3 Configuring Data Type, Access, and Initialization
	2.4 lisp-controller actions
	2.4 Enabling buttons using lisp-controller bindings
3. Data Conversion
4. Configuring Column Accessors
5. Example Code
	5.1 Controller Test 1: Auto generated list displayed in an NSTableView
	5.2 Controller Test 2: Class Browser
	5.3 Controller Test 3: Card Dealer
6.0 Final Notes

The set of examples is pretty limited yet, but I hope to add more  
fairly quickly.

The InterfaceBuilderWithCCLTutorial2.0 documents the Lisp code that  
implements the lisp-controller runtime functionality. It's a good idea  
to read the LispController Reference before trying to understand the  

The Xcode IB plugin project is not really documented except in the  
source code itself. If there is any significant demand for a separate  
tutorial I will create additional documentation.

I will give a short talk about the lisp-controller and demo it at the  
next TCLisp User group meeting.

Comments/Corrections always welcome.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.clozure.com/pipermail/openmcl-devel/attachments/20100415/45e625ca/attachment.htm>

More information about the Openmcl-devel mailing list