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_abstract_scale.h"
00017 #include "qwt_abstract_slider.h"
00018
00029 class QWT_EXPORT QwtSlider : public QwtAbstractSlider, public QwtAbstractScale
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 explicit QwtSlider(QWidget *parent,
00060 Qt::Orientation = Qt::Horizontal,
00061 ScalePos = None, BGSTYLE bgStyle = BgTrough);
00062
00063 virtual ~QwtSlider();
00064
00065 virtual void setOrientation(Qt::Orientation);
00066
00067 void setBgStyle(BGSTYLE);
00068 BGSTYLE bgStyle() const;
00069
00070 void setScalePosition(ScalePos s);
00071 ScalePos scalePosition() const;
00072
00073 int thumbLength() const;
00074 int thumbWidth() const;
00075 int borderWidth() const;
00076
00077 void setThumbLength(int l);
00078 void setThumbWidth(int w);
00079 void setBorderWidth(int bw);
00080 void setMargins(int x, int y);
00081
00082 virtual QSize sizeHint() const;
00083 virtual QSize minimumSizeHint() const;
00084
00085 protected:
00086 virtual double getValue(const QPoint &p);
00087 virtual void getScrollMode(const QPoint &p,
00088 int &scrollMode, int &direction);
00089
00090 void draw(QPainter *p, const QRect& update_rect);
00091 virtual void drawSlider (QPainter *p, const QRect &r);
00092 virtual void drawThumb(QPainter *p, const QRect &, int pos);
00093
00094 virtual void resizeEvent(QResizeEvent *e);
00095 virtual void paintEvent (QPaintEvent *e);
00096
00097 virtual void valueChange();
00098 virtual void rangeChange();
00099 virtual void scaleChange();
00100 virtual void fontChange(const QFont &oldFont);
00101
00102 void layoutSlider( bool update = true );
00103 int xyPosition(double v) const;
00104
00105 private:
00106 class PrivateData;
00107 PrivateData *d_data;
00108 };
00109
00110 #endif