Page 203 Table of Contents Index Page 205
Chapters
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
A, B, C, D, E





Chapter 23

Presentation Types

23.1 Overview of Presentation Types

The core around which the CLIM application user interface model is built is the concept of the
application-defined user interface data type. Each application has its own set of semantically
significant user interface entities; a CAD program for designing circuits has its various kinds of
components (gates, resistors, and so on), while a database manager has its relations and field
types. These entities have to be displayed to the user (possibly in more than one displayed
representation) and the user has to be able to interact with and specify the entities via pointer
gestures and keyboard input. Frequently each user interface entity has a corresponding Lisp data
type (such as an application-specific structure or CLOS class definition), but this is not always
the case. The data representation for an interaction entity may be a primitive Lisp data type.
In fact, it is possible for several different user interface entities to use the same Lisp data type
for their internal representation, for example, building floor numbers and employee vacation day
totals could both be represented internally as integers.

CLIM provides a framework for defining the appearance and behavior of these user interface
entities via the presentation type mechanism. A presentation type can be thought of as a CLOS
class that has some additional functionality pertaining to its roles in the user interface of an
application. By defining a presentation type the application programmer defines all of the user
interface components of the entity: In other words, by defining a presentation type, the application programmer describes in one
place all the information about an object necessary to display it to the user and interact with
the user for object input.


Page 203 Table of Contents Index Page 205
Chapters
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
A, B, C, D, E