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 class QwtColorMap;
00026
00034 class QWT_EXPORT QwtScaleWidget : public QWidget
00035 {
00036 Q_OBJECT
00037
00038 public:
00039 explicit QwtScaleWidget(QWidget *parent = NULL);
00040 #if QT_VERSION < 0x040000
00041 explicit QwtScaleWidget(QWidget *parent, const char *name);
00042 #endif
00043 explicit QwtScaleWidget(QwtScaleDraw::Alignment, QWidget *parent = NULL);
00044 virtual ~QwtScaleWidget();
00045
00046 signals:
00048 void scaleDivChanged();
00049
00050 public:
00051 void setTitle(const QString &title);
00052 void setTitle(const QwtText &title);
00053 QwtText title() const;
00054
00055 void setBorderDist(int start, int end);
00056 int startBorderDist() const;
00057 int endBorderDist() const;
00058
00059 void getBorderDistHint(int &start, int &end) const;
00060
00061 void getMinBorderDist(int &start, int &end) const;
00062 void setMinBorderDist(int start, int end);
00063
00064 void setMargin(int);
00065 int margin() const;
00066
00067 void setSpacing(int td);
00068 int spacing() const;
00069
00070 void setPenWidth(int);
00071 int penWidth() const;
00072
00073 void setScaleDiv(QwtScaleTransformation *, const QwtScaleDiv &sd);
00074
00075 void setScaleDraw(QwtScaleDraw *);
00076 const QwtScaleDraw *scaleDraw() const;
00077 QwtScaleDraw *scaleDraw();
00078
00079 #if QT_VERSION < 0x040000
00080 void setLabelAlignment(int);
00081 #else
00082 void setLabelAlignment(Qt::Alignment);
00083 #endif
00084 void setLabelRotation(double rotation);
00085
00086 void setColorBarEnabled(bool);
00087 bool isColorBarEnabled() const;
00088
00089 void setColorBarWidth(int);
00090 int colorBarWidth() const;
00091
00092 void setColorMap(const QwtDoubleInterval &, const QwtColorMap &);
00093
00094 QwtDoubleInterval colorBarInterval() const;
00095 const QwtColorMap &colorMap() const;
00096
00097 virtual QSize sizeHint() const;
00098 virtual QSize minimumSizeHint() const;
00099
00100 int titleHeightForWidth(int width) const;
00101 int dimForLength(int length, const QFont &scaleFont) const;
00102
00103 void drawColorBar(QPainter *painter, const QRect &rect) const;
00104 void drawTitle(QPainter *painter, QwtScaleDraw::Alignment,
00105 const QRect &rect) const;
00106
00107 void setAlignment(QwtScaleDraw::Alignment);
00108 QwtScaleDraw::Alignment alignment() const;
00109
00110 QRect colorBarRect(const QRect&) const;
00111
00112 protected:
00113 virtual void paintEvent(QPaintEvent *e);
00114 virtual void resizeEvent(QResizeEvent *e);
00115
00116 #if QT_VERSION < 0x040000
00117 virtual void fontChange(const QFont &oldfont);
00118 #endif
00119
00120 void draw(QPainter *p) const;
00121
00122 void scaleChange();
00123 void layoutScale( bool update = true );
00124
00125 private:
00126 void initScale(QwtScaleDraw::Alignment);
00127
00128 class PrivateData;
00129 PrivateData *d_data;
00130 };
00131
00132 #endif