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
void setSingleStep(double ss)
void setTickInterval(double ti)
ctkRangeSlider * slider() const
void setSymmetricMoves(bool symmetry)
void setMaximum(double max)
double maximum() const
void onPositionsChanged(int min, int max)
void maximumValueChanged(double maxVal)
bool hasTracking() const
Qt::Orientation orientation() const
void valuesChanged(double minVal, double maxVal)
Utility signal that is fired when minimum or maximum values have changed.
double tickInterval() const
virtual ~ctkDoubleRangeSlider()
Destructor.
void setSlider(ctkRangeSlider *slider)
Subclasses can change the internal slider.
bool isValidStep(double step) const
void setRange(double min, double max)
double maximumValue() const
void positionsChanged(double minPos, double maxPos)
double maximumPosition() const
void setMinimum(double min)
void setPositions(double minPos, double maxPos)
ctkDoubleRangeSlider(Qt::Orientation o, QWidget *par=0)
ctkDoubleRangeSlider(QWidget *par=0)
void minimumValueChanged(double minVal)
void setTickPosition(QSlider::TickPosition position)
double minimumValue() const
void onValuesChanged(int min, int max)
void onMinPosChanged(int value)
void maximumPositionChanged(double maxPos)
void setMaximumPosition(double maxPos)
double minimumPosition() const
void onValueProxyAboutToBeModified()
double minimum() const
bool symmetricMoves() const
double singleStep() const
QSlider::TickPosition tickPosition() const
QScopedPointer< ctkDoubleRangeSliderPrivate > d_ptr
void triggerAction(QAbstractSlider::SliderAction action)
void setOrientation(Qt::Orientation orientation)
void minimumPositionChanged(double minPos)
void rangeChanged(double min, double max)
void onMaxPosChanged(int value)
void onRangeChanged(int min, int max)
void setMinimumValue(double minVal)
void setTracking(bool enable)
void setValueProxy(ctkValueProxy *proxy)
void setValues(double minVal, double maxVal)
Utility function that set the minimum value and maximum value at once.
ctkValueProxy * valueProxy() const
void setMinimumPosition(double minPos)
void setMaximumValue(double maxVal)
Base class for value proxies. Value proxy allows to decouple the displayed value from the values acce...
Definition: ctkValueProxy.h:47