00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_SCALE_WIDGET_H
00011 #define QWT_SCALE_WIDGET_H
00012
00013 #include <qwidget.h>
00014 #include <qfont.h>
00015 #include <qcolor.h>
00016 #include <qstring.h>
00017
00018 #include "qwt_global.h"
00019 #include "qwt_scale_draw.h"
00020
00021 class QPainter;
00022 class QwtScaleTransformation;
00023 class QwtScaleDiv;
00024 class QwtText;
00025
00033 class QWT_EXPORT QwtScaleWidget : public QWidget
00034 {
00035 Q_OBJECT
00036 Q_ENUMS(Position)
00037 Q_PROPERTY( Position position READ position WRITE setPosition )
00038 Q_PROPERTY( QString title READ title WRITE setTitle )
00039 Q_PROPERTY( QFont titleFont READ titleFont WRITE setTitleFont )
00040 Q_PROPERTY( QColor titleColor READ titleColor WRITE setTitleColor )
00041
00042 public:
00048 enum Position { Left, Right, Top, Bottom };
00049
00050 explicit QwtScaleWidget(QWidget *parent = NULL);
00051 explicit QwtScaleWidget(Position, QWidget *parent = NULL);
00052 virtual ~QwtScaleWidget();
00053
00054 void setTitle(const QString &title);
00055 const QString title() const;
00056
00057 void setTitleColor(const QColor &c);
00058 const QColor titleColor() const;
00059
00060 void setTitleFont(const QFont &f);
00061 const QFont titleFont() const;
00062
00063 void setTitleFlags(int flags);
00064 int titleFlags() const;
00065
00066 void setBorderDist(int start, int end);
00067 int startBorderDist() const;
00068 int endBorderDist() const;
00069 void minBorderDist(int &start, int &end) const;
00070
00071 void setBaselineDist(int bd);
00072 int baseLineDist() const;
00073
00074 void setTitleDist(int td);
00075 int titleDist() const;
00076
00077 void setScaleDiv(const QwtScaleTransformation&, const QwtScaleDiv &sd);
00078 void setScaleDraw(QwtScaleDraw *);
00079 const QwtScaleDraw *scaleDraw() const;
00080
00081 void setLabelFormat(char f, int prec, int fieldWidth);
00082 void labelFormat(char &f, int &prec, int &fieldWidth) const;
00083
00084 void setLabelFlags(int flags);
00085 void setLabelRotation(double rotation);
00086
00087 virtual QSize sizeHint() const;
00088 virtual QSize minimumSizeHint() const;
00089
00090 int titleHeightForWidth(int width) const;
00091 int dimForLength(int length, const QFont &scaleFont) const;
00092
00093 void drawTitle(QPainter *painter, QwtScaleDraw::Orientation o,
00094 const QRect &rect) const;
00095
00096 void setPosition(Position o);
00097 Position position() const;
00098
00099 protected:
00100 void draw(QPainter *p) const;
00101 void paintEvent(QPaintEvent *e);
00102 void resizeEvent(QResizeEvent *e);
00103 void scaleChange();
00104 void fontChange(const QFont &oldfont);
00105 void layoutScale( bool update = true );
00106
00107 private:
00108 void initScale(Position);
00109
00110 class PrivateData;
00111 PrivateData *d_data;
00112 };
00113
00114 #endif