00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_SCALE_WIDGET_H
00011 #define QWT_SCALE_WIDGET_H
00012
00013 #include "qwt_global.h"
00014 #include "qwt_text.h"
00015 #include "qwt_scale_draw.h"
00016 #include <qwidget.h>
00017 #include <qfont.h>
00018 #include <qcolor.h>
00019 #include <qstring.h>
00020
00021 class QPainter;
00022 class QwtScaleTransformation;
00023 class QwtScaleDiv;
00024 class QwtColorMap;
00025
00033 class QWT_EXPORT QwtScaleWidget : public QWidget
00034 {
00035 Q_OBJECT
00036
00037 public:
00045 enum LayoutFlag
00046 {
00047 TitleInverted = 1
00048 };
00049
00050 explicit QwtScaleWidget(QWidget *parent = NULL);
00051 explicit QwtScaleWidget(QwtScaleDraw::Alignment, QWidget *parent = NULL);
00052 virtual ~QwtScaleWidget();
00053
00054 Q_SIGNALS:
00056 void scaleDivChanged();
00057
00058 public:
00059 void setTitle(const QString &title);
00060 void setTitle(const QwtText &title);
00061 QwtText title() const;
00062
00063 void setLayoutFlag(LayoutFlag, bool on);
00064 bool testLayoutFlag(LayoutFlag) const;
00065
00066 void setBorderDist(int start, int end);
00067 int startBorderDist() const;
00068 int endBorderDist() const;
00069
00070 void getBorderDistHint(int &start, int &end) const;
00071
00072 void getMinBorderDist(int &start, int &end) const;
00073 void setMinBorderDist(int start, int end);
00074
00075 void setMargin(int);
00076 int margin() const;
00077
00078 void setSpacing(int td);
00079 int spacing() const;
00080
00081 void setPenWidth(int);
00082 int penWidth() const;
00083
00084 void setScaleDiv(QwtScaleTransformation *, const QwtScaleDiv &sd);
00085
00086 void setScaleDraw(QwtScaleDraw *);
00087 const QwtScaleDraw *scaleDraw() const;
00088 QwtScaleDraw *scaleDraw();
00089
00090 void setLabelAlignment(Qt::Alignment);
00091 void setLabelRotation(double rotation);
00092
00093 void setColorBarEnabled(bool);
00094 bool isColorBarEnabled() const;
00095
00096 void setColorBarWidth(int);
00097 int colorBarWidth() const;
00098
00099 void setColorMap(const QwtDoubleInterval &, const QwtColorMap &);
00100
00101 QwtDoubleInterval colorBarInterval() const;
00102 const QwtColorMap &colorMap() const;
00103
00104 virtual QSize sizeHint() const;
00105 virtual QSize minimumSizeHint() const;
00106
00107 int titleHeightForWidth(int width) const;
00108 int dimForLength(int length, const QFont &scaleFont) const;
00109
00110 void drawColorBar(QPainter *painter, const QRectF &) const;
00111 void drawTitle(QPainter *painter, QwtScaleDraw::Alignment,
00112 const QRectF &rect) const;
00113
00114 void setAlignment(QwtScaleDraw::Alignment);
00115 QwtScaleDraw::Alignment alignment() const;
00116
00117 QRectF colorBarRect(const QRectF&) const;
00118
00119 protected:
00120 virtual void paintEvent(QPaintEvent *e);
00121 virtual void resizeEvent(QResizeEvent *e);
00122
00123 void draw(QPainter *p) const;
00124
00125 void scaleChange();
00126 void layoutScale( bool update = true );
00127
00128 private:
00129 void initScale(QwtScaleDraw::Alignment);
00130
00131 class PrivateData;
00132 PrivateData *d_data;
00133 };
00134
00135 #endif