/usr/include/vtk-5.8/vtkQtChartInteractor.h is in libvtk5-dev 5.8.0-5.
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 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkQtChartInteractor.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.
=========================================================================*/
/*-------------------------------------------------------------------------
Copyright 2008 Sandia Corporation.
Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
the U.S. Government retains certain rights in this software.
-------------------------------------------------------------------------*/
/// \file vtkQtChartInteractor.h
/// \date 5/2/2007
#ifndef _vtkQtChartInteractor_h
#define _vtkQtChartInteractor_h
#include "vtkQtChartExport.h"
#include <QObject>
class vtkQtChartArea;
class vtkQtChartContentsSpace;
class vtkQtChartInteractorInternal;
class vtkQtChartInteractorModeList;
class vtkQtChartKeyboardFunction;
class vtkQtChartMouseFunction;
class QCursor;
class QKeyEvent;
class QKeySequence;
class QMouseEvent;
class QRect;
class QWheelEvent;
/// \class vtkQtChartInteractor
/// \brief
/// The vtkQtChartInteractor class is used to interact with a chart.
///
/// The chart area object is is shared among the mouse and keyboard
/// functions. The chart area can be used to get access to the
/// contents space object or the mouse box. The chart uses the mouse
/// box to draw a dashed rectangle on top of the chart. Mouse
/// functions can use this rectangle for selection or zooming.
///
/// Mouse and keyboard buttons can be configured to perform functions
/// using the configuration methods. Mouse functions can be combined
/// on the same mouse button. To access the different functions on a
/// button, the mode must first be set. Only on keyboard function can
/// be added to a key sequence.
class VTKQTCHART_EXPORT vtkQtChartInteractor : public QObject
{
Q_OBJECT
public:
/// \brief
/// Creates a chart interactor instance.
/// \param parent The parent object.
vtkQtChartInteractor(QObject *parent=0);
virtual ~vtkQtChartInteractor();
/// \name Setup Methods
//@{
/// \brief
/// Gets the chart area.
/// \return
/// A pointer to the chart area.
vtkQtChartArea *getChartArea() const {return this->ChartArea;}
/// \brief
/// Sets the chart area.
/// \param area The new chart area.
void setChartArea(vtkQtChartArea *area);
//@}
/// \name Configuration Methods
//@{
/// \brief
/// Sets the given function on the indicated mouse button.
///
/// This method clears any functions currently assigned to the
/// given button before adding the new function.
///
/// \param button The mouse button to assign the function to.
/// \param function The mouse function to add.
/// \param modifiers The keyboard modifiers used to activate the
/// function.
void setFunction(Qt::MouseButton button, vtkQtChartMouseFunction *function,
Qt::KeyboardModifiers modifiers=Qt::NoModifier);
/// \brief
/// Sets the given function on the mouse wheel.
/// \param function The mouse function to add.
/// \param modifiers The keyboard modifiers used to activate the
/// function.
void setWheelFunction(vtkQtChartMouseFunction *function,
Qt::KeyboardModifiers modifiers=Qt::NoModifier);
/// \brief
/// Adds the given function to the indicated mouse button.
///
/// If the new function is not combinable, it will be added to its
/// own interaction mode. If the function is combinable, it is
/// added to the first mode that does not have the given modifiers.
///
/// \param button The mouse button to assign the function to.
/// \param function The mouse function to add.
/// \param modifiers The keyboard modifiers used to activate the
/// function.
void addFunction(Qt::MouseButton button, vtkQtChartMouseFunction *function,
Qt::KeyboardModifiers modifiers=Qt::NoModifier);
/// \brief
/// Adds the given function to the mouse wheel.
/// \param function The mouse function to add.
/// \param modifiers The keyboard modifiers used to activate the
/// function.
void addWheelFunction(vtkQtChartMouseFunction *function,
Qt::KeyboardModifiers modifiers=Qt::NoModifier);
/// \brief
/// Removes the given function from its assigned button.
/// \param function The mouse function to remove.
void removeFunction(vtkQtChartMouseFunction *function);
/// \brief
/// Removes all the functions assigned to the given button.
/// \param button The mouse button to clear.
void removeFunctions(Qt::MouseButton button);
/// Removes all the functions assigned to the mouse wheel.
void removeWheelFunctions();
/// Removes all the functions from all the buttons.
void removeAllFunctions();
/// \brief
/// Gets the number of modes on a mouse button.
/// \param button The mouse button.
/// \return
/// The number of modes on a mouse button.
int getNumberOfModes(Qt::MouseButton button) const;
/// \brief
/// Gets the current mode for the given button.
/// \param button The mouse button.
/// \return
/// The current mode for the given button.
int getMode(Qt::MouseButton button) const;
/// \brief
/// Sets the current mode for the given button.
/// \param button The mouse button.
/// \param index The new interaction mode.
void setMode(Qt::MouseButton button, int index);
/// \brief
/// Gets the number of modes on the mouse wheel.
/// \return
/// The number of modes on the mouse wheel.
int getNumberOfWheelModes() const;
/// \brief
/// Gets the current mode for the mouse wheel.
/// \return
/// The current mode for the mouse wheel.
int getWheelMode() const;
/// \brief
/// Sets the current mode for the mouse wheel.
/// \param index The new interaction mode.
void setWheelMode(int index);
//@}
/// \name Keyboard Methods
//@{
/// \brief
/// Adds a keyboard function to the chart.
///
/// The key sequence must be unique to be added to the chart. The
/// same function pointer can be added to multiple key sequence
/// entries.
///
/// \param sequence The key sequence to activate the function.
/// \param function The keyboard function.
void addKeyboardFunction(const QKeySequence &sequence,
vtkQtChartKeyboardFunction *function);
/// \brief
/// Removes the keyboard function from the chart.
/// \param function The keyboard function to remove.
void removeKeyboardFunction(vtkQtChartKeyboardFunction *function);
/// Removes all the keyboard functions from the chart.
void removeKeyboardFunctions();
//@}
/// \name Interaction Methods
//@{
/// \brief
/// Handles the key press events for the chart.
///
/// The key and modifiers from the keyboard event are used to
/// determine the function to call.
///
/// \param e Event specific information.
virtual bool keyPressEvent(QKeyEvent *e);
/// \brief
/// Calls the appropriate function to handle the mouse press.
///
/// The mouse button and that button's current mode are used to
/// determine the function to call. If a function on another button
/// owns the mouse, the event will be ignored.
///
/// \param e Event specific information.
virtual void mousePressEvent(QMouseEvent *e);
/// \brief
/// Calls the appropriate function to handle the mouse move.
/// \param e Event specific information.
virtual void mouseMoveEvent(QMouseEvent *e);
/// \brief
/// Calls the appropriate function to handle the mouse release.
/// \param e Event specific information.
virtual void mouseReleaseEvent(QMouseEvent *e);
/// \brief
/// Calls the appropriate function to handle the double click.
/// \param e Event specific information.
virtual void mouseDoubleClickEvent(QMouseEvent *e);
/// \brief
/// Handles the mouse wheel events for the chart.
/// \param e Event specific information.
virtual void wheelEvent(QWheelEvent *e);
//@}
signals:
/// \brief
/// Emitted when the mouse cursor needs to be changed.
/// \param cursor The new cursor to use.
void cursorChangeRequested(const QCursor &cursor);
private slots:
/// \brief
/// Called to begin a new mouse state.
///
/// Only one mouse function can own the mouse at one time.
///
/// \param owner The mouse function requesting the mouse state.
void beginState(vtkQtChartMouseFunction *owner);
/// \brief
/// Called to end the current mouse state.
///
/// Only the current owner should end the current state.
///
/// \param owner The mouse function releasing the mouse state.
void endState(vtkQtChartMouseFunction *owner);
private:
/// \brief
/// Adds the given function to the given list.
/// \param list The list to add the function to.
/// \param function The mouse function to add.
/// \param modifiers The keyboard modifiers used to activate the
/// function.
void addFunction(vtkQtChartInteractorModeList *list,
vtkQtChartMouseFunction *function, Qt::KeyboardModifiers modifiers);
/// \brief
/// Removes all the functions assigned to the given list.
/// \param list The list of functions to clear.
void removeFunctions(vtkQtChartInteractorModeList *list);
private:
/// Stores the mouse/keyboard function configuration.
vtkQtChartInteractorInternal *Internal;
vtkQtChartArea *ChartArea; ///< Stores the chart area.
Qt::KeyboardModifier XModifier; ///< Stores the zoom x-only modifier.
Qt::KeyboardModifier YModifier; ///< Stores the zoom y-only modifier.
};
#endif
|