Sync repository
[mardrone] / mardrone / gauges / gauge.h
index 6bc10c9..04001fd 100644 (file)
@@ -9,6 +9,8 @@
 #define RIGHT 2
 #define DOWN 3
 #define LEFT 4
+#define COMPASS_UP 5
+
 
 #define SCROLL 0x10
 #define SCROLL_UP 0x11
@@ -21,6 +23,7 @@ class Gauge : public QGraphicsWidget
     Q_OBJECT
     Q_PROPERTY(QString name READ name WRITE setName)
     Q_PROPERTY(QString format READ format WRITE setFormat)
+    Q_PROPERTY(QString options READ options WRITE setOptions)
     Q_PROPERTY(QFont font READ getFont WRITE setFont)
     Q_PROPERTY(QColor color READ getColor WRITE setColor)
     Q_PROPERTY(QColor backColor READ getBackColor WRITE setBackColor)
@@ -35,7 +38,12 @@ class Gauge : public QGraphicsWidget
     Q_PROPERTY(float highRed READ highRed WRITE setHighRed)
     Q_PROPERTY(float tickIncrement READ tickIncrement WRITE setTickIncrement)
     Q_PROPERTY(float tickSpacing READ tickSpacing WRITE setTickSpacing)
+    Q_PROPERTY(float tickLength READ tickLength WRITE setTickLength)
+    Q_PROPERTY(float lineWidth READ lineWidth WRITE setLineWidth)
+    Q_PROPERTY(float lowPosition READ lowPosition WRITE setLowPosition)
+    Q_PROPERTY(float highPosition READ highPosition WRITE setHighPosition)
     Q_PROPERTY(int   tickMinor READ tickMinor WRITE setTickMinor)
+    Q_PROPERTY(QImage* needleImage READ needleImage WRITE setNeedleImage )
 
 public:
     explicit Gauge(QGraphicsItem *parent = 0);
@@ -45,11 +53,21 @@ public:
 
     QRectF boundingRect() const;
 
+    bool testOption(QString a);
+
+    void propChanged();
+
+
+    QImage *needleImage() { return m_needleImage; }
+    void setNeedleImage(QImage *needle) { m_needleImage=needle ;};
+
     QString name() const { return m_name;};
-    void setName(const QString &name_) {m_name=name_;}
+    void setName(const QString &name_) {m_name=name_;propChanged();}
+    QString options() const { return m_options;};
+    void setOptions(const QString &options_) {m_options=options_;propChanged();}
     QString format() const { return m_format;};
-    void setFormat(const QString &name_) {m_format=name_;}
-    void setGaugeStyle(int val_) { m_style=val_;};
+    void setFormat(const QString &name_) {m_format=name_;propChanged();}
+    void setGaugeStyle(int val_) { m_style=val_;propChanged();};
     int  gaugeStyle() {return m_style;};
     void setValue(float val_);
     float value();
@@ -57,28 +75,38 @@ public:
     float value2();
     void setDisplayScale(float val_) { m_scale=val_;update(boundingRect());};
     float displayScale() {return m_scale;};
-    void setLow(float val_) { m_low=val_;};
+    void setLow(float val_) { m_low=val_;propChanged();};
     float low() {return m_low;};
-    void setHigh(float val_) { m_high=val_;};
+    void setHigh(float val_) { m_high=val_;propChanged();};
     float high() {return m_high;};
-    void setLowRed(float val_) { m_lowred=val_;};
+    void setLowRed(float val_) { m_lowred=val_;propChanged();};
     float lowRed() {return m_lowred;};
-    void setHighRed(float val_) { m_highred=val_;};
+    void setHighRed(float val_) { m_highred=val_;propChanged();};
     float highRed() {return m_highred;};
-    void setTickIncrement(float val_) { m_tickIncrement=val_;};
+    void setTickIncrement(float val_) { m_tickIncrement=val_;propChanged();};
     float tickIncrement() {return m_tickIncrement;};
-    void setTickSpacing(float val_) { m_tickSpacing=val_;};
+    void setTickSpacing(float val_) { m_tickSpacing=val_;propChanged();};
     float tickSpacing() {return m_tickSpacing;};
-    void setTickMinor(int val_) { m_tickMinor=val_;};
+
+    void setTickLength(float val_) { m_tickLength=val_;propChanged();};
+    float tickLength() {return m_tickLength;};
+    void setLineWidth(float val_) { m_lineWidth=val_;propChanged();};
+    float lineWidth() {return m_lineWidth;};
+    float lowPosition() {return m_lowPosition;};
+    void setLowPosition(float val_) { m_lowPosition=val_;propChanged();};
+    float highPosition() {return m_highPosition;};
+    void setHighPosition(float val_) { m_highPosition=val_;propChanged();};
+
+    void setTickMinor(int val_) { m_tickMinor=val_;propChanged();};
     float tickMinor() {return m_tickMinor;};
 
-    void setFont(QFont val_) { m_font=val_;};
+    void setFont(QFont val_) { m_font=val_;propChanged();};
     QFont getFont() {return m_font;};
-    void setColor(QColor val_) { m_color=val_;};
+    void setColor(QColor val_) { m_color=val_;propChanged();};
     QColor getColor() {return m_color;};
-    void setBackColor(QColor val_) { m_backColor=val_;};
+    void setBackColor(QColor val_) { m_backColor=val_;propChanged();};
     QColor getBackColor() {return m_backColor;};
-    void setBorderColor(QColor val_) { m_borderColor=val_;};
+    void setBorderColor(QColor val_) { m_borderColor=val_;propChanged();};
     QColor getBorderColor() {return m_borderColor;};
 signals:
 
@@ -86,6 +114,7 @@ public slots:
 public:
     QString m_name;
     QString m_format;
+    QString m_options;      // Free format options string
     int   m_tickIncrement;  // Tick increment
     int   m_tickSpacing;    // Tick spacing
     int   m_tickMinor;      // Ninor, non labeled ticks
@@ -99,11 +128,16 @@ public:
     float m_lowyellow;  // low yellow limit
     float m_highyellow; // higest yellow limit
     float m_highred;
+    float m_tickLength;
+    float m_highPosition;
+    float m_lowPosition;
+    float m_lineWidth;
     int m_textSize;
     QFont m_font;
     QColor m_color;
     QColor m_backColor;
     QColor m_borderColor;
+    QImage *m_needleImage;
 };
 
 #endif // GAUGE_H