00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_SCALE_H
00011 #define QWT_SCALE_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_scldiv.h"
00020 #include "qwt_scldraw.h"
00021
00022 class QPainter;
00023
00031 class QWT_EXPORT QwtScale : public QWidget
00032 {
00033 Q_OBJECT
00034 Q_ENUMS(Position)
00035 Q_PROPERTY( Position position READ position WRITE setPosition )
00036 Q_PROPERTY( QString title READ title WRITE setTitle )
00037 Q_PROPERTY( QFont titleFont READ titleFont WRITE setTitleFont )
00038 Q_PROPERTY( QColor titleColor READ titleColor WRITE setTitleColor )
00039
00040 public:
00046 enum Position { Left, Right, Top, Bottom };
00047
00048 QwtScale(Position, QWidget *parent, const char *name = 0);
00049 virtual ~QwtScale();
00050
00051 void setTitle(const QString &title);
00052 const QString& title() const;
00053
00054 void setTitleColor(const QColor &c);
00055 const QColor &titleColor() const;
00056
00057 void setTitleFont(const QFont &f);
00058 const QFont &titleFont() const;
00059
00060 void setTitleAlignment(int flags);
00061 int titleAlignment() const;
00062
00063 void setBorderDist(int start, int end);
00064 int startBorderDist() const;
00065 int endBorderDist() const;
00066 void minBorderDist(int &start, int &end) const;
00067
00068 void setBaselineDist(int bd);
00069 int baseLineDist() const;
00070
00071 void setScaleDiv(const QwtScaleDiv &sd);
00072 void setScaleDraw(QwtScaleDraw *);
00073 const QwtScaleDraw *scaleDraw() const;
00074
00075 void setLabelFormat(char f, int prec, int fieldWidth);
00076 void labelFormat(char &f, int &prec, int &fieldWidth) const;
00077
00078 void setLabelAlignment(int align);
00079 void setLabelRotation(double rotation);
00080
00081 virtual QSize sizeHint() const;
00082 virtual QSize minimumSizeHint() const;
00083 virtual QSizePolicy sizePolicy() const;
00084
00085 int dimForLength(int length,
00086 const QFontMetrics &titleFontMetrics,
00087 const QFontMetrics &scaleFontMetrics ) const;
00088
00089 static void drawTitle(QPainter *, QwtScaleDraw::Orientation o,
00090 const QRect &, int align, const QString &);
00091
00092 void setPosition(Position o);
00093 Position position() const;
00094
00095 protected:
00096 void draw(QPainter *p) const;
00097 void paintEvent(QPaintEvent *e);
00098 void resizeEvent(QResizeEvent *e);
00099 void scaleChange();
00100 void fontChange(const QFont &oldfont);
00101 void layoutScale( bool update = TRUE );
00102
00103 private:
00104 QwtScaleDraw *d_scaleDraw;
00105
00106 int d_borderDist[2];
00107 int d_scaleLength;
00108 int d_baseDist;
00109
00110 int d_titleOffset;
00111 QString d_title;
00112 int d_titleDist;
00113 QFont d_titleFont;
00114 QColor d_titleColor;
00115 int d_titleAlign;
00116 };
00117
00118 #endif