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
00031 class QWT_EXPORT QwtDialNeedle
00032 {
00033
public:
00034 QwtDialNeedle();
00035
virtual ~QwtDialNeedle();
00036
00046
virtual void draw(QPainter *painter,
const QPoint ¢er,
00047
int length,
double direction,
00048 QPalette::ColorGroup cg = QPalette::Active)
const = 0;
00049
00050
virtual void setPalette(
const QPalette &);
00051
const QPalette &palette()
const;
00052
00053
protected:
00054
const QColorGroup &colorGroup(QPalette::ColorGroup)
const;
00055
static void drawKnob(QPainter *,
const QPoint &pos,
00056
int width,
const QBrush &,
bool sunken);
00057
00058
private:
00059 QPalette d_palette;
00060 };
00061
00074 class QWT_EXPORT QwtDialSimpleNeedle:
public QwtDialNeedle
00075 {
00076
public:
00077
enum Style
00078 {
00079 Arrow,
00080 Ray
00081 };
00082
00083 QwtDialSimpleNeedle(Style,
bool hasKnob = TRUE,
00084
const QColor &mid = Qt::gray,
const QColor &base = Qt::darkGray);
00085
00086
virtual void draw(QPainter *,
const QPoint &,
int length,
00087
double direction, QPalette::ColorGroup = QPalette::Active)
const;
00088
00089
static void drawArrowNeedle(QPainter *,
const QColorGroup &,
00090
const QPoint &,
int length,
int width,
double direction,
00091
bool hasKnob);
00092
00093
static void drawRayNeedle(QPainter *,
const QColorGroup &,
00094
const QPoint &,
int length,
int width,
double direction,
00095
bool hasKnob);
00096
00097
void setWidth(
int width);
00098
int width()
const;
00099
00100
private:
00101 Style d_style;
00102
bool d_hasKnob;
00103
int d_width;
00104 };
00105
00123 class QWT_EXPORT QwtCompassMagnetNeedle:
public QwtDialNeedle
00124 {
00125
public:
00126
enum Style
00127 {
00128 TriangleStyle,
00129 ThinStyle
00130 };
00131 QwtCompassMagnetNeedle(Style = TriangleStyle,
00132
const QColor &light = Qt::white,
const QColor &dark = Qt::red);
00133
00134
virtual void draw(QPainter *,
const QPoint &,
int length,
00135
double direction, QPalette::ColorGroup = QPalette::Active)
const;
00136
00137
static void drawTriangleNeedle(QPainter *,
const QColorGroup &,
00138
const QPoint &,
int length,
double direction);
00139
00140
static void drawThinNeedle(QPainter *,
const QColorGroup &,
00141
const QPoint &,
int length,
double direction);
00142
00143
protected:
00144
static void drawPointer(QPainter *painter,
const QBrush &brush,
00145
int colorOffset,
const QPoint ¢er,
00146
int length,
int width,
double direction);
00147
00148
private:
00149 Style d_style;
00150 };
00151
00165 class QWT_EXPORT QwtCompassWindArrow:
public QwtDialNeedle
00166 {
00167
public:
00168
enum Style
00169 {
00170 Style1,
00171 Style2
00172 };
00173
00174 QwtCompassWindArrow(Style,
const QColor &light = Qt::white,
00175
const QColor &dark = Qt::gray);
00176
00177
virtual void draw(QPainter *,
const QPoint &,
int length,
00178
double direction, QPalette::ColorGroup = QPalette::Active)
const;
00179
00180
static void drawStyle1Needle(QPainter *,
const QColorGroup &,
00181
const QPoint &,
int length,
double direction);
00182
00183
static void drawStyle2Needle(QPainter *,
const QColorGroup &,
00184
const QPoint &,
int length,
double direction);
00185
00186
private:
00187 Style d_style;
00188 };
00189
#endif // QWT_DIAL_ITEM_H