| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 | 
							- /*=========================================================================
 
-   Library:   CTK
 
-  
 
-   Copyright (c) 2010  Kitware Inc.
 
-   Licensed under the Apache License, Version 2.0 (the "License");
 
-   you may not use this file except in compliance with the License.
 
-   You may obtain a copy of the License at
 
-       http://www.commontk.org/LICENSE
 
-   Unless required by applicable law or agreed to in writing, software
 
-   distributed under the License is distributed on an "AS IS" BASIS,
 
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
-   See the License for the specific language governing permissions and
 
-   limitations under the License.
 
-  
 
- =========================================================================*/
 
- #ifndef __ctkDoubleRangeSlider_h
 
- #define __ctkDoubleRangeSlider_h
 
- // Qt includes
 
- #include <QWidget>
 
- #include <QAbstractSlider>
 
- // CTK includes
 
- #include <ctkPimpl.h>
 
- #include "CTKWidgetsExport.h"
 
- class ctkRangeSlider;
 
- class ctkDoubleRangeSliderPrivate;
 
- /// ctkDoubleRangeSlider is a slider that controls 2 numbers as double.
 
- /// ctkDoubleRangeSlider internally aggregates a ctkRangeSlider (not in the
 
- /// API to prevent misuse). Only subclasses can have access to it.
 
- /// \sa ctkRangeSlider, ctkDoubleSlider, ctkRangeWidget
 
- class CTK_WIDGETS_EXPORT ctkDoubleRangeSlider : public QWidget
 
- {
 
-   Q_OBJECT      
 
-   Q_PROPERTY(double minimum READ minimum WRITE setMinimum)
 
-   Q_PROPERTY(double maximum READ maximum WRITE setMaximum)
 
-   Q_PROPERTY(double singleStep READ singleStep WRITE setSingleStep)
 
-   Q_PROPERTY(double minimumValue READ minimumValue WRITE setMinimumValue)
 
-   Q_PROPERTY(double maximumValue READ maximumValue WRITE setMaximumValue)
 
-   Q_PROPERTY(double minimumPosition READ minimumPosition WRITE setMinimumPosition)
 
-   Q_PROPERTY(double maximumPosition READ maximumPosition WRITE setMaximumPosition)
 
-   Q_PROPERTY(bool tracking READ hasTracking WRITE setTracking)
 
-   Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation)
 
-   Q_PROPERTY(double tickInterval READ tickInterval WRITE setTickInterval)
 
- public:
 
-   // Superclass typedef
 
-   typedef QWidget Superclass;
 
-   
 
-   /// Constructor, builds a ctkDoubleRangeSlider whose default values are the same
 
-   /// as ctkRangeSlider.
 
-   ctkDoubleRangeSlider( Qt::Orientation o, QWidget* par= 0 );
 
-   /// Constructor, builds a ctkDoubleRangeSlider whose default values are the same
 
-   /// as ctkRangeSlider.
 
-   ctkDoubleRangeSlider( QWidget* par = 0 );
 
-   
 
-   /// 
 
-   /// This property holds the single step.
 
-   /// The smaller of two natural steps that an abstract sliders provides and
 
-   /// typically corresponds to the user pressing an arrow key
 
-   void setSingleStep(double ss);
 
-   double singleStep()const;
 
-   
 
-   /// 
 
-   /// This property holds the interval between tickmarks.
 
-   /// This is a value interval, not a pixel interval. If it is 0, the slider
 
-   /// will choose between lineStep() and pageStep().
 
-   /// The default value is 0.
 
-   void setTickInterval(double ti);
 
-   double tickInterval()const;
 
-   
 
-   /// 
 
-   /// This property holds the sliders's minimum value.
 
-   /// When setting this property, the maximum is adjusted if necessary to
 
-   /// ensure that the range remains valid. Also the slider's current values
 
-   /// are adjusted to be within the new range. 
 
-   double minimum()const;
 
-   void setMinimum(double min);
 
-   /// 
 
-   /// This property holds the slider's maximum value.
 
-   /// When setting this property, the minimum is adjusted if necessary to 
 
-   /// ensure that the range remains valid. Also the slider's current values
 
-   /// are adjusted to be within the new range.
 
-   double maximum()const;
 
-   void setMaximum(double max);
 
-   /// 
 
-   /// Sets the slider's minimum to min and its maximum to max.
 
-   /// If max is smaller than min, min becomes the only legal value.
 
-   void setRange(double min, double max);
 
-   /// 
 
-   /// This property holds the slider's current minimum value.
 
-   /// The slider forces the minimum value to be within the legal range: 
 
-   /// minimum <= minvalue <= maxvalue <= maximum.
 
-   /// Changing the minimumValue also changes the minimumPosition.
 
-   double minimumValue() const;
 
-   /// 
 
-   /// This property holds the slider's current maximum value.
 
-   /// The slider forces the maximum value to be within the legal range: 
 
-   /// minimum <= minvalue <= maxvalue <= maximum.
 
-   /// Changing the maximumValue also changes the maximumPosition.
 
-   double maximumValue() const;
 
-   
 
-   /// 
 
-   /// This property holds the current slider minimum position.
 
-   /// If tracking is enabled (the default), this is identical to minimumValue.
 
-   double minimumPosition() const;
 
-   void setMinimumPosition(double minPos);
 
-   /// 
 
-   /// This property holds the current slider maximum position.
 
-   /// If tracking is enabled (the default), this is identical to maximumValue.
 
-   double maximumPosition() const;
 
-   void setMaximumPosition(double maxPos);
 
-   ///
 
-   /// Utility function that set the minimum position and
 
-   /// maximum position at once.
 
-   void setPositions(double minPos, double maxPos);
 
-   /// 
 
-   /// This property holds whether slider tracking is enabled.
 
-   /// If tracking is enabled (the default), the slider emits the minimumValueChanged()
 
-   /// signal while the left/bottom handler is being dragged and the slider emits
 
-   /// the maximumValueChanged() signal while the right/top handler is being dragged. 
 
-   /// If tracking is disabled, the slider emits the minimumValueChanged() 
 
-   /// and maximumValueChanged() signals only when the user releases the slider.
 
-   void setTracking(bool enable);
 
-   bool hasTracking()const;
 
-   
 
-   ///
 
-   /// Triggers a slider action on the current slider. Possible actions are 
 
-   /// SliderSingleStepAdd, SliderSingleStepSub, SliderPageStepAdd, 
 
-   /// SliderPageStepSub, SliderToMinimum, SliderToMaximum, and SliderMove.
 
-   void triggerAction(QAbstractSlider::SliderAction action);
 
-   ///
 
-   /// This property holds the orientation of the slider.
 
-   /// The orientation must be Qt::Vertical (the default) or Qt::Horizontal.
 
-   Qt::Orientation orientation()const;
 
-   void setOrientation(Qt::Orientation orientation);
 
- signals:
 
-   ///
 
-   /// This signal is emitted when the slider minimum value has changed, 
 
-   /// with the new slider value as argument.
 
-   void minimumValueChanged(double minVal);
 
-   ///
 
-   /// This signal is emitted when the slider maximum value has changed, 
 
-   /// with the new slider value as argument.
 
-   void maximumValueChanged(double maxVal);
 
-   ///
 
-   /// Utility signal that is fired when minimum or maximum values have changed.
 
-   void valuesChanged(double minVal, double maxVal);
 
-   ///
 
-   /// This signal is emitted when sliderDown is true and the slider moves. 
 
-   /// This usually happens when the user is dragging the minimum slider. 
 
-   /// The value is the new slider minimum position.
 
-   /// This signal is emitted even when tracking is turned off.
 
-   void minimumPositionChanged(double minPos);
 
-   ///
 
-   /// This signal is emitted when sliderDown is true and the slider moves. 
 
-   /// This usually happens when the user is dragging the maximum slider. 
 
-   /// The value is the new slider maximum position.
 
-   /// This signal is emitted even when tracking is turned off.
 
-   void maximumPositionChanged(double maxPos);
 
-   
 
-   ///
 
-   /// Utility signal that is fired when minimum or maximum positions 
 
-   /// have changed.
 
-   void positionsChanged(double minPos, double maxPos);
 
-   /// 
 
-   /// This signal is emitted when the user presses one slider with the mouse, 
 
-   /// or programmatically when setSliderDown(true) is called.
 
-   void sliderPressed();
 
-   /// 
 
-   /// This signal is emitted when the user releases one slider with the mouse,
 
-   /// or programmatically when setSliderDown(false) is called. 
 
-   void sliderReleased();
 
-   ///
 
-   /// This signal is emitted when the slider range has changed, with min being
 
-   /// the new minimum, and max being the new maximum.
 
-   /// Warning: don't confound with valuesChanged(double, double);
 
-   /// \sa QAbstractSlider::rangeChanged()
 
-   void rangeChanged(double min, double max);
 
- public slots:
 
-   /// 
 
-   /// This property holds the slider's current minimum value.
 
-   /// The slider forces the minimum value to be within the legal range: 
 
-   /// minimum <= minvalue <= maxvalue <= maximum.
 
-   /// Changing the minimumValue also changes the minimumPosition.
 
-   void setMinimumValue(double minVal);
 
-   /// 
 
-   /// This property holds the slider's current maximum value.
 
-   /// The slider forces the maximum value to be within the legal range: 
 
-   /// minimum <= minvalue <= maxvalue <= maximum.
 
-   /// Changing the maximumValue also changes the maximumPosition.
 
-   void setMaximumValue(double maxVal);
 
-   
 
-   ///
 
-   /// Utility function that set the minimum value and maximum value at once.
 
-   void setValues(double minVal, double maxVal);
 
- protected slots:
 
-   void onMinValueChanged(int value);
 
-   void onMaxValueChanged(int value);
 
-   void onValuesChanged(int min, int max);
 
-   void onMinPosChanged(int value);
 
-   void onMaxPosChanged(int value);
 
-   void onPositionsChanged(int min, int max);
 
-   void onRangeChanged(int min, int max);
 
- protected:
 
-   ctkRangeSlider* slider()const;
 
-   /// Subclasses can change the internal slider
 
-   void setSlider(ctkRangeSlider* slider);
 
- private:
 
-   CTK_DECLARE_PRIVATE(ctkDoubleRangeSlider);
 
- };
 
- #endif
 
 
  |