CTK  0.1.0
The Common Toolkit is a community effort to provide support code for medical image analysis, surgical navigation, and related projects.
ctkDoubleRangeSlider.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Library: CTK
4 
5  Copyright (c) Kitware Inc.
6 
7  Licensed under the Apache License, Version 2.0 (the "License");
8  you may not use this file except in compliance with the License.
9  You may obtain a copy of the License at
10 
11  http://www.apache.org/licenses/LICENSE-2.0.txt
12 
13  Unless required by applicable law or agreed to in writing, software
14  distributed under the License is distributed on an "AS IS" BASIS,
15  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  See the License for the specific language governing permissions and
17  limitations under the License.
18 
19 =========================================================================*/
20 
21 #ifndef __ctkDoubleRangeSlider_h
22 #define __ctkDoubleRangeSlider_h
23 
24 // Qt includes
25 #include <QWidget>
26 #include <QSlider>
27 
28 // CTK includes
29 #include <ctkPimpl.h>
30 #include "ctkWidgetsExport.h"
31 
32 class ctkRangeSlider;
33 class ctkDoubleRangeSliderPrivate;
34 class ctkValueProxy;
35 
41 class CTK_WIDGETS_EXPORT ctkDoubleRangeSlider : public QWidget
42 {
43  Q_OBJECT
44  Q_PROPERTY(double minimum READ minimum WRITE setMinimum)
45  Q_PROPERTY(double maximum READ maximum WRITE setMaximum)
46  Q_PROPERTY(double singleStep READ singleStep WRITE setSingleStep)
47  Q_PROPERTY(double minimumValue READ minimumValue WRITE setMinimumValue)
48  Q_PROPERTY(double maximumValue READ maximumValue WRITE setMaximumValue)
49  Q_PROPERTY(double minimumPosition READ minimumPosition WRITE setMinimumPosition)
50  Q_PROPERTY(double maximumPosition READ maximumPosition WRITE setMaximumPosition)
51  Q_PROPERTY(bool tracking READ hasTracking WRITE setTracking)
52  Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation)
53  Q_PROPERTY(double tickInterval READ tickInterval WRITE setTickInterval)
54  Q_PROPERTY(QSlider::TickPosition tickPosition READ tickPosition WRITE setTickPosition)
55  Q_PROPERTY(bool symmetricMoves READ symmetricMoves WRITE setSymmetricMoves)
56 public:
57  // Superclass typedef
58  typedef QWidget Superclass;
59 
62  ctkDoubleRangeSlider( Qt::Orientation o, QWidget* par= 0 );
63 
66  ctkDoubleRangeSlider( QWidget* par = 0 );
67 
70 
76  void setSingleStep(double ss);
77  double singleStep()const;
78 
83  bool isValidStep(double step)const;
84 
90  void setTickInterval(double ti);
91  double tickInterval()const;
92 
97  void setTickPosition(QSlider::TickPosition position);
98  QSlider::TickPosition tickPosition()const;
99 
105  double minimum()const;
106  void setMinimum(double min);
107 
113  double maximum()const;
114  void setMaximum(double max);
115 
119  void setRange(double min, double max);
120 
126  double minimumValue() const;
127 
133  double maximumValue() const;
134 
138  double minimumPosition() const;
139  void setMinimumPosition(double minPos);
140 
144  double maximumPosition() const;
145  void setMaximumPosition(double maxPos);
146 
150  void setPositions(double minPos, double maxPos);
151 
159  void setTracking(bool enable);
160  bool hasTracking()const;
161 
166  void triggerAction(QAbstractSlider::SliderAction action);
167 
171  Qt::Orientation orientation()const;
172  void setOrientation(Qt::Orientation orientation);
173 
177  bool symmetricMoves()const;
178  void setSymmetricMoves(bool symmetry);
179 
184 
185 Q_SIGNALS:
189  void minimumValueChanged(double minVal);
190 
194  void maximumValueChanged(double maxVal);
195 
198  void valuesChanged(double minVal, double maxVal);
199 
205  void minimumPositionChanged(double minPos);
206 
212  void maximumPositionChanged(double maxPos);
213 
217  void positionsChanged(double minPos, double maxPos);
218 
223 
228 
234  void rangeChanged(double min, double max);
235 
236 public Q_SLOTS:
242  void setMinimumValue(double minVal);
243 
249  void setMaximumValue(double maxVal);
250 
253  void setValues(double minVal, double maxVal);
254 
255 protected Q_SLOTS:
256  void onValuesChanged(int min, int max);
257 
258  void onMinPosChanged(int value);
259  void onMaxPosChanged(int value);
260  void onPositionsChanged(int min, int max);
261  void onRangeChanged(int min, int max);
262 
265 
266 protected:
269  void setSlider(ctkRangeSlider* slider);
270 
271 protected:
272  QScopedPointer<ctkDoubleRangeSliderPrivate> d_ptr;
273 
274 private:
275  Q_DECLARE_PRIVATE(ctkDoubleRangeSlider);
276  Q_DISABLE_COPY(ctkDoubleRangeSlider);
277 };
278 
279 #endif
ctkDoubleRangeSlider::d_ptr
QScopedPointer< ctkDoubleRangeSliderPrivate > d_ptr
Definition: ctkDoubleRangeSlider.h:272
ctkDoubleRangeSlider::setMinimumValue
void setMinimumValue(double minVal)
ctkDoubleRangeSlider::setMaximumPosition
void setMaximumPosition(double maxPos)
ctkDoubleRangeSlider::setMinimum
void setMinimum(double min)
ctkDoubleRangeSlider::setTracking
void setTracking(bool enable)
ctkDoubleRangeSlider::setValues
void setValues(double minVal, double maxVal)
Utility function that set the minimum value and maximum value at once.
ctkDoubleRangeSlider::~ctkDoubleRangeSlider
virtual ~ctkDoubleRangeSlider()
Destructor.
ctkDoubleRangeSlider::slider
ctkRangeSlider * slider() const
ctkDoubleRangeSlider::setMaximum
void setMaximum(double max)
ctkDoubleRangeSlider::tickInterval
double tickInterval() const
ctkDoubleRangeSlider::orientation
Qt::Orientation orientation() const
ctkDoubleRangeSlider::onValueProxyModified
void onValueProxyModified()
ctkDoubleRangeSlider::setOrientation
void setOrientation(Qt::Orientation orientation)
ctkRangeSlider
Definition: ctkRangeSlider.h:51
ctkDoubleRangeSlider::maximumValueChanged
void maximumValueChanged(double maxVal)
ctkWrapPythonQt.action
action
Definition: ctkWrapPythonQt.py:214
ctkDoubleRangeSlider::triggerAction
void triggerAction(QAbstractSlider::SliderAction action)
ctkDoubleRangeSlider::minimumPosition
double minimumPosition() const
ctkDoubleRangeSlider::maximumValue
double maximumValue() const
ctkDoubleRangeSlider::ctkDoubleRangeSlider
ctkDoubleRangeSlider(QWidget *par=0)
ctkDoubleRangeSlider::isValidStep
bool isValidStep(double step) const
ctkDoubleRangeSlider::minimumValueChanged
void minimumValueChanged(double minVal)
ctkDoubleRangeSlider::minimum
double minimum() const
ctkDoubleRangeSlider::minimumPositionChanged
void minimumPositionChanged(double minPos)
ctkDoubleRangeSlider::maximumPositionChanged
void maximumPositionChanged(double maxPos)
ctkDoubleRangeSlider::positionsChanged
void positionsChanged(double minPos, double maxPos)
ctkDoubleRangeSlider::onValuesChanged
void onValuesChanged(int min, int max)
ctkDoubleRangeSlider::symmetricMoves
bool symmetricMoves() const
ctkDoubleRangeSlider::tickPosition
QSlider::TickPosition tickPosition() const
ctkDoubleRangeSlider
Definition: ctkDoubleRangeSlider.h:42
ctkDoubleRangeSlider::maximumPosition
double maximumPosition() const
ctkDoubleRangeSlider::singleStep
double singleStep() const
ctkDoubleRangeSlider::maximum
double maximum() const
ctkDoubleRangeSlider::onMaxPosChanged
void onMaxPosChanged(int value)
ctkDoubleRangeSlider::onPositionsChanged
void onPositionsChanged(int min, int max)
ctkDoubleRangeSlider::setMinimumPosition
void setMinimumPosition(double minPos)
ctkDoubleRangeSlider::onRangeChanged
void onRangeChanged(int min, int max)
ctkDoubleRangeSlider::setSymmetricMoves
void setSymmetricMoves(bool symmetry)
ctkValueProxy
Base class for value proxies. Value proxy allows to decouple the displayed value from the values acce...
Definition: ctkValueProxy.h:47
ctkDoubleRangeSlider::setTickInterval
void setTickInterval(double ti)
ctkDoubleRangeSlider::setPositions
void setPositions(double minPos, double maxPos)
ctkDoubleRangeSlider::setSlider
void setSlider(ctkRangeSlider *slider)
Subclasses can change the internal slider.
ctkDoubleRangeSlider::minimumValue
double minimumValue() const
ctkDoubleRangeSlider::valueProxy
ctkValueProxy * valueProxy() const
ctkDoubleRangeSlider::setSingleStep
void setSingleStep(double ss)
ctkDoubleRangeSlider::setValueProxy
void setValueProxy(ctkValueProxy *proxy)
ctkDoubleRangeSlider::Superclass
QWidget Superclass
Definition: ctkDoubleRangeSlider.h:58
ctkDoubleRangeSlider::onMinPosChanged
void onMinPosChanged(int value)
ctkDoubleRangeSlider::hasTracking
bool hasTracking() const
ctkPimpl.h
ctkDoubleRangeSlider::rangeChanged
void rangeChanged(double min, double max)
ctkDoubleRangeSlider::setTickPosition
void setTickPosition(QSlider::TickPosition position)
ctkDoubleRangeSlider::setRange
void setRange(double min, double max)
ctkDoubleRangeSlider::setMaximumValue
void setMaximumValue(double maxVal)
ctkDoubleRangeSlider::sliderReleased
void sliderReleased()
ctkDoubleRangeSlider::valuesChanged
void valuesChanged(double minVal, double maxVal)
Utility signal that is fired when minimum or maximum values have changed.
ctkDoubleRangeSlider::onValueProxyAboutToBeModified
void onValueProxyAboutToBeModified()
ctkDoubleRangeSlider::ctkDoubleRangeSlider
ctkDoubleRangeSlider(Qt::Orientation o, QWidget *par=0)
ctkDoubleRangeSlider::sliderPressed
void sliderPressed()