Next: , Up: Event Dispatching with SERVE-EVENT   [Contents][Index]


7.1 Object Sets

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.

Function: system:make-object-set name &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.

Function: system:object-set-operation object-set operation-code

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.

Function: system:add-xwindow-object window object 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.


Next: , Up: Event Dispatching with SERVE-EVENT   [Contents][Index]