1// Copyright (C) 2023 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4#ifndef QTGRAPHS_QVALUE3DAXISFORMATTER_H
5#define QTGRAPHS_QVALUE3DAXISFORMATTER_H
6
7#include <QtCore/qlist.h>
8#include <QtCore/qlocale.h>
9#include <QtCore/qobject.h>
10#include <QtCore/qscopedpointer.h>
11#include <QtCore/qstringlist.h>
12#include <QtGraphs/qgraphsglobal.h>
13#include <QtQmlIntegration/qqmlintegration.h>
14
15QT_BEGIN_NAMESPACE
16
17class QValue3DAxisFormatterPrivate;
18class QValue3DAxis;
19
20class Q_GRAPHS_EXPORT QValue3DAxisFormatter : public QObject
21{
22 Q_OBJECT
23 Q_DECLARE_PRIVATE(QValue3DAxisFormatter)
24 QML_NAMED_ELEMENT(Value3DAxisFormatter)
25
26protected:
27 explicit QValue3DAxisFormatter(QValue3DAxisFormatterPrivate &d, QObject *parent = nullptr);
28
29public:
30 explicit QValue3DAxisFormatter(QObject *parent = nullptr);
31 ~QValue3DAxisFormatter() override;
32
33private Q_SLOTS:
34 void markDirtyNoLabelChange();
35
36protected:
37 void setAllowNegatives(bool allow);
38 bool allowNegatives() const;
39 void setAllowZero(bool allow);
40 bool allowZero() const;
41 void setAxis(QValue3DAxis *axis);
42
43 virtual QValue3DAxisFormatter *createNewInstance() const;
44 virtual void recalculate();
45 virtual QString stringForValue(qreal value, const QString &format);
46 virtual float positionAt(float value) const;
47 virtual float valueAt(float position) const;
48 virtual void populateCopy(QValue3DAxisFormatter &copy);
49
50 void markDirty(bool labelsChange = false);
51 QValue3DAxis *axis() const;
52
53 const QList<float> &gridPositions() const &;
54 QList<float> gridPositions() &&;
55 void setGridPoitions(QList<float> gridPositions);
56 const QList<float> &subGridPositions() const &;
57 QList<float> subGridPositions() &&;
58 void setSubGridPositions(QList<float> subGridPositions);
59 const QList<float> &labelPositions() const &;
60 QList<float> labelPositions() &&;
61 void setlabelPositions(QList<float> labelPositions);
62 const QStringList &labelStrings() const &;
63 QStringList labelStrings() &&;
64 void setLabelStrings(QStringList labelStrings);
65
66 void setLocale(const QLocale &locale);
67 QLocale locale() const;
68
69private:
70 Q_DISABLE_COPY(QValue3DAxisFormatter)
71
72 friend class QValue3DAxis;
73 friend class QValue3DAxisPrivate;
74 friend class QBar3DSeriesPrivate;
75 friend class QScatter3DSeriesPrivate;
76 friend class QSurface3DSeriesPrivate;
77 friend class QQuickGraphsItem;
78 friend class QQuickGraphsScatter;
79 friend class QQuickGraphsBars;
80};
81
82QT_END_NAMESPACE
83
84#endif
85

source code of qtgraphs/src/graphs3d/axis/qvalue3daxisformatter.h