In addition to the basic input stream protocol, CLIM defines an extended input stream protocol. This protocol extends the stream model to allow manipulation of non-character user gestures, such as pointer button presses. The extended input protocol provides the programmer with more control over input processing, including the options of specifying input wait timeouts and auxiliary input test functions.
extended-input-stream [Protocol Class]
Summary: The protocol class for CLIM extended input streams. This is a subclass of input-stream . If you want to create a new class that behaves like an extended input stream, it should be a subclass of extended-input-stream . Subclasses of extended-input-stream must obey the extended input stream protocol.
extended-input-stream-p [Function]
Summary: Returns t if object is a CLIM extended input stream; otherwise, it returns nil .
Summary: All subclasses of extended-input-stream must handle these initargs, which are used to specify, respectively, the input buffer, pointer, and text cursor for the extended input stream.
standard-extended-input-stream
Summary: This class provides an implementation of the CLIM extended input stream protocol based on CLIM's input kernel. The extended input stream maintains the state of the display's pointing devices (such as a mouse) in pointer objects associated with the stream. It defines a handle-event methods for keystroke and pointer motion and button press events and updates the pointer object state and queues the resulting events in a per-stream input buffer.
Members of this class are mutable.
Common Lisp Interface Manager 2.0 User's Guide - 7 Aug 2017