JUCS - Journal of Universal Computer Science 14(20): 3358-3369, doi: 10.3217/jucs-014-20-3358
An Implementation of CLIM Presentation Types
expand article infoTimothy Moore
‡ Red Hat SARL, Paris, France
Open Access
Abstract
Presentation types are used in the CLIM interface library to tag graphical output with a type and establish an input type context in which the user may use the keyboard to type input, accepted by a parser associated with that presentation type, or click on the graphical representation of an object that has an appropriate presentation type. Presentation types are defined using a syntax reminiscent of the deftype syntax of Common Lisp; the input and output actions of the types, as well as aspects of their inheritance, are implemented using a system of generic functions and methods directly based on CLOS. The presentation type system is different enough from the Common Lisp type system that its types, generic functions and methods do not map directly to those of Common Lisp. We describe the presentation type implemention in McCLIM which uses the CLOS Metaobject Protocol to implement presentation type inheritance, method dispatch and method combination without implementing an entire parallel object system next to CLOS. Our implementation supports all types of method combination in the presentation methods, including user-defined method combination.
Keywords
Common Lisp, CLIM, presentation types, metaobject protocol