Add graph animation; support for line graphs
[harbour-pedalo.git] / src / graph.h
1 #ifndef TEXTBALLOON_H
2 #define TEXTBALLOON_H
3
4 #include <QObject>
5 #include <QQuickPaintedItem>
6
7 class Graph : public QQuickPaintedItem
8 {
9 Q_OBJECT
10 Q_PROPERTY(QList<float> bardata READ getBarData WRITE setBarData NOTIFY barDataChanged)
11 Q_PROPERTY(QList<float> linedata READ getLineData WRITE setLineData NOTIFY lineDataChanged)
12 Q_PROPERTY(QStringList labelsx READ getLabelsx WRITE setLabelsx NOTIFY labelsxChanged)
13 Q_PROPERTY(QStringList labelsy READ getLabelsy WRITE setLabelsy NOTIFY labelsyChanged)
14 Q_PROPERTY(QColor primary READ getPrimary WRITE setPrimary NOTIFY primaryChanged)
15 Q_PROPERTY(QColor secondary READ getSecondary WRITE setSecondary NOTIFY secondaryChanged)
16 Q_PROPERTY(QColor highlight READ getHighlight WRITE setHighlight NOTIFY highlightChanged)
17
18 Q_PROPERTY(float gap READ getGap WRITE setGap NOTIFY gapChanged)
19 Q_PROPERTY(float miny READ getMiny WRITE setMiny NOTIFY minyChanged)
20 Q_PROPERTY(float maxy READ getMaxy WRITE setMaxy NOTIFY maxyChanged)
21 Q_PROPERTY(float stepy READ getStepy WRITE setStepy NOTIFY stepyChanged)
22 Q_PROPERTY(QString unitsy READ getUnitsy WRITE setUnitsy NOTIFY unitsyChanged)
23 Q_PROPERTY(float fontsize READ getFontsize WRITE setFontsize NOTIFY fontsizeChanged)
24
25 Q_PROPERTY(float animate READ getAnimate WRITE setAnimate NOTIFY animateChanged)
26
27 public:
28 Graph(QQuickItem *parent = 0);
29 void paint(QPainter *painter);
30
31 QList<float> getBarData() const;
32 void setBarData(QList<float> value);
33 QList<float> getLineData() const;
34 void setLineData(QList<float> value);
35 QStringList getLabelsx() const;
36 void setLabelsx(QStringList value);
37 QStringList getLabelsy() const;
38 void setLabelsy(QStringList value);
39 QColor getPrimary() const;
40 void setPrimary(QColor value);
41 QColor getSecondary() const;
42 void setSecondary(QColor value);
43 QColor getHighlight() const;
44 void setHighlight(QColor value);
45 float getGap() const;
46 void setGap(float value);
47 float getMiny() const;
48 void setMiny(float value);
49 float getMaxy() const;
50 void setMaxy(float value);
51 float getStepy() const;
52 void setStepy(float value);
53 QString getUnitsy() const;
54 void setUnitsy(QString value);
55 float getFontsize() const;
56 void setFontsize(float value);
57 float getAnimate() const;
58 void setAnimate(float value);
59
60 private:
61 QList<float> bardata;
62 QList<float> linedata;
63 QStringList labelsx;
64 QStringList labelsy;
65 QColor primary;
66 QColor secondary;
67 QColor highlight;
68 float axisThickness;
69 int bars;
70 int points;
71 float gap;
72 float miny;
73 float maxy;
74 float stepy;
75 QString unitsy;
76 float fontsize;
77 float animate;
78
79 signals:
80 void barDataChanged();
81 void lineDataChanged();
82 void labelsxChanged();
83 void labelsyChanged();
84 void primaryChanged(QColor primary);
85 void secondaryChanged(QColor secondary);
86 void highlightChanged(QColor highlight);
87 void gapChanged(float gap);
88 void minyChanged(float miny);
89 void maxyChanged(float maxy);
90 void stepyChanged(float maxy);
91 void unitsyChanged();
92 void fontsizeChanged(float fontsize);
93 void animateChanged(float animate);
94 };
95
96 #endif // TEXTBALLOON_H