Page 55 Table of Contents Index Page 57
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 8. SHEET PROTOCOLS

for this function will simply queue the event for later handling. Certain classes of clients and
events may cause this function immediately to call either queue-event or handle-event, or to
ignore the event entirely.

=> queue-event client event [Generic Function]
Places the event event into the queue of events for the client client.

=> handle-event client event [Generic Function]
Implements the client's policy with respect to the event. For example, if the programmer wishes
to highlight a sheet in response to an event that informs it that the pointer has entered its
territory, there would be a method to carry out the policy that specializes the appropriate sheet
and event classes.

In addition to queue-event, the queued input protocol handles the following generic functions:

=> event-read client [Generic Function]
Takes the next event out of the queue of events for this client.

=> event-read-no-hang client [Generic Function]
Takes the next event out of the queue of events for this client. It returns nil if there are no
events in the queue.

=> event-peek client &optional event-type [Generic Function]
Returns the next event in the queue without removing it from the queue. If event-type is supplied,
events that are not of that type are first removed and discarded.

=> event-unread client event [Generic Function]
Places the event at the head of the client's event queue, so as to be the next event read.

=> event-listen client [Generic Function]
Returns true if there are any events queued for client, otherwise returns false.

8.1.2 Input Protocol Classes

Most classes of sheets will have one of the following input protocol classes mixed in. Of course,
a sheet can always have a specialized method for a specific class of event that will override the
default. For example, a sheet may need to have only pointer click events dispatched to itself, and
may delegate all other events to some other input client. Such a sheet should have delegate-
sheet-input-mixin
as a superclass, and have a more specific method for dispatch-event on
its class and pointer-button-click-event.

=> standard-sheet-input-mixin [Class]


Page 55 Table of Contents Index Page 57
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