Add graph to stats page; update Rules
[harbour-pedalo.git] / src / graph.h
diff --git a/src/graph.h b/src/graph.h
new file mode 100644 (file)
index 0000000..269f37d
--- /dev/null
@@ -0,0 +1,92 @@
+#ifndef TEXTBALLOON_H
+#define TEXTBALLOON_H
+
+#include <QObject>
+#include <QQuickPaintedItem>
+
+class Graph : public QQuickPaintedItem
+{
+    Q_OBJECT
+    Q_PROPERTY(QList<float> model READ getModel WRITE setModel NOTIFY modelChanged)
+    Q_PROPERTY(QStringList labelsx READ getLabelsx WRITE setLabelsx NOTIFY labelsxChanged)
+    Q_PROPERTY(QStringList labelsy READ getLabelsy WRITE setLabelsy NOTIFY labelsyChanged)
+    Q_PROPERTY(QColor primary READ getPrimary WRITE setPrimary NOTIFY primaryChanged)
+    Q_PROPERTY(QColor secondary READ getSecondary WRITE setSecondary NOTIFY secondaryChanged)
+    Q_PROPERTY(QColor highlight READ getHighlight WRITE setHighlight NOTIFY highlightChanged)
+
+    Q_PROPERTY(float gap READ getGap WRITE setGap NOTIFY gapChanged)
+    Q_PROPERTY(float miny READ getMiny WRITE setMiny NOTIFY minyChanged)
+    Q_PROPERTY(float maxy READ getMaxy WRITE setMaxy NOTIFY maxyChanged)
+    Q_PROPERTY(float stepy READ getStepy WRITE setStepy NOTIFY stepyChanged)
+    Q_PROPERTY(QString unitsy READ getUnitsy WRITE setUnitsy NOTIFY unitsyChanged)
+    Q_PROPERTY(float fontsize READ getFontsize WRITE setFontsize NOTIFY fontsizeChanged)
+
+    Q_PROPERTY(float animate READ getAnimate WRITE setAnimate NOTIFY animateChanged)
+
+public:
+        Graph(QQuickItem *parent = 0);
+        void paint(QPainter *painter);
+
+        QList<float> getModel() const;
+        void setModel(QList<float> value);
+        QStringList getLabelsx() const;
+        void setLabelsx(QStringList value);
+        QStringList getLabelsy() const;
+        void setLabelsy(QStringList value);
+        QColor getPrimary() const;
+        void setPrimary(QColor value);
+        QColor getSecondary() const;
+        void setSecondary(QColor value);
+        QColor getHighlight() const;
+        void setHighlight(QColor value);
+        float getGap() const;
+        void setGap(float value);
+        float getMiny() const;
+        void setMiny(float value);
+        float getMaxy() const;
+        void setMaxy(float value);
+        float getStepy() const;
+        void setStepy(float value);
+        QString getUnitsy() const;
+        void setUnitsy(QString value);
+        float getFontsize() const;
+        void setFontsize(float value);
+        float getAnimate() const;
+        void setAnimate(float value);
+
+    private:
+        QList<float> model;
+        QStringList labelsx;
+        QStringList labelsy;
+        QColor primary;
+        QColor secondary;
+        QColor highlight;
+        float axisThickness;
+        int bars;
+        float gap;
+        float minmodel;
+        float maxmodel;
+        float miny;
+        float maxy;
+        float stepy;
+        QString unitsy;
+        float fontsize;
+        float animate;
+
+    signals:
+        void modelChanged();
+        void labelsxChanged();
+        void labelsyChanged();
+        void primaryChanged(QColor primary);
+        void secondaryChanged(QColor secondary);
+        void highlightChanged(QColor highlight);
+        void gapChanged(float gap);
+        void minyChanged(float miny);
+        void maxyChanged(float maxy);
+        void stepyChanged(float maxy);
+        void unitsyChanged();
+        void fontsizeChanged(float fontsize);
+        void animateChanged(float animate);
+};
+
+#endif // TEXTBALLOON_H