GOFIGURE2  0.9.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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.commontk.org/LICENSE
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 <QAbstractSlider>
27 
28 // CTK includes
29 #include <ctkPimpl.h>
30 #include "ctkConfigure.h"
31 
32 class ctkRangeSlider;
34 
39 class ctk_EXPORT ctkDoubleRangeSlider : public QWidget
40 {
41  Q_OBJECT
42  Q_PROPERTY(double minimum READ minimum WRITE setMinimum)
43  Q_PROPERTY(double maximum READ maximum WRITE setMaximum)
44  Q_PROPERTY(double singleStep READ singleStep WRITE setSingleStep)
45  Q_PROPERTY(double minimumValue READ minimumValue WRITE setMinimumValue)
46  Q_PROPERTY(double maximumValue READ maximumValue WRITE setMaximumValue)
47  Q_PROPERTY(double minimumPosition READ minimumPosition WRITE setMinimumPosition)
48  Q_PROPERTY(double maximumPosition READ maximumPosition WRITE setMaximumPosition)
49  Q_PROPERTY(bool tracking READ hasTracking WRITE setTracking)
50  Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation)
51  Q_PROPERTY(double tickInterval READ tickInterval WRITE setTickInterval)
52  Q_PROPERTY(bool symmetricMoves READ symmetricMoves WRITE setSymmetricMoves)
53 public:
54  // Superclass typedef
56 
59  ctkDoubleRangeSlider( Qt::Orientation o, QWidget* par= 0 );
60 
63  ctkDoubleRangeSlider( QWidget* par = 0 );
64 
66  virtual ~ctkDoubleRangeSlider();
67 
72  void setSingleStep(double ss);
73  double singleStep()const;
74 
80  void setTickInterval(double ti);
81  double tickInterval()const;
82 
88  double minimum()const;
89  void setMinimum(double min);
90 
96  double maximum()const;
97  void setMaximum(double max);
98 
102  void setRange(double min, double max);
103 
109  double minimumValue() const;
110 
116  double maximumValue() const;
117 
121  double minimumPosition() const;
122  void setMinimumPosition(double minPos);
123 
127  double maximumPosition() const;
128  void setMaximumPosition(double maxPos);
129 
133  void setPositions(double minPos, double maxPos);
134 
142  void setTracking(bool enable);
143  bool hasTracking()const;
144 
149  void triggerAction(QAbstractSlider::SliderAction action);
150 
154  Qt::Orientation orientation()const;
155  void setOrientation(Qt::Orientation orientation);
156 
160  bool symmetricMoves()const;
161  void setSymmetricMoves(bool symmetry);
162 
163 signals:
167  void minimumValueChanged(double minVal);
168 
172  void maximumValueChanged(double maxVal);
173 
176  void valuesChanged(double minVal, double maxVal);
177 
183  void minimumPositionChanged(double minPos);
184 
190  void maximumPositionChanged(double maxPos);
191 
195  void positionsChanged(double minPos, double maxPos);
196 
200  void sliderPressed();
201 
205  void sliderReleased();
206 
212  void rangeChanged(double min, double max);
213 
214 public slots:
220  void setMinimumValue(double minVal);
221 
227  void setMaximumValue(double maxVal);
228 
231  void setValues(double minVal, double maxVal);
232 
233 protected slots:
234  void onMinValueChanged(int value);
235  void onMaxValueChanged(int value);
236  void onValuesChanged(int min, int max);
237 
238  void onMinPosChanged(int value);
239  void onMaxPosChanged(int value);
240  void onPositionsChanged(int min, int max);
241  void onRangeChanged(int min, int max);
242 
243 protected:
244  ctkRangeSlider* slider()const;
246  void setSlider(ctkRangeSlider* slider);
247 
248 protected:
250 
251 private:
252  Q_DECLARE_PRIVATE(ctkDoubleRangeSlider);
253  Q_DISABLE_COPY(ctkDoubleRangeSlider);
254 };
255 
256 #endif