00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_ROUND_SCALE_DRAW_H
00011 #define QWT_ROUND_SCALE_DRAW_H
00012
00013 #include <qpoint.h>
00014 #include "qwt_global.h"
00015 #include "qwt_abstract_scale_draw.h"
00016
00017 class QPen;
00018
00032 class QWT_EXPORT QwtRoundScaleDraw: public QwtAbstractScaleDraw
00033 {
00034 public:
00035 QwtRoundScaleDraw();
00036 QwtRoundScaleDraw(const QwtRoundScaleDraw &);
00037
00038 virtual ~QwtRoundScaleDraw();
00039
00040 QwtRoundScaleDraw &operator=(const QwtRoundScaleDraw &other);
00041
00042 void setRadius(int radius);
00043 int radius() const;
00044
00045 void moveCenter(int x, int y);
00046 void moveCenter(const QPoint &);
00047 QPoint center() const;
00048
00049 void setAngleRange(double angle1, double angle2);
00050
00051 virtual int extent(const QPen &, const QFont &) const;
00052
00053 protected:
00054 QPoint labelCenter( const QFont &, double arc, const QwtText &) const;
00055 QSize labelSize(const QFont &, double val) const;
00056 QRect labelRect(const QFont &, double val) const;
00057
00058 virtual void drawTick(QPainter *p, double val, int len) const;
00059 virtual void drawBackbone(QPainter *p) const;
00060 virtual void drawLabel(QPainter *p, double val) const;
00061
00062 private:
00063 class PrivateData;
00064 PrivateData *d_data;
00065 };
00066
00067 inline void QwtRoundScaleDraw::moveCenter(int x, int y)
00068 {
00069 moveCenter(QPoint(x, y));
00070 }
00071
00072 #endif