[Openmcl-devel] Lisp User Interface LUI

Terje Norderhaug terje at in-progress.com
Fri Jan 9 05:41:32 UTC 2009


On Jan 2, 2009, at 11:30 AM, Alexander Repenning wrote:
> This may be a good moment to discuss some of the ideas regarding  
> the creation of LUI, the "Lisp User Interface as a cross platform,  
> but Mac first" open source GUI tool.

One technique that I have found very useful through the years is to  
automatically generate the user interface from extended/amended type  
declarations of the information to be presented and/or modified.  I  
know other LISP developers are using similar strategies.

For example, I have a DEFPREFERENCE macro to notify the application  
about which values should be user-modifiable preferences.
The application generates a Mac "Preferences" dialog based on the  
various preferences declared in the application, like this:
(defpreference webmaster ""
  (:documentation "The name of the webmaster")
  (:type string)
  (:title "WebMaster")
  (:description "The webmaster is the person that maintains the  
website.")
  (:keywords "website" "username")
  (:group maintainance))

Here is an old documentation page:

    http://interaction.in-progress.com/developer/reference/ 
defpreference?id=5anoc

CL-HTTP has a module that implements the same functionality with a  
very similar syntax:

    http://cl-www.msi.co.jp:8000/cl-http/contributions/truss/ 
preferences.lisp

This approach provides a foundation for portable user interfaces.

-- Terje Norderhaug








More information about the Openmcl-devel mailing list