The immediate use for DisplayEH will be to enable more general exchange of control messages between objects already attached (directly or indirectly) to WorldCanvas as handlers, in particular between DisplayDatas and MultiWCTools. WorldCanvas and WorldCanvasHolder will add this simple interface in order to distribute the new events; DisplayData will inherit it in order to handle them. WCRefreshEH will also be altered to inherit from this class, and WorldCanvas's existing refresh event handler list will be altered to accept any DisplayEH (not just WCRefreshEH objects).
To listen for an event on this new WC 'channel', an object derived from this interface would be attached to the WC's RefreshEHList (as the MultiWCTools are) or WCH's DD list (in the DD case). The object would then implement handleEvent() to respond (only) to the events of interest. A sender would create a new DisplayEvent type (or use an existing one for its intended purpose), and send the event by calling WC::handleEvent(event).
Except for the accommodations mentioned above, the current interface and functionality of WCRefreshEHs and all other existing event handlers is left as is. Note especially that the older events (Position, Motion, Refresh) are still sent using the old 'operator()' interface, which remains in place, at least for now.
In the future, it may be useful to derive all existing handlers from DisplayEH, to consolidate to just one generic EH list each in PC, WC and WCH (and anywhere else event dispatching is needed), and to distinguish handler and event types only during event dispatching or processing. Then any object which inherits this interface could be placed on any such dispatching list in order to respond to events of interest.