summaryrefslogtreecommitdiff
path: root/src/charts/ChartAxes.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/charts/ChartAxes.h')
-rw-r--r--src/charts/ChartAxes.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/charts/ChartAxes.h b/src/charts/ChartAxes.h
new file mode 100644
index 0000000..ebfe4ac
--- /dev/null
+++ b/src/charts/ChartAxes.h
@@ -0,0 +1,51 @@
+#ifndef CHART_AXES_H
+#define CHART_AXES_H
+
+#include <QtCore>
+#include <QtWidgets>
+
+class ChartScene;
+
+class ChartAxes
+{
+public:
+ ChartAxes(ChartScene* scene, int xTickInterval);
+ void paint();
+
+private:
+ enum TickOrientation
+ {
+ XTick,
+ YTick
+ };
+
+private:
+ static QPointF getTickVector(TickOrientation orientation);
+ static QPointF getLabelOffset(TickOrientation orientation);
+ static qreal getLabelXAlignOffset(qreal labelWidth, TickOrientation orientation);
+
+private:
+ void addAxisLines();
+ void addTicks();
+ void addXTicks();
+ void addYTicks();
+ void addLabel(const QString& labelText, const QPointF& pos,
+ TickOrientation orientation);
+ QPointF getTickOrigin(TickOrientation orientation) const;
+ void addHRuler(const QPointF& pos);
+ void addTick(const QPointF& pos, TickOrientation orientation);
+ void addLabelledXTick(int index, QPointF& pos);
+ void addLabelledYTick(int value, QPointF& pos, qreal posSpacing);
+
+private:
+ static const int TickLength = 5;
+ static const QPointF XLabelOffset;
+ static const QPointF YLabelOffset;
+ static const QFont TickLabelFont;
+
+private:
+ ChartScene* scene;
+ int xTickInterval;
+};
+
+#endif