CTK 0.1.0
The Common Toolkit is a community effort to provide support code for medical image analysis, surgical navigation, and related projects.
Loading...
Searching...
No Matches
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
32class ctkRangeSlider;
33class ctkDoubleRangeSliderPrivate;
34class ctkValueProxy;
35
41class 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)
56public:
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
185Q_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
236public Q_SLOTS:
242 void setMinimumValue(double minVal);
243
249 void setMaximumValue(double maxVal);
250
253 void setValues(double minVal, double maxVal);
254
255protected 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
266protected:
270
271protected:
272 QScopedPointer<ctkDoubleRangeSliderPrivate> d_ptr;
273
274private:
275 Q_DECLARE_PRIVATE(ctkDoubleRangeSlider);
276 Q_DISABLE_COPY(ctkDoubleRangeSlider);
277};
278
279#endif
void setSingleStep(double ss)
void setTickInterval(double ti)
ctkValueProxy * valueProxy() 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
ctkRangeSlider * slider() 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.
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