The following paragraphs contain detailed descriptions of the contents of each event type. In CLX, events are not actually represented by structures, but rather by lists of keyword values passed to handler functions or by values bound to symbols within the clauses of event-case and event-cond forms. Nevertheless, it is convenient to describe event contents in terms of slots and to identify the components of events with slot name symbols. In fact, CLX uses the declare-event macro to define event slot symbols and to map these symbols to specific event data items returned by the X server (see paragraph 12.12.8, Declaring Event Types).
The following paragraphs describe each event type, listing its event-key keyword symbol and its slot name symbols. An event keyword symbol identifies a specific event type. An event keyword symbol can be given as an argument to send-event or to an event handler function; it can also appear in the event-match form of an event-case clause. An event slot name symbol identifies a specific event data item. Event slot names appear as keywords with associated values among the arguments passed to send-event or to an event handler function; as non-keyword symbols, they can also be in the event-slots form of an event-case clause.
In certain cases, more than one name symbol is defined for the same event slot. For example, in :key-press events, the symbols window and event-window both refer to the same event data item.