00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_SLIDER_H
00011 #define QWT_SLIDER_H
00012
00013 #include "qwt_global.h"
00014 #include "qwt_abstract_scale.h"
00015 #include "qwt_abstract_slider.h"
00016
00017 class QwtScaleDraw;
00018
00032 class QWT_EXPORT QwtSlider : public QwtAbstractSlider, public QwtAbstractScale
00033 {
00034 Q_OBJECT
00035 Q_ENUMS( ScalePos )
00036 Q_ENUMS( BackgroundStyle )
00037 Q_PROPERTY( ScalePos scalePosition READ scalePosition
00038 WRITE setScalePosition )
00039 Q_PROPERTY( BackgroundStyles backgroundStyle
00040 READ backgroundStyle WRITE setBackgroundStyle )
00041 Q_PROPERTY( QSize handleSize READ handleSize WRITE setHandleSize )
00042 Q_PROPERTY( int borderWidth READ borderWidth WRITE setBorderWidth )
00043 Q_PROPERTY( int spacing READ spacing WRITE setSpacing )
00044
00045 public:
00046
00056 enum ScalePos
00057 {
00059 NoScale,
00060
00062 LeftScale,
00063
00065 RightScale,
00066
00068 TopScale,
00069
00071 BottomScale
00072 };
00073
00078 enum BackgroundStyle
00079 {
00081 Trough = 0x01,
00082
00084 Groove = 0x02,
00085 };
00086
00088 typedef QFlags<BackgroundStyle> BackgroundStyles;
00089
00090 explicit QwtSlider( QWidget *parent,
00091 Qt::Orientation = Qt::Horizontal,
00092 ScalePos = NoScale, BackgroundStyles = Trough );
00093
00094 virtual ~QwtSlider();
00095
00096 virtual void setOrientation( Qt::Orientation );
00097
00098 void setBackgroundStyle( BackgroundStyles );
00099 BackgroundStyles backgroundStyle() const;
00100
00101 void setScalePosition( ScalePos s );
00102 ScalePos scalePosition() const;
00103
00104 void setHandleSize( int width, int height );
00105 void setHandleSize( const QSize & );
00106 QSize handleSize() const;
00107
00108 void setBorderWidth( int bw );
00109 int borderWidth() const;
00110
00111 void setSpacing( int );
00112 int spacing() const;
00113
00114 virtual QSize sizeHint() const;
00115 virtual QSize minimumSizeHint() const;
00116
00117 void setScaleDraw( QwtScaleDraw * );
00118 const QwtScaleDraw *scaleDraw() const;
00119
00120 protected:
00121 virtual double getValue( const QPoint &p );
00122 virtual void getScrollMode( const QPoint &p,
00123 QwtAbstractSlider::ScrollMode &, int &direction ) const;
00124
00125 virtual void drawSlider ( QPainter *, const QRect & ) const;
00126 virtual void drawHandle( QPainter *, const QRect &, int pos ) const;
00127
00128 virtual void resizeEvent( QResizeEvent * );
00129 virtual void paintEvent ( QPaintEvent * );
00130 virtual void changeEvent( QEvent * );
00131
00132 virtual void valueChange();
00133 virtual void rangeChange();
00134 virtual void scaleChange();
00135
00136 int transform( double v ) const;
00137
00138 QwtScaleDraw *scaleDraw();
00139
00140 private:
00141 void layoutSlider( bool );
00142 void initSlider( Qt::Orientation, ScalePos, BackgroundStyles );
00143
00144 class PrivateData;
00145 PrivateData *d_data;
00146 };
00147
00148 Q_DECLARE_OPERATORS_FOR_FLAGS( QwtSlider::BackgroundStyles )
00149
00150 #endif