Module DisplayEvents

Changes made in the current development cycle can be found in the changelog.

Description (classes)

A module providing event handling for the DisplayCanvases

Review Status

Reviewed By:
None yet
Date Reviewed:
yyyy/mm/dd

Prerequisite

Etymology

The module provides various classes that are responsible for "handling" "events"

Synopsis

This module contains classes which are used to handle position, motion and refresh events that occur on PixelCanvases and WorldCanvases. Position events occur when the user presses or releases a keyboard key or a mouse button when the window input focus is over a PixelCanvas or WorldCanvas. Motion events occur when the user moves the mouse over a PixelCanvas or a WorldCanvas. Refresh events occur for a variety of reasons, and arise when PixelCanvases or WorldCanvases need to redraw their contents.

The lowest level of event classes are those which describe the various events on the PixelCanvas. These comprise PCPositionEvent, PCMotionEvent and PCRefreshEvent. All of the information pertaining to a particular event will be stored in one of these classes. To receive these type of events, the programmer must register a class derived from PCPositionEH, PCMotionEH or PCRefreshEH (where the "EH" stands for Event Handler) with the appropriate PixelCanvas. Then any events of that type (Position, Motion or Refresh) will be distributed to the class that the programmer registered. The WorldCanvas has equivalent event storage classes in WCPositionEvent, WCMotionEvent and WCRefreshEvent, and equivalent event handling classes in WCPositionEH, WCMotionEH and WCRefreshEH.

It is important to note that none of the event handlers "consume" events. This means that all PixelCanvas events occuring on a particular PixelCanvas wil be distributed to all the event handlers registered on that PixelCanvas. Likewise, all WorldCanvas events for a particular WorldCanvas are distributed to all WorldCanvas event handlers registered on that WorldCanvas.

It is also critical for the programmer to be aware that in general, the WorldCanvas registers one instance of each of the PCPositionEH, PCMotionEH and PCRefreshEH type handler classes for its own use. These event handlers are responsible for constructing WorldCanvas event information objects (WCPositionEvent, WCMotionEvent and WCRefreshEvent) from the corresponding PixelCanvas events, and then call the appropriate handlers on the WorldCanvas. So the programmer must be careful that they handle each event once and only once - either on the PixelCanvas, or on the WorldCanvas, but not on both. There will be rare instances where handling events on both the WorldCanvas and its underlying PixelCanvas is necessary.

Example

Motivation

Any interactive display library must provide methods for the programmer to respond to user input. That is the reason for this module.

To Do


Classes

AniPosEH -- WorldCanvas position event handler for Animator. (full description)
Animator -- Animation controller for WorldCanvasHolders. (full description)
AnimatorRefEH -- WorldCanvas refresh event handler for Animator class. (full description)
CrosshairEvent -- WorldCanvasEvent:contains info on the WC point selected by MWCCrosshairTool (full description)
DDModEvent -- Class used by DisplayDatas to signal change in data (full description)
DTVisible -- Class providing draw style settings for visible DisplayTools. (full description)
DisplayDataEvent -- Class for events sent by DisplayDatas (full description)
DisplayEH -- class for handling any type of DisplayEvent. (full description)
DisplayEvent -- Class describing the most basic event information in the display classes. (full description)
DisplayTool -- Base class for event-based tools in the display classes. (full description)
MWCAnimator -- Animator for MultiWCHolder class. (full description)
MWCCrosshairTool -- Base class for MultiWorldCanvas event-based crosshair tools. (full description)
MWCPTRegion -- WorldCanvas event-based polygon region drawer (full description)
MWCPannerTool --

(full description)

MWCPolyTool -- Base class for WorldCanvas event-based polygon tools (full description)
MWCPolylineTool -- Base class for WorldCanvas event-based polyline tools (full description)
MWCRTRegion -- WorldCanvas event-based rectangle region drawer (full description)
MWCRTZoomer -- Multi WorldCanvas event-based zoomer (full description)
MWCRectTool -- Base class for MultiWorldCanvas event-based rectangle tools (full description)
MultiWCTool -- Base class for MultiWorldCanvas event-based tools. (full description)
PCITFiddler -- Colormap fiddling on the PixelCanvas. (full description)
PCInvisTool -- Base implementation of PCTool for invisible (non-drawing) tools. (full description)
PCMotionEH -- PixelCanvas Event Handler for managing pointer motion events (full description)
PCMotionEvent -- Class which stores PixelCanvas motion event information. (full description)
PCPositionEH -- PixelCanvas Event Handler for managing keyboard and mouse button events (full description)
PCPositionEvent -- Class which stores PixelCanvas position event information. (full description)
PCRefreshEH -- WorldCanvas Event Handler for managing events (full description)
PCRefreshEvent -- Class which stores PixelCanvas refresh event information. (full description)
PCTestPattern -- PixelCanvas test pattern display refresh event handler. (full description)
PCTool -- Base class for PixelCanvas event-based tools. (full description)
PCToolMotEH -- PixelCanvas motion event handler for PCTool. (full description)
PCToolPosEH -- PixelCanvas position event handler for PCTool. (full description)
PCToolRefEH -- PixelCanvas refresh event handler for PCTool. (full description)
PixelCanvasEvent -- Base class describing event information for PixelCanvases. (full description)
RectRegionEvent -- Contains info on the WC rectanglar area selected by MWCRTRegion mouse tool (full description)
ResetCrosshairEvent -- Event sent to tell MWCCrosshairTool to reset. (full description)
ResetRTRegionEvent -- Event sent to tell MWCRTRegionTool to reset. (full description)
WCCrosshairTool -- Base class for WorldCanvas event-based crosshair tools. (full description)
WCInvisTool -- Base implementation of WCTool for invisible (non-drawing) tools. (full description)
WCMotionEH -- Base class for handling WorldCanvas motion events. (full description)
WCMotionEvent -- Class which stores WorldCanvas motion event information. (full description)
WCPTRegion -- WorldCanvas event-based polygon region drawer (full description)
WCPolyTool -- Base class for WorldCanvas event-based polygon tools (full description)
WCPositionEH -- Base class for handling WorldCanvas position events. (full description)
WCPositionEvent -- Class which stores WorldCanvas position event information. (full description)
WCRTRegion -- WorldCanvas event-based rectangle region drawer (full description)
WCRTZoomer -- WorldCanvas event-based zoomer (full description)
WCRectTool -- Base class for WorldCanvas event-based rectangle tools (full description)
WCRefreshEH -- Base class for handling WorldCanvas refresh events. (full description)
WCRefreshEvent -- Class which stores WorldCanvas refresh event information. (full description)
WCTool -- Base class for WorldCanvas event-based tools. (full description)
WCToolMotEH -- WorldCanvas motion event handler for WCTool. (full description)
WCToolPosEH -- WorldCanvas position event handler for WCTool. (full description)
WCToolRefEH -- WorldCanvas refresh event handler for WCTool. (full description)
WorldCanvasEvent -- Base class describing event information for WorldCanvases. (full description)