An object set is a collection of objects that have the same implementation for each operation. Externally the object is represented by the object capability and the operation is represented by the operation code. Within Lisp, the object is represented by an arbitrary Lisp object, and the implementation for the operation is represented by an arbitrary Lisp function. The object set mechanism maintains this translation from the external to the internal representation.
&optional
default-handler ¶This function makes a new object set. Name is a string used
only for purposes of identifying the object set when it is printed.
Default-handler is the function used as a handler when an
undefined operation occurs on an object in the set. You can define
operations with the serve-
operation functions exported
the extensions
package for X events
(see x-serve-mumbles). Objects are added with
system:add-xwindow-object
. Initially the object set has no
objects and no defined operations.
This function returns the handler function that is the
implementation of the operation corresponding to
operation-code in object-set. When set with
setf
, the setter function establishes the new handler. The
serve-
operation functions exported from the
extensions
package for X events (see x-serve-mumbles)
call this on behalf of the user when announcing a new operation for
an object set.
These functions add port or window to object-set.
Object is an arbitrary Lisp object that is associated with the
port or window capability. Window is a CLX
window. When an event occurs, system:serve-event
passes
object as an argument to the handler function.