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
ctkSliderWidget.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 __ctkSliderWidget_h
22#define __ctkSliderWidget_h
23
24// Qt includes
25#include <QSlider>
26
27// CTK includes
28#include <ctkPimpl.h>
29
30#include "ctkWidgetsExport.h"
31
32class ctkDoubleSlider;
33class ctkPopupWidget;
34class ctkSliderWidgetPrivate;
36class ctkValueProxy;
37
43class CTK_WIDGETS_EXPORT ctkSliderWidget : public QWidget
44{
45 Q_OBJECT
46 Q_FLAGS(SynchronizeSiblings)
47
48
51 Q_PROPERTY(int decimals READ decimals WRITE setDecimals NOTIFY decimalsChanged)
52 Q_PROPERTY(double singleStep READ singleStep WRITE setSingleStep)
53 Q_PROPERTY(double pageStep READ pageStep WRITE setPageStep)
54 Q_PROPERTY(double minimum READ minimum WRITE setMinimum)
55 Q_PROPERTY(double maximum READ maximum WRITE setMaximum)
56 Q_PROPERTY(double value READ value WRITE setValue)
57 Q_PROPERTY(QString prefix READ prefix WRITE setPrefix)
58 Q_PROPERTY(QString suffix READ suffix WRITE setSuffix)
59 Q_PROPERTY(double tickInterval READ tickInterval WRITE setTickInterval)
60 Q_PROPERTY(QSlider::TickPosition tickPosition READ tickPosition WRITE setTickPosition)
61 Q_PROPERTY(SynchronizeSiblings synchronizeSiblings READ synchronizeSiblings WRITE setSynchronizeSiblings)
62 Q_PROPERTY(Qt::Alignment spinBoxAlignment READ spinBoxAlignment WRITE setSpinBoxAlignment)
63 Q_PROPERTY(bool tracking READ hasTracking WRITE setTracking)
64 Q_PROPERTY(bool spinBoxVisible READ isSpinBoxVisible WRITE setSpinBoxVisible);
65 Q_PROPERTY(bool popupSlider READ hasPopupSlider WRITE setPopupSlider);
66 Q_PROPERTY(bool invertedAppearance READ invertedAppearance WRITE setInvertedAppearance)
67 Q_PROPERTY(bool invertedControls READ invertedControls WRITE setInvertedControls)
68
69public:
70
85 {
86 NoSynchronize = 0x000,
87 SynchronizeWidth = 0x001,
88 SynchronizeDecimals = 0x002,
89 };
90 Q_DECLARE_FLAGS(SynchronizeSiblings, SynchronizeSibling)
91
92
93 typedef QWidget Superclass;
94
96 explicit ctkSliderWidget(QWidget* parent = 0);
97 virtual ~ctkSliderWidget();
98
105 virtual double minimum()const;
106 virtual void setMinimum(double minimum);
107
114 virtual double maximum()const;
115 virtual void setMaximum(double maximum);
118 virtual void setRange(double min, double max);
119
123 //double sliderPosition()const;
124 //void setSliderPosition(double position);
125
130 virtual double value()const;
131
137 virtual double singleStep()const;
138 virtual void setSingleStep(double step);
139
144 virtual double pageStep()const;
145 virtual void setPageStep(double step);
146
150 virtual int decimals()const;
151
156 virtual QString prefix()const;
157 virtual void setPrefix(const QString& prefix);
158
163 virtual QString suffix()const;
164 virtual void setSuffix(const QString& suffix);
165
171 virtual double tickInterval()const;
172 virtual void setTickInterval(double tick);
173
178 virtual void setTickPosition(QSlider::TickPosition position);
179 virtual QSlider::TickPosition tickPosition()const;
180
185 virtual void setSpinBoxAlignment(Qt::Alignment alignment);
186 virtual Qt::Alignment spinBoxAlignment()const;
187
194 virtual void setTracking(bool enable);
195 virtual bool hasTracking()const;
196
202 virtual ctkSliderWidget::SynchronizeSiblings synchronizeSiblings() const;
203 virtual void setSynchronizeSiblings(ctkSliderWidget::SynchronizeSiblings options);
204
214 virtual void setInvertedAppearance(bool invertedAppearance);
215 virtual bool invertedAppearance()const;
216
224 virtual void setInvertedControls(bool invertedControls);
225 virtual bool invertedControls()const;
226
230 virtual bool isSpinBoxVisible()const;
231
239 virtual bool hasPopupSlider()const;
240 virtual void setPopupSlider(bool popup);
241
246 virtual ctkPopupWidget* popup()const;
247
252 virtual ctkDoubleSpinBox* spinBox();
253
258 virtual ctkDoubleSlider* slider();
259
265 virtual void setValueProxy(ctkValueProxy* proxy);
266 virtual ctkValueProxy* valueProxy() const;
267
268public Q_SLOTS:
271 virtual void reset();
272 virtual void setValue(double value);
273 virtual void setSpinBoxVisible(bool);
274
277 virtual void setDecimals(int decimals);
278
279Q_SIGNALS:
285 void valueChanged(double value);
286
291 void valueIsChanging(double value);
292
295 void decimalsChanged(int decimals);
296
297protected Q_SLOTS:
298
299 virtual void startChanging();
300 virtual void stopChanging();
301 virtual void setSpinBoxValue(double sliderValue);
302 virtual void setSliderValue(double spinBoxValue);
303 virtual void onValueProxyAboutToBeModified();
304 virtual void onValueProxyModified();
305
306protected:
307 virtual bool eventFilter(QObject *obj, QEvent *event);
308
309protected:
310 QScopedPointer<ctkSliderWidgetPrivate> d_ptr;
311
312private:
313 Q_DECLARE_PRIVATE(ctkSliderWidget);
314 Q_DISABLE_COPY(ctkSliderWidget);
315
316};
317
319
320#endif
Custom SpinBox The ctkDoubleSpinBox internaly uses a QDoubleSpinBox while it retain controls over it.
QWidget Superclass
Superclass typedef.
Base class for value proxies. Value proxy allows to decouple the displayed value from the values acce...
Definition: ctkValueProxy.h:47
Q_DECLARE_OPERATORS_FOR_FLAGS(ctkVTKDataSetModel::AttributeTypes)