/usr/include/vtkQtChartSeriesSelectionModel.h is in libvtk5-qt4-dev 5.8.0-14.1ubuntu3.
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 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkQtChartSeriesSelectionModel.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 vtkQtChartSeriesSelectionModel.h
/// \date March 14, 2008
#ifndef _vtkQtChartSeriesSelectionModel_h
#define _vtkQtChartSeriesSelectionModel_h
#include "vtkQtChartExport.h"
#include <QObject>
class vtkQtChartSeriesModel;
class vtkQtChartSeriesSelection;
/// \class vtkQtChartSeriesSelectionModel
/// \brief
/// The vtkQtChartSeriesSelectionModel class ties a series selection
/// to a series model.
class VTKQTCHART_EXPORT vtkQtChartSeriesSelectionModel : public QObject
{
Q_OBJECT
public:
/// \brief
/// Creates a series selection model.
/// \param parent The parent object.
vtkQtChartSeriesSelectionModel(QObject *parent=0);
virtual ~vtkQtChartSeriesSelectionModel();
/// \brief
/// Gets the series model associated with the selection model.
/// \return
/// The series model associated with the selection model.
vtkQtChartSeriesModel *getModel() const {return this->Model;}
/// \brief
/// Sets the series model associated with the selection model.
/// \param model The new series model.
void setModel(vtkQtChartSeriesModel *model);
/// \brief
/// Gets whether or not the selection model is in an interactive
/// change.
/// \return
/// Trure if the selection model is in an interactive change.
/// \sa vtkQtChartSeriesSelectionModel::beginInteractiveChange()
bool isInInteractiveChange() const {return this->InInteractMode;}
/// \brief
/// Called to begin an interactive selection change.
///
/// Interactive selection changes such as a selection box can send
/// a lot of change signals as the user drags the mouse around. The
/// chart needs to update the selection based on those signals in
/// order for the user to see the changes. If an expensive process
/// is attached to the selection change signal, this can cause a
/// visible slow-down in the application. This method allows the
/// selection to keep the chart painter up to date while allowing
/// the expensive process to delay execution.
///
/// The interactive controller should call this method before
/// starting a change such as with a selection box. It should call
/// the \c endInteractiveChange method when the interaction is done.
/// The expensive process should listen to the \c selectionChanged
/// and \c interactionFinished signals. The \c interactionFinished
/// is emitted at the end of the interactive change. In order to
/// keep track of non-interactive changes, the \c selectionChanged
/// signal must be monitored. This signal will be emitted for every
/// selection change. Therefore, the listening code should check
/// to see if the model is in an interactive change before executing
/// an expensive process.
void beginInteractiveChange();
/// \brief
/// Called to end an interactive selection change.
/// \sa vtkQtChartSeriesSelectionModel::beginInteractiveChange()
void endInteractiveChange();
/// \brief
/// Gets whether or not the selection is empty.
/// \return
/// True if the selection is empty.
bool isSelectionEmpty() const;
/// \brief
/// Gets the current selection.
/// \return
/// A reference to the current selection.
const vtkQtChartSeriesSelection &getSelection() const;
/// Selects all the model series.
void selectAllSeries();
/// Selects all the model points.
void selectAllPoints();
/// Clears the selection.
void selectNone();
/// Inverts the selection.
void selectInverse();
/// \brief
/// Sets the current selection.
/// \param selection The new selection.
void setSelection(const vtkQtChartSeriesSelection &selection);
/// \brief
/// Adds to the current selection.
/// \param selection The selection to add.
void addSelection(const vtkQtChartSeriesSelection &selection);
/// \brief
/// Subtracts from the current selection.
/// \param selection The selection to subtract.
void subtractSelection(const vtkQtChartSeriesSelection &selection);
/// \brief
/// Performs an exclusive or between the specified selection and
/// the current selection.
/// \param selection The selection to modify the current selection.
void xorSelection(const vtkQtChartSeriesSelection &selection);
signals:
/// \brief
/// Emitted when the selection changes.
/// \param list The list of selected series/points.
void selectionChanged(const vtkQtChartSeriesSelection &list);
/// \brief
/// Emitted when an interactive selection change is finished.
///
/// This signal can be used to delay expensive processes until
/// after the selection change is complete.
///
/// \sa vtkQtChartSeriesSelectionModel::beginInteractiveChange()
void interactionFinished();
public slots:
/// \name Model Modification Handlers
//@{
/// \brief
/// Begins the model reset process.
///
/// The selection model is cleared. The selection changed signal
/// is emitted when the model finishes resetting.
void beginModelReset();
/// Ends the model reset process.
void endModelReset();
/// \brief
/// Begins the series insertion process.
///
/// The indexes for the series in the selection model are updated
/// to reflect the changes. The selection changed signal is emitted
/// when the insertion is completed.
///
/// \param first The first index of the insertion range.
/// \param last The last index of the insertion range.
void beginInsertSeries(int first, int last);
/// \brief
/// Ends the series insertion process.
/// \param first The first index of the insertion range.
/// \param last The last index of the insertion range.
void endInsertSeries(int first, int last);
/// \brief
/// Begins the series removal process.
///
/// Any reference to the removed range is deleted from the selection
/// model. The selection indexes are updated to reflect the change.
/// The selection changed signal is emitted when the removal is
/// completed.
///
/// \param first The first index of the removal range.
/// \param last The last index of the removal range.
void beginRemoveSeries(int first, int last);
/// \brief
/// Ends the series removal process.
/// \param first The first index of the removal range.
/// \param last The last index of the removal range.
void endRemoveSeries(int first, int last);
//@}
private:
/// Trims the selection to ranges valid for the model.
void limitSelection();
private:
/// Stores the series selection.
vtkQtChartSeriesSelection *Selection;
vtkQtChartSeriesModel *Model; ///< A pointer to the model.
bool PendingSignal; ///< Used during model changes.
bool InInteractMode; ///< True if in interact mode.
};
#endif
|