4 #include <QGraphicsWidget>
5 #include <QGraphicsItem>
16 #define SCROLL_UP 0x11
17 #define SCROLL_RIGHT 0x12
18 #define SCROLL_DOWN 0x13
19 #define SCROLL_LEFT 0x14
21 class Gauge : public QGraphicsWidget
24 Q_PROPERTY(QString name READ name WRITE setName)
25 Q_PROPERTY(QString format READ format WRITE setFormat)
26 Q_PROPERTY(QString options READ options WRITE setOptions)
27 Q_PROPERTY(QFont font READ getFont WRITE setFont)
28 Q_PROPERTY(QColor color READ getColor WRITE setColor)
29 Q_PROPERTY(QColor backColor READ getBackColor WRITE setBackColor)
30 Q_PROPERTY(QColor borderColor READ getBorderColor WRITE setBorderColor)
31 Q_PROPERTY(int gaugeStyle READ gaugeStyle WRITE setGaugeStyle)
32 Q_PROPERTY(float value2 READ value2 WRITE setValue2)
33 Q_PROPERTY(float value READ value WRITE setValue)
34 Q_PROPERTY(float displayScale READ displayScale WRITE setDisplayScale)
35 Q_PROPERTY(float low READ low WRITE setLow)
36 Q_PROPERTY(float high READ high WRITE setHigh)
37 Q_PROPERTY(float lowRed READ lowRed WRITE setLowRed)
38 Q_PROPERTY(float highRed READ highRed WRITE setHighRed)
39 Q_PROPERTY(float tickIncrement READ tickIncrement WRITE setTickIncrement)
40 Q_PROPERTY(float tickSpacing READ tickSpacing WRITE setTickSpacing)
41 Q_PROPERTY(float tickLength READ tickLength WRITE setTickLength)
42 Q_PROPERTY(float lineWidth READ lineWidth WRITE setLineWidth)
43 Q_PROPERTY(float lowPosition READ lowPosition WRITE setLowPosition)
44 Q_PROPERTY(float highPosition READ highPosition WRITE setHighPosition)
45 Q_PROPERTY(int tickMinor READ tickMinor WRITE setTickMinor)
46 Q_PROPERTY(QImage* needleImage READ needleImage WRITE setNeedleImage )
49 explicit Gauge(QGraphicsItem *parent = 0);
51 virtual void paint(QPainter *painter,const QStyleOptionGraphicsItem *option,
54 QRectF boundingRect() const;
56 bool testOption(QString a);
61 QImage *needleImage() { return m_needleImage; }
62 void setNeedleImage(QImage *needle) { m_needleImage=needle ;};
64 QString name() const { return m_name;};
65 void setName(const QString &name_) {m_name=name_;propChanged();}
66 QString options() const { return m_options;};
67 void setOptions(const QString &options_) {m_options=options_;propChanged();}
68 QString format() const { return m_format;};
69 void setFormat(const QString &name_) {m_format=name_;propChanged();}
70 void setGaugeStyle(int val_) { m_style=val_;propChanged();};
71 int gaugeStyle() {return m_style;};
72 void setValue(float val_);
74 void setValue2(float val_);
76 void setDisplayScale(float val_) { m_scale=val_;update(boundingRect());};
77 float displayScale() {return m_scale;};
78 void setLow(float val_) { m_low=val_;propChanged();};
79 float low() {return m_low;};
80 void setHigh(float val_) { m_high=val_;propChanged();};
81 float high() {return m_high;};
82 void setLowRed(float val_) { m_lowred=val_;propChanged();};
83 float lowRed() {return m_lowred;};
84 void setHighRed(float val_) { m_highred=val_;propChanged();};
85 float highRed() {return m_highred;};
86 void setTickIncrement(float val_) { m_tickIncrement=val_;propChanged();};
87 float tickIncrement() {return m_tickIncrement;};
88 void setTickSpacing(float val_) { m_tickSpacing=val_;propChanged();};
89 float tickSpacing() {return m_tickSpacing;};
91 void setTickLength(float val_) { m_tickLength=val_;propChanged();};
92 float tickLength() {return m_tickLength;};
93 void setLineWidth(float val_) { m_lineWidth=val_;propChanged();};
94 float lineWidth() {return m_lineWidth;};
95 float lowPosition() {return m_lowPosition;};
96 void setLowPosition(float val_) { m_lowPosition=val_;propChanged();};
97 float highPosition() {return m_highPosition;};
98 void setHighPosition(float val_) { m_highPosition=val_;propChanged();};
100 void setTickMinor(int val_) { m_tickMinor=val_;propChanged();};
101 float tickMinor() {return m_tickMinor;};
103 void setFont(QFont val_) { m_font=val_;propChanged();};
104 QFont getFont() {return m_font;};
105 void setColor(QColor val_) { m_color=val_;propChanged();};
106 QColor getColor() {return m_color;};
107 void setBackColor(QColor val_) { m_backColor=val_;propChanged();};
108 QColor getBackColor() {return m_backColor;};
109 void setBorderColor(QColor val_) { m_borderColor=val_;propChanged();};
110 QColor getBorderColor() {return m_borderColor;};
117 QString m_options; // Free format options string
118 int m_tickIncrement; // Tick increment
119 int m_tickSpacing; // Tick spacing
120 int m_tickMinor; // Ninor, non labeled ticks
123 float m_value; // primary value,pitch in horizon
124 float m_value2; // Roll in horizon
125 float m_low; // low value to display
126 float m_high; // High value to display
127 float m_lowred; // low red limit
128 float m_lowyellow; // low yellow limit
129 float m_highyellow; // higest yellow limit
132 float m_highPosition;
139 QColor m_borderColor;
140 QImage *m_needleImage;