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_text.h"
00020 #include "qwt_scale_draw.h"
00021
00022 class QPainter;
00023 class QwtScaleTransformation;
00024 class QwtScaleDiv;
00025
00033 class QWT_EXPORT QwtScaleWidget : public QWidget
00034 {
00035 Q_OBJECT
00036
00037 public:
00038 explicit QwtScaleWidget(QWidget *parent = NULL);
00039 explicit QwtScaleWidget(QwtScaleDraw::Alignment, QWidget *parent = NULL);
00040 virtual ~QwtScaleWidget();
00041
00042 void setTitle(const QString &title);
00043 void setTitle(const QwtText &title);
00044 QwtText title() const;
00045
00046 void setBorderDist(int start, int end);
00047 int startBorderDist() const;
00048 int endBorderDist() const;
00049
00050 void getBorderDistHint(int &start, int &end) const;
00051
00052 void getMinBorderDist(int &start, int &end) const;
00053 void setMinBorderDist(int start, int end);
00054
00055 void setBaselineDist(int bd);
00056 int baseLineDist() const;
00057
00058 void setTitleDist(int td);
00059 int titleDist() const;
00060
00061 void setScaleDiv(const QwtScaleTransformation&, const QwtScaleDiv &sd);
00062 void setScaleDraw(QwtScaleDraw *);
00063 const QwtScaleDraw *scaleDraw() const;
00064 QwtScaleDraw *scaleDraw();
00065
00066 #if QT_VERSION < 0x040000
00067 void setLabelAlignment(int);
00068 #else
00069 void setLabelAlignment(Qt::Alignment);
00070 #endif
00071 void setLabelRotation(double rotation);
00072
00073 virtual QSize sizeHint() const;
00074 virtual QSize minimumSizeHint() const;
00075
00076 int titleHeightForWidth(int width) const;
00077 int dimForLength(int length, const QFont &scaleFont) const;
00078
00079 void drawTitle(QPainter *painter, QwtScaleDraw::Alignment,
00080 const QRect &rect) const;
00081
00082 void setAlignment(QwtScaleDraw::Alignment);
00083 QwtScaleDraw::Alignment alignment() const;
00084
00085 protected:
00086 virtual void paintEvent(QPaintEvent *e);
00087 virtual void resizeEvent(QResizeEvent *e);
00088
00089 #if QT_VERSION < 0x040000
00090 virtual void fontChange(const QFont &oldfont);
00091 #endif
00092
00093 void draw(QPainter *p) const;
00094
00095 void scaleChange();
00096 void layoutScale( bool update = true );
00097
00098 private:
00099 void initScale(QwtScaleDraw::Alignment);
00100
00101 class PrivateData;
00102 PrivateData *d_data;
00103 };
00104
00105 #endif