ITT Rule IDL Version 7.0 Manual De Usuario
204
Chapter 8: Creating a Manipulator
Using Manipulator Public Instance Data
iTool Developer’s Guide
Using Manipulator Public Instance Data
The IDLitManipulator class automatically manages selection state between mouse-
down and mouse-up interactions. Three public instance fields are exposed, providing
information about the mouse button state (
down and mouse-up interactions. Three public instance fields are exposed, providing
information about the mouse button state (
ButtonPress
), the number of selected
items (
nSelectionList
), and an array of the currently selected visualizations
(
pSelectionList
).
Note
These fields are set by the OnMouseDown method of IDLitManipulator, which
would be called by the OnMouseDown method of the subclass. These fields are
therefore available after a mouse down event in the iTool window.
would be called by the OnMouseDown method of the subclass. These fields are
therefore available after a mouse down event in the iTool window.
Using the ButtonPress Field
The
ButtonPress
field holds the state of mouse buttons when a manipulator has
been activated. For example, suppose your manipulator requires the user to hold
down a mouse button while moving the mouse cursor to affect some aspect of the
visualization. You could use a pointer, set in the mouse down event and not reset
until the mouse up event, to indicate the user is holding down the mouse button.
However, a more efficient way is to use the built-in
down a mouse button while moving the mouse cursor to affect some aspect of the
visualization. You could use a pointer, set in the mouse down event and not reset
until the mouse up event, to indicate the user is holding down the mouse button.
However, a more efficient way is to use the built-in
ButtonPress
field to access the
same information. The
ButtonPress
field is a bitmask with the following possible
values:
•
0 = No mouse button is pressed
•
1 = The left mouse button is pressed
•
2 = The middle mouse button is pressed
•
4 = The right mouse button is pressed
To determine if the user is holding down a mouse button, query the
ButtonPress
field in the OnMouseMotion method. Prior to manipulating a visualization, a
statement such as the following would assure a mouse button was pressed:
statement such as the following would assure a mouse button was pressed:
; Activate if mouse button is held down.
IF self.ButtonPress NE 0 THEN BEGIN
You could modify this statement to determine which mouse button is pressed or
access the field in one of the other mouse transaction methods. See
access the field in one of the other mouse transaction methods. See
on page 213 for more information about the OnMouseDown,
OnMouseMotion and OnMouseUp methods.