MGH_MOUSE_HANDLER_LIBRARY Name
MGH_MOUSE_HANDLER_LIBRARY Purpose
Define classes for mouse-handler objects used to control user
interaction with object graphics window objects like MGH_Window.
The file mgh_mouse_handler_library.pro is just a handy place to
collect class definitions for mouse-handler objects.
Category
Object Graphics
Calling Sequence
mgh_mouse_handler_library Outputs
None. Side Effects
The first time this routine is executed in a session, definitions
are compiled for the following mouse-handler classes:
MGH_Mouse_Handler_Context
MGH_Mouse_Handler_Debug
MGH_Mouse_Handler_Magnify
MGH_Mouse_Handler_Pick
MGH_Mouse_Handler_PropertySheet
MGH_Mouse_Handler_Rotate
MGH_Mouse_Handler_Scale
MGH_Mouse_Handler_Translate
MGH_Mouse_Handler_Zoom
The classes are documented separately below. Mouse handler objects
support only three methods, Init, Event and Cleanup.
Init
The Init method associates the mouse-handler with an OG window
object (the client) and may accept extra keywords to further
influence the mouse-handler's action, the _Rotate object
accepts keywords to constrain rotation.
Event
This method is called by the the OG window's event-handling
code and accepts a structure. Note that the mouse-handler's
Event methods is a procedure, unlike the widget-object event
methods which are all functions. A procedure is used because
mouse handlers never "swallow" events.
Cleanup
Object destruction is intiated by the client.
###########################################################################
This software is provided subject to the following conditions:
1. NIWA makes no representations or warranties regarding the
accuracy of the software, the use to which the software may
be put or the results to be obtained from the use of the
software. Accordingly NIWA accepts no liability for any loss
or damage (whether direct of indirect) incurred by any person
through the use of or reliance on the software.
2. NIWA is to be acknowledged as the original author of the
software where the software is used or presented in any form.
###########################################################################
Modification History
Mark Hadfield, 2001-06:
Written.
Mark Hadfield, 2001-10:
Added MGH_Mouse_Handler_Context class.
Mark Hadfield, 2002-06:
Added MGH_Mouse_Handler_Zoom class based on code that was
originally associated with the MGH_Plot class.
Mark Hadfield, 2002-07:
Moved most of the data-picking code from MGH_Mouse_Handler_Pick
to a new method, MGH_Window::PickReport. This makes it easier
to adapt data-picking behaviour for subclasses of MGH_Window.
Mark Hadfield, 2004-07:
- Added MGH_Mouse_Handler_PropertySheet class.
- Modified MGH_Mouse_Handler_Zoom for new axis class behaviour:
axis ranges are now modified using SetProperty rather than
SetInPlace.