/usr/include/vtk-7.1/vtkHoverWidget.h is in libvtk7-dev 7.1.1+dfsg1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkHoverWidget.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
/**
* @class vtkHoverWidget
* @brief invoke a vtkTimerEvent when hovering
*
* The vtkHoverWidget is used to invoke an event when hovering in a render window.
* Hovering occurs when mouse motion (in the render window) does not occur
* for a specified amount of time (i.e., TimerDuration). This class can be used
* as is (by observing TimerEvents) or for class derivation for those classes
* wishing to do more with the hover event.
*
* To use this widget, specify an instance of vtkHoverWidget and specify the
* time (in milliseconds) defining the hover period. Unlike most widgets,
* this widget does not require a representation (although subclasses like
* vtkBalloonWidget do require a representation).
*
* @par Event Bindings:
* By default, the widget observes the following VTK events (i.e., it
* watches the vtkRenderWindowInteractor for these events):
* <pre>
* MouseMoveEvent - manages a timer used to determine whether the mouse
* is hovering.
* TimerEvent - when the time between events (e.g., mouse move), then a
* timer event is invoked.
* KeyPressEvent - when the "Enter" key is pressed after the balloon appears,
* a callback is activated (e.g., WidgetActivateEvent).
* </pre>
*
* @par Event Bindings:
* Note that the event bindings described above can be changed using this
* class's vtkWidgetEventTranslator. This class translates VTK events
* into the vtkHoverWidget's widget events:
* <pre>
* vtkWidgetEvent::Move -- start (or reset) the timer
* vtkWidgetEvent::TimedOut -- when enough time is elapsed between defined
* VTK events the hover event is invoked.
* vtkWidgetEvent::SelectAction -- activate any callbacks associated
* with the balloon.
* </pre>
*
* @par Event Bindings:
* This widget invokes the following VTK events on itself when the widget
* determines that it is hovering. Note that observers of this widget can
* listen for these events and take appropriate action.
* <pre>
* vtkCommand::TimerEvent (when hovering is determined to occur)
* vtkCommand::EndInteractionEvent (after a hover has occurred and the
* mouse begins moving again).
* vtkCommand::WidgetActivateEvent (when the balloon is selected with a
* keypress).
* </pre>
*
* @sa
* vtkAbstractWidget
*/
#ifndef vtkHoverWidget_h
#define vtkHoverWidget_h
#include "vtkInteractionWidgetsModule.h" // For export macro
#include "vtkAbstractWidget.h"
class VTKINTERACTIONWIDGETS_EXPORT vtkHoverWidget : public vtkAbstractWidget
{
public:
/**
* Instantiate this class.
*/
static vtkHoverWidget *New();
//@{
/**
* Standard methods for a VTK class.
*/
vtkTypeMacro(vtkHoverWidget,vtkAbstractWidget);
void PrintSelf(ostream& os, vtkIndent indent);
//@}
//@{
/**
* Specify the hovering interval (in milliseconds). If after moving the
* mouse the pointer stays over a vtkProp for this duration, then a
* vtkTimerEvent::TimerEvent is invoked.
*/
vtkSetClampMacro(TimerDuration,int,1,100000);
vtkGetMacro(TimerDuration,int);
//@}
/**
* The method for activating and deactivating this widget. This method
* must be overridden because it performs special timer-related operations.
*/
virtual void SetEnabled(int);
/**
* A default representation, of which there is none, is created. Note
* that the superclasses vtkAbstractWidget::GetRepresentation()
* method returns NULL.
*/
void CreateDefaultRepresentation()
{this->WidgetRep = NULL;}
protected:
vtkHoverWidget();
~vtkHoverWidget();
// The state of the widget
enum {Start=0,Timing,TimedOut};
int WidgetState;
// Callback interface to execute events
static void MoveAction(vtkAbstractWidget*);
static void HoverAction(vtkAbstractWidget*);
static void SelectAction(vtkAbstractWidget*);
// Subclasses of this class invoke these methods. If a non-zero
// value is returned, a subclass is handling the event.
virtual int SubclassHoverAction() {return 0;}
virtual int SubclassEndHoverAction() {return 0;}
virtual int SubclassSelectAction() {return 0;}
//@{
/**
* Helper methods for creating and destroying timers.
*/
int TimerId;
int TimerDuration;
//@}
private:
vtkHoverWidget(const vtkHoverWidget&) VTK_DELETE_FUNCTION;
void operator=(const vtkHoverWidget&) VTK_DELETE_FUNCTION;
};
#endif
|