00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_COMPASS_ROSE_H
00011 #define QWT_COMPASS_ROSE_H 1
00012
00013 #include <qpalette.h>
00014 #include "qwt_global.h"
00015
00016 class QPainter;
00017
00021 class QWT_EXPORT QwtCompassRose
00022 {
00023 public:
00024 virtual ~QwtCompassRose() {};
00025
00026 virtual void setPalette(const QPalette &p) { d_palette = p; }
00027 const QPalette &palette() const { return d_palette; }
00028
00038 virtual void draw(QPainter *painter, const QPoint ¢er,
00039 int radius, double north,
00040 QPalette::ColorGroup colorGroup = QPalette::Active) const = 0;
00041
00042 private:
00043 QPalette d_palette;
00044 };
00045
00049 class QWT_EXPORT QwtSimpleCompassRose: public QwtCompassRose
00050 {
00051 public:
00052 QwtSimpleCompassRose(int numThorns = 8, int numThornLevels = -1);
00053
00054 void setWidth(double w);
00055 double width() const { return d_width; }
00056
00057 void setNumThorns(int count);
00058 int numThorns() const;
00059
00060 void setNumThornLevels(int count);
00061 int numThornLevels() const;
00062
00063 void setShrinkFactor(double factor) { d_shrinkFactor = factor; }
00064 double shrinkFactor() const { return d_shrinkFactor; }
00065
00066 virtual void draw(QPainter *, const QPoint ¢er, int radius,
00067 double north, QPalette::ColorGroup = QPalette::Active) const;
00068
00069 static void drawRose(QPainter *,
00070 #if QT_VERSION < 0x040000
00071 const QColorGroup &,
00072 #else
00073 const QPalette &,
00074 #endif
00075 const QPoint ¢er, int radius, double origin, double width,
00076 int numThorns, int numThornLevels, double shrinkFactor);
00077
00078 private:
00079 double d_width;
00080 int d_numThorns;
00081 int d_numThornLevels;
00082 double d_shrinkFactor;
00083 };
00084
00085 #endif // QWT_COMPASS_ROSE_H