next up previous contents
Next: The SERVE-EVENT Function Up: Event Dispatching with SERVE-EVENT Previous: Event Dispatching with SERVE-EVENT

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 section 7.4). 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 section 7.4) 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.



Raymond Toy
Mon Jul 14 09:11:27 EDT 1997