00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef QWT_SLIDER_H
00013 #define QWT_SLIDER_H
00014
00015 #include "qwt_global.h"
00016 #include "qwt_sclif.h"
00017 #include "qwt_sldbase.h"
00018
00029 class QWT_EXPORT QwtSlider : public QwtSliderBase, public QwtScaleIf
00030 {
00031 Q_OBJECT
00032 Q_ENUMS( ScalePos )
00033 Q_ENUMS( BGSTYLE )
00034 Q_PROPERTY( ScalePos scalePosition READ scalePosition
00035 WRITE setScalePosition )
00036 Q_PROPERTY( BGSTYLE bgStyle READ bgStyle WRITE setBgStyle )
00037 Q_PROPERTY( int thumbLength READ thumbLength WRITE setThumbLength )
00038 Q_PROPERTY( int thumbWidth READ thumbWidth WRITE setThumbWidth )
00039 Q_PROPERTY( int borderWidth READ borderWidth WRITE setBorderWidth )
00040
00041 public:
00042
00051 enum ScalePos { None, Left, Right, Top, Bottom };
00052
00057 enum BGSTYLE { BgTrough = 0x1, BgSlot = 0x2, BgBoth = BgTrough | BgSlot};
00058
00059 QwtSlider(QWidget *parent, const char *name = 0,
00060 Qt::Orientation = Qt::Horizontal,
00061 ScalePos = None, BGSTYLE bgStyle = BgTrough);
00062
00063 virtual void setOrientation(Qt::Orientation);
00064
00068 void setBgStyle(BGSTYLE st) {d_bgStyle = st; layoutSlider();}
00072 BGSTYLE bgStyle() const { return d_bgStyle; }
00073
00077 void setScalePos(ScalePos s) { setScalePosition(s); }
00081 ScalePos scalePos() const { return d_scalePos; }
00082
00083 void setScalePosition(ScalePos s);
00084 ScalePos scalePosition() const;
00085
00089 int thumbLength() const {return d_thumbLength;}
00093 int thumbWidth() const {return d_thumbWidth;}
00097 int borderWidth() const {return d_borderWidth;}
00098
00099 void setThumbLength(int l);
00100 void setThumbWidth(int w);
00101 void setBorderWidth(int bw);
00102 void setMargins(int x, int y);
00103
00104 virtual QSize sizeHint() const;
00105 virtual QSize minimumSizeHint() const;
00106 virtual QSizePolicy sizePolicy() const;
00107
00108 protected:
00109 virtual double getValue(const QPoint &p);
00110 virtual void getScrollMode(const QPoint &p,
00111 int &scrollMode, int &direction);
00112
00113 void draw(QPainter *p, const QRect& update_rect);
00114 virtual void drawSlider (QPainter *p, const QRect &r);
00115 virtual void drawThumb(QPainter *p, const QRect &, int pos);
00116
00117 virtual void resizeEvent(QResizeEvent *e);
00118 virtual void paintEvent (QPaintEvent *e);
00119
00120 virtual void valueChange();
00121 virtual void rangeChange();
00122 virtual void scaleChange();
00123 virtual void fontChange(const QFont &oldFont);
00124
00125 void layoutSlider( bool update = TRUE );
00126 int xyPosition(double v) const;
00127
00128 private:
00129 QRect d_sliderRect;
00130
00131 int d_thumbLength;
00132 int d_thumbWidth;
00133 int d_borderWidth;
00134 int d_scaleDist;
00135 int d_xMargin;
00136 int d_yMargin;
00137
00138 ScalePos d_scalePos;
00139 BGSTYLE d_bgStyle;
00140 };
00141
00142 #endif
00143
00144
00145
00146
00147
00148