00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_DIAL_ITEM_H
00011 #define QWT_DIAL_ITEM_H 1
00012
00013 #include <qpalette.h>
00014 #include "qwt_global.h"
00015
00016 class QPainter;
00017 class QPoint;
00018
00019 class QWT_EXPORT QwtDialNeedle
00020 {
00021 public:
00022 QwtDialNeedle();
00023 virtual ~QwtDialNeedle();
00024
00025 virtual void draw(QPainter *, const QPoint &, int length,
00026 double direction, QPalette::ColorGroup = QPalette::Active) const = 0;
00027
00028 virtual void setPalette(const QPalette &);
00029 const QPalette &palette() const;
00030
00031 protected:
00032 const QColorGroup &colorGroup(QPalette::ColorGroup) const;
00033
00034 private:
00035 QPalette d_palette;
00036 };
00037
00038 class QWT_EXPORT QwtCompassMagnetNeedle: public QwtDialNeedle
00039 {
00040 public:
00041 QwtCompassMagnetNeedle(const QColor &light = Qt::white,
00042 const QColor &dark = Qt::red);
00043
00044 virtual void draw(QPainter *, const QPoint &, int length,
00045 double direction, QPalette::ColorGroup = QPalette::Active) const;
00046
00047 static void drawNeedle(QPainter *, const QPoint &,
00048 int length, double direction,
00049 const QColor &light, const QColor &dark);
00050 };
00051
00052 class QWT_EXPORT QwtCompassNeedle1: public QwtDialNeedle
00053 {
00054 public:
00055 QwtCompassNeedle1(const QColor &mid = Qt::black);
00056
00057 virtual void draw(QPainter *, const QPoint &, int length,
00058 double direction, QPalette::ColorGroup = QPalette::Active) const;
00059
00060 static void drawNeedle(QPainter *, const QPoint &,
00061 int length, double direction, const QColor &);
00062 };
00063
00064 class QWT_EXPORT QwtCompassNeedle2: public QwtDialNeedle
00065 {
00066 public:
00067 QwtCompassNeedle2(const QColor &light = Qt::gray, const QColor &mid = Qt::black);
00068
00069 virtual void draw(QPainter *, const QPoint &, int length,
00070 double direction, QPalette::ColorGroup = QPalette::Active) const;
00071
00072 static void drawNeedle(QPainter *, const QPoint &,
00073 int length, double direction, const QColor &, const QColor &);
00074 };
00075
00076 class QWT_EXPORT QwtCompassNeedle3: public QwtDialNeedle
00077 {
00078 public:
00079 QwtCompassNeedle3(const QColor &base = Qt::black, const QColor &mid = Qt::black);
00080
00081 virtual void draw(QPainter *, const QPoint &, int length,
00082 double direction, QPalette::ColorGroup = QPalette::Active) const;
00083
00084 static void drawNeedle(QPainter *, const QPoint &,
00085 int length, double direction, const QColor &, const QColor &);
00086 };
00087
00088 class QWT_EXPORT QwtCompassNeedle4: public QwtDialNeedle
00089 {
00090 public:
00091 QwtCompassNeedle4(const QColor &light = Qt::white,
00092 const QColor &dark = Qt::red, const QColor &mid = Qt::gray);
00093
00094 virtual void draw(QPainter *, const QPoint &, int length,
00095 double direction, QPalette::ColorGroup = QPalette::Active) const;
00096
00097 static void drawNeedle(QPainter *, const QPoint &,
00098 int length, double direction,
00099 const QColor &, const QColor &, const QColor &);
00100
00101 protected:
00102 static void drawPointer(QPainter *painter, const QColor &color,
00103 int colorOffset, const QPoint ¢er,
00104 int length, int width, double direction);
00105
00106 };
00107
00108 class QWT_EXPORT QwtCompassLineNeedle: public QwtDialNeedle
00109 {
00110 public:
00111 QwtCompassLineNeedle(const QColor &foreground = Qt::black);
00112
00113 virtual void draw(QPainter *, const QPoint &, int length,
00114 double direction, QPalette::ColorGroup = QPalette::Active) const;
00115
00116 static void drawNeedle(QPainter *, const QPoint &,
00117 int length, double direction, const QColor &);
00118 };
00119
00120 #endif // QWT_DIAL_ITEM_H