0.2 version add desktop components multitouch, joystick, multicast
[mardrone] / mardrone / gauges / gauge.h
1 #ifndef GAUGEBAND_H
2 #define GAUGEBAND_H
3
4 #include <QGraphicsWidget>
5 #include <QGraphicsItem>
6 #include <QPainter>
7
8 #define UP 1
9 #define RIGHT 2
10 #define DOWN 3
11 #define LEFT 4
12
13 #define SCROLL 0x10
14 #define SCROLL_UP 0x11
15 #define SCROLL_RIGHT 0x12
16 #define SCROLL_DOWN 0x13
17 #define SCROLL_LEFT 0x14
18
19 class Gauge : public QGraphicsWidget
20 {
21     Q_OBJECT
22     Q_PROPERTY(QString name READ name WRITE setName)
23     Q_PROPERTY(QString format READ format WRITE setFormat)
24     Q_PROPERTY(QFont font READ getFont WRITE setFont)
25     Q_PROPERTY(QColor color READ getColor WRITE setColor)
26     Q_PROPERTY(QColor backColor READ getBackColor WRITE setBackColor)
27     Q_PROPERTY(QColor borderColor READ getBorderColor WRITE setBorderColor)
28     Q_PROPERTY(int gaugeStyle READ gaugeStyle WRITE setGaugeStyle)
29     Q_PROPERTY(float value2 READ value2 WRITE setValue2)
30     Q_PROPERTY(float value READ value WRITE setValue)
31     Q_PROPERTY(float displayScale READ displayScale WRITE setDisplayScale)
32     Q_PROPERTY(float low READ low WRITE setLow)
33     Q_PROPERTY(float high READ high WRITE setHigh)
34     Q_PROPERTY(float lowRed READ lowRed WRITE setLowRed)
35     Q_PROPERTY(float highRed READ highRed WRITE setHighRed)
36     Q_PROPERTY(float tickIncrement READ tickIncrement WRITE setTickIncrement)
37     Q_PROPERTY(float tickSpacing READ tickSpacing WRITE setTickSpacing)
38     Q_PROPERTY(int   tickMinor READ tickMinor WRITE setTickMinor)
39
40 public:
41     explicit Gauge(QGraphicsItem *parent = 0);
42
43     virtual void paint(QPainter *painter,const QStyleOptionGraphicsItem *option,
44                                QWidget *widget);
45
46     QRectF boundingRect() const;
47
48     QString name() const { return m_name;};
49     void setName(const QString &name_) {m_name=name_;}
50     QString format() const { return m_format;};
51     void setFormat(const QString &name_) {m_format=name_;}
52     void setGaugeStyle(int val_) { m_style=val_;};
53     int  gaugeStyle() {return m_style;};
54     void setValue(float val_);
55     float value();
56     void setValue2(float val_);
57     float value2();
58     void setDisplayScale(float val_) { m_scale=val_;update(boundingRect());};
59     float displayScale() {return m_scale;};
60     void setLow(float val_) { m_low=val_;};
61     float low() {return m_low;};
62     void setHigh(float val_) { m_high=val_;};
63     float high() {return m_high;};
64     void setLowRed(float val_) { m_lowred=val_;};
65     float lowRed() {return m_lowred;};
66     void setHighRed(float val_) { m_highred=val_;};
67     float highRed() {return m_highred;};
68     void setTickIncrement(float val_) { m_tickIncrement=val_;};
69     float tickIncrement() {return m_tickIncrement;};
70     void setTickSpacing(float val_) { m_tickSpacing=val_;};
71     float tickSpacing() {return m_tickSpacing;};
72     void setTickMinor(int val_) { m_tickMinor=val_;};
73     float tickMinor() {return m_tickMinor;};
74
75     void setFont(QFont val_) { m_font=val_;};
76     QFont getFont() {return m_font;};
77     void setColor(QColor val_) { m_color=val_;};
78     QColor getColor() {return m_color;};
79     void setBackColor(QColor val_) { m_backColor=val_;};
80     QColor getBackColor() {return m_backColor;};
81     void setBorderColor(QColor val_) { m_borderColor=val_;};
82     QColor getBorderColor() {return m_borderColor;};
83 signals:
84
85 public slots:
86 public:
87     QString m_name;
88     QString m_format;
89     int   m_tickIncrement;  // Tick increment
90     int   m_tickSpacing;    // Tick spacing
91     int   m_tickMinor;      // Ninor, non labeled ticks
92     int   m_style;
93     float m_scale;
94     float m_value;  // primary value,pitch in horizon
95     float m_value2; // Roll in horizon
96     float m_low;        // low value to display
97     float m_high;       // High value to display
98     float m_lowred;     // low red limit
99     float m_lowyellow;  // low yellow limit
100     float m_highyellow; // higest yellow limit
101     float m_highred;
102     int m_textSize;
103     QFont m_font;
104     QColor m_color;
105     QColor m_backColor;
106     QColor m_borderColor;
107 };
108
109 #endif // GAUGE_H