qCTKDoubleRangeSlider.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Library:   qCTK
00004 
00005   Copyright (c) Kitware Inc. 
00006   All rights reserved.
00007   Distributed under a BSD License. See LICENSE.txt file.
00008 
00009   This software is distributed "AS IS" WITHOUT ANY WARRANTY; without even
00010   the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00011   See the above copyright notice for more information.
00012 
00013 =========================================================================*/
00014 
00015 #ifndef __qCTKDoubleRangeSlider_h
00016 #define __qCTKDoubleRangeSlider_h
00017 
00019 #include <QWidget>
00020 #include <QAbstractSlider>
00021 
00023 #include "qCTKPimpl.h"
00024 #include "qCTKWidgetsExport.h"
00025 
00026 class qCTKDoubleRangeSliderPrivate;
00027 class QCTK_WIDGETS_EXPORT qCTKDoubleRangeSlider : public QWidget
00028 {
00029   Q_OBJECT      
00030   Q_PROPERTY(double minimum READ minimum WRITE setMinimum)
00031   Q_PROPERTY(double maximum READ maximum WRITE setMaximum)
00032   Q_PROPERTY(double singleStep READ singleStep WRITE setSingleStep)
00033   Q_PROPERTY(double minimumValue READ minimumValue WRITE setMinimumValue)
00034   Q_PROPERTY(double maximumValue READ maximumValue WRITE setMaximumValue)
00035   Q_PROPERTY(double minimumPosition READ minimumPosition WRITE setMinimumPosition)
00036   Q_PROPERTY(double maximumPosition READ maximumPosition WRITE setMaximumPosition)
00037   Q_PROPERTY(bool tracking READ hasTracking WRITE setTracking)
00038   Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation)
00039   Q_PROPERTY(double tickInterval READ tickInterval WRITE setTickInterval)
00040 public:
00041   // Superclass typedef
00042   typedef QWidget Superclass;
00043   
00044   // Constructors
00045   qCTKDoubleRangeSlider( Qt::Orientation o, QWidget* par= 0 );
00046   qCTKDoubleRangeSlider( QWidget* par = 0 );
00047   
00052   void setSingleStep(double ss);
00053   double singleStep()const;
00054   
00060   void setTickInterval(double ti);
00061   double tickInterval()const;
00062   
00068   double minimum()const;
00069   void setMinimum(double min);
00070 
00076   double maximum()const;
00077   void setMaximum(double max);
00078 
00082   void setRange(double min, double max);
00083 
00089   double minimumValue() const;
00090 
00096   double maximumValue() const;
00097   
00101   double minimumPosition() const;
00102   void setMinimumPosition(double minPos);
00103 
00107   double maximumPosition() const;
00108   void setMaximumPosition(double maxPos);
00109 
00113   void setPositions(double minPos, double maxPos);
00114 
00122   void setTracking(bool enable);
00123   bool hasTracking()const;
00124   
00129   void triggerAction(QAbstractSlider::SliderAction action);
00130 
00134   Qt::Orientation orientation()const;
00135   void setOrientation(Qt::Orientation orientation);
00136 signals:
00140   void minimumValueChanged(double minVal);
00141 
00145   void maximumValueChanged(double maxVal);
00146 
00149   void valuesChanged(double minVal, double maxVal);
00150 
00156   void minimumPositionChanged(double minPos);
00157 
00163   void maximumPositionChanged(double maxPos);
00164   
00168   void positionsChanged(double minPos, double maxPos);
00169 
00173   void sliderPressed();
00174 
00178   void sliderReleased();
00179 
00180     
00181 public slots:
00187   void setMinimumValue(double minVal);
00188 
00194   void setMaximumValue(double maxVal);
00195   
00198   void setValues(double minVal, double maxVal);
00199 
00200 protected slots:
00201   void onMinValueChanged(int value);
00202   void onMaxValueChanged(int value);
00203   void onValuesChanged(int min, int max);
00204 
00205   void onMinPosChanged(int value);
00206   void onMaxPosChanged(int value);
00207   void onPositionsChanged(int min, int max);
00208 private:
00209   QCTK_DECLARE_PRIVATE(qCTKDoubleRangeSlider);
00210 };
00211 
00212 #endif

Generated on 6 Apr 2011 for Slicer3 by  doxygen 1.6.1