[Openmcl-devel] Updated Contrib

Paul Krueger plkrueger at comcast.net
Tue May 14 12:33:14 PDT 2013


I finally checked in a completely new revision of my contrib: .../ccl/cocoa-ide/krueger/InterfaceProjects/...

All code requires OSX 10.7 or higher and CCL 1.9 or higher.

Synopsis of features:
UserInterfaceTutorial.pdf is an extensive description of how to construct Cocoa user interfaces without having to resort to Xcode or InterfaceBuilder. It makes heavy use of Cocoa's layout constraint functionality.
CCL Cocoa Developer Tools Tutorial.pdf explains how to install and use application build/test code within the CCL IDE to construct apps that you can also run within the IDE for testing before creating stand-alone applications.
Lisp-KVO Reference & Tutorial.pdf explains functionality that lets you make slots in standard Lisp classes be KVO compliant and supports binding between Objective-C view properties and those slots. 
LispController Reference.pdf describes how to use the lisp-controller class as a lisp-friendly controller to manage view objects like NSTableView NSOutlineView.
Code Highlights
Major Functionality
Support for running Lisp apps under the CCL IDE, including swapping of the main menu
Tools for creating stand-along Lisp apps
Support for binding between Objective-C objects and Lisp slots
Extensive Lisp/Objective-C data conversion support via a coerce-obj method
Conversion of standard-instance objects to a format that can be archived to disk and restored correctly.
Initialize-instance :after methods for 20 common Objective-C classes that let you call make-instance for them using typical lisp keyword initialization syntax with all necessary data conversion done automatically for you. As a design principle, no default behavior is modified by these methods unless explicitly requested via a keyword argument. These are self-documenting via a window that can be invoked from the CCL Tools menu which shows and lets you search class hierarchies and see permitted initialization keywords, acceptable keyword values, and allowed binding targets.
Lisp interface for Apple's layout constraint functionality including the addition of several common layout idioms to make window design easier. See Appendix B in UserInterfaceTutorial.pdf for a complete description.
Special purpose utility classes and functionality
An N-dimensional sparse associative array
A Lisp attributed string stream class
Date manipulation and formatting utilities
Bundle interface code
NIB interface code
Lisp interface to Cocoa "undo" functionality
Lisp-document class which provides support for saving, loading, undo'ing, and printing documents defined with lisp data slots
Lisp-window-controller class which supports window "loading" using a lisp function rather than loading from a NIB file
Lisp interface to the Cocoa notification functionality.
A thread-safe queue implementation
Custom view classes and view-supporting classes
combo-box source class
Support for acting as a data source for NSTableView and NSOutlineView objects
Menu and menuitem creation functions for both common and custom items
Lisp interface to NSOpenPanel and NSSavePanel
Lisp button class that lets buttons call lisp methods
An organized-box-view that arranges subviews as directed
A resizable-box-view that dynamically rearranges its content views into a reasonable array as the box size changes
A radio-button box view which calls lisp methods when buttons are selected
A scrolled text view
A scrolled text view which can act as a Lisp output stream
Label view
Labeled text field
A form-view which is an aligned set of text fields with labels

If you run into any problems, please contact me directly and I'll try to address them. Any suggestions or other comments are welcomed.


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

More information about the Openmcl-devel mailing list