Module DisplayEvents
Changes made in the current development cycle can be
found in the changelog.
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
- 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)