Qwt User's Guide: qwt_slider.h Source File

Qwt User's Guide 5.2.3

- Main Page
- Related Pages
- Classes

qwt_slider.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2 * Qwt Widget Library
3 * Copyright (C) 1997 Josef Wilgen
4 * Copyright (C) 2002 Uwe Rathmann
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the Qwt License, Version 1.0
8 *****************************************************************************/
9
10 // vim: expandtab
11
12 #ifndef QWT_SLIDER_H
13 #define QWT_SLIDER_H
14
15 #include "qwt_global.h"
16 #include "qwt_abstract_scale.h"
17 #include "qwt_abstract_slider.h"
18
19 class QwtScaleDraw;
20
34 class QWT_EXPORT QwtSlider : public QwtAbstractSlider, public QwtAbstractScale
35 {
36 Q_OBJECT
37 Q_ENUMS( ScalePos )
38 Q_ENUMS( BGSTYLE )
39 Q_PROPERTY( ScalePos scalePosition READ scalePosition
40 WRITE setScalePosition )
41 Q_PROPERTY( BGSTYLE bgStyle READ bgStyle WRITE setBgStyle )
42 Q_PROPERTY( int thumbLength READ thumbLength WRITE setThumbLength )
43 Q_PROPERTY( int thumbWidth READ thumbWidth WRITE setThumbWidth )
44 Q_PROPERTY( int borderWidth READ borderWidth WRITE setBorderWidth )
45
46 public:
47
56 enum ScalePos
57 {
58 NoScale,
59
60 LeftScale,
61 RightScale,
62 TopScale,
63 BottomScale
64 };
65
70 enum BGSTYLE
71 {
72 BgTrough = 0x1,
73 BgSlot = 0x2,
74 BgBoth = BgTrough | BgSlot
75 };
76
77 explicit QwtSlider(QWidget *parent,
78 Qt::Orientation = Qt::Horizontal,
79 ScalePos = NoScale, BGSTYLE bgStyle = BgTrough);
80 #if QT_VERSION < 0x040000
81 explicit QwtSlider(QWidget *parent, const char *name);
82 #endif
83
84 virtual ~QwtSlider();
85
86 virtual void setOrientation(Qt::Orientation);
87
88 void setBgStyle(BGSTYLE);
89 BGSTYLE bgStyle() const;
90
91 void setScalePosition(ScalePos s);
92 ScalePos scalePosition() const;
93
94 int thumbLength() const;
95 int thumbWidth() const;
96 int borderWidth() const;
97
98 void setThumbLength(int l);
99 void setThumbWidth(int w);
100 void setBorderWidth(int bw);
101 void setMargins(int x, int y);
102
103 virtual QSize sizeHint() const;
104 virtual QSize minimumSizeHint() const;
105
106 void setScaleDraw(QwtScaleDraw *);
107 const QwtScaleDraw *scaleDraw() const;
108
109 protected:
110 virtual double getValue(const QPoint &p);
111 virtual void getScrollMode(const QPoint &p,
112 int &scrollMode, int &direction);
113
114 void draw(QPainter *p, const QRect& update_rect);
115 virtual void drawSlider (QPainter *p, const QRect &r);
116 virtual void drawThumb(QPainter *p, const QRect &, int pos);
117
118 virtual void resizeEvent(QResizeEvent *e);
119 virtual void paintEvent (QPaintEvent *e);
120
121 virtual void valueChange();
122 virtual void rangeChange();
123 virtual void scaleChange();
124 virtual void fontChange(const QFont &oldFont);
125
126 void layoutSlider( bool update = true );
127 int xyPosition(double v) const;
128
129 QwtScaleDraw *scaleDraw();
130
131 private:
132 void initSlider(Qt::Orientation, ScalePos scalePos, BGSTYLE bgStyle);
133
134 class PrivateData;
135 PrivateData *d_data;
136 };
137
138 #endif