next up previous contents
Next: 7.4.1 Without Object Sets Up: Event Dispatching with SERVE-EVENT Previous: Using SERVE-EVENT with Unix

Using SERVE-EVENT with the CLX Interface to X

  Remember from section 7.1, an object set is a collection of objects, CLX windows in this case, with some set of operations, event keywords, with corresponding implementations, the same handler functions. Since X allows multiple display connections from a given process, you can avoid using object sets if every window in an application or display connection behaves the same. If a particular X application on a single display connection has windows that want to handle certain events differently, then using object sets is a convenient way to organize this since you need some way to map the window/event combination to the appropriate functionality.

The following is a discussion of functions exported from the extensions package that facilitate handling CLX events through system:serve-event. The first two routines are useful regardless of whether you use system:serve-event: [Function]
ext: open-clx-display &optional string

This function parses string for an X display specification including display and screen numbers. String defaults to the following:

(cdr (assoc :display ext:*environment-list* :test #'eq))
  
If any field in the display specification is missing, this signals an error. ext:open-clx-display returns the CLX display and screen.

[Function]
ext: flush-display-events display

This function flushes all the events in display's event queue including the current event, in case the user calls this from within an event handler.





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