<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">To CCL developers of Cocoa interfaces on Macs,<div><br></div><div>I just checked in Revision 2 of my InterfaceProjects contribution into CCL (...ccl/contrib/krueger/InterfaceProjects). </div><div><br></div><div>The Documentation subdirectory contains:</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>Revision 2.0 Notes</div><span class="Apple-tab-span" style="white-space: pre; ">   </span>InterfaceBuilderWithCCLTutorial2.0 (both rtfd and pdf versions)<div><span class="Apple-tab-span" style="white-space:pre">  </span>LispController Reference (both rtfd and pdf versions)</div><div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>The <i>LispController Reference</i> 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:</div><div><div>1. Plugin Build and Install</div> <div>2. Configuring the lisp-controller in IB</div> <div><span class="Apple-tab-span" style="white-space:pre">    </span>2.1 lisp-controller Access Functions</div> <div><span class="Apple-tab-span" style="white-space:pre">        </span>2.2 Adding a lisp-controller to an Interface Design in IB</div> <div><span class="Apple-tab-span" style="white-space:pre">   </span>2.3 Configuring Data Type, Access, and Initialization</div> <div><span class="Apple-tab-span" style="white-space:pre">       </span>2.4 lisp-controller actions</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>2.4 Enabling buttons using lisp-controller bindings</div> <div>3. Data Conversion</div> <div>4. Configuring Column Accessors</div> <div>5. Example Code</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>5.1 Controller Test 1: Auto generated list displayed in an NSTableView</div> <div><span class="Apple-tab-span" style="white-space:pre">      </span>5.2 Controller Test 2: Class Browser</div> <div><span class="Apple-tab-span" style="white-space:pre">        </span>5.3 Controller Test 3: Card Dealer</div> <div>6.0 Final Notes</div><div><br></div><div>The set of examples is pretty limited yet, but I hope to add more fairly quickly.</div><div><br></div><div>The <i>InterfaceBuilderWithCCLTutorial2.0</i> documents the Lisp code that implements the lisp-controller runtime functionality. It's a good idea to read the <i>LispController Reference</i> before trying to understand the implementation.</div><div><br></div><div>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.</div><div><br></div><div>I will give a short talk about the lisp-controller and demo it at the next TCLisp User group meeting.</div><div><br></div><div>Comments/Corrections always welcome.</div><div><br></div><div>Paul</div></div></body></html>