A sheet is a participant in a number of protocols. Every sheet must provide methods for the generic functions that make up these protocols. These protocols are:
The windowing protocol--Describes the relationships between the sheet and its parent and children (and, by extension, all of its ancestors and descendants).
The input protocol--Provides the event handler for a sheet. Events may be handled synchronously, asynchronously, or not at all.
The output protocol--Provides graphical and textual output, and manages descriptive output state such as color, transformation, and clipping.
The repaint protocol--Invoked by the event handler and by user programs to ensure that the output appearing on the display device appears as the program expects it to appear.
The notification protocol--Invoked by the event handler and user programs to ensure that CLIM's representation of window system information is equivalent to the display server's.
These protocols may be handled directly by a sheet, queued for later processing by some other agent, or passed on to a delegate sheet for further processing.