1/****************************************************************************
2**
3** Copyright (C) 2016 The Qt Company Ltd.
4** Contact: https://www.qt.io/licensing/
5**
6** This file is part of the Qt Data Visualization module of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:GPL$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see https://www.qt.io/terms-conditions. For further
15** information use the contact form at https://www.qt.io/contact-us.
16**
17** GNU General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU
19** General Public License version 3 or (at your option) any later version
20** approved by the KDE Free Qt Foundation. The licenses are as published by
21** the Free Software Foundation and appearing in the file LICENSE.GPL3
22** included in the packaging of this file. Please review the following
23** information to ensure the GNU General Public License requirements will
24** be met: https://www.gnu.org/licenses/gpl-3.0.html.
25**
26** $QT_END_LICENSE$
27**
28****************************************************************************/
29
30//
31// W A R N I N G
32// -------------
33//
34// This file is not part of the QtDataVisualization API. It exists purely as an
35// implementation detail. This header file may change from version to
36// version without notice, or even be removed.
37//
38// We mean it.
39
40#ifndef COLORGRADIENT_P_H
41#define COLORGRADIENT_P_H
42
43#include "datavisualizationglobal_p.h"
44#include <QtGui/QColor>
45#include <QtQml/QQmlListProperty>
46
47QT_BEGIN_NAMESPACE_DATAVISUALIZATION
48
49class ColorGradientStop : public QObject
50{
51 Q_OBJECT
52
53 Q_PROPERTY(qreal position READ position WRITE setPosition NOTIFY positionChanged)
54 Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged)
55
56public:
57 ColorGradientStop(QObject *parent = 0);
58
59 qreal position() const;
60 void setPosition(qreal position);
61
62 QColor color() const;
63 void setColor(const QColor &color);
64
65Q_SIGNALS:
66 void positionChanged(qreal position);
67 void colorChanged(QColor color);
68
69private:
70 void updateGradient();
71
72private:
73 qreal m_position;
74 QColor m_color;
75};
76
77class ColorGradient : public QObject
78{
79 Q_OBJECT
80
81 Q_PROPERTY(QQmlListProperty<ColorGradientStop> stops READ stops)
82 Q_CLASSINFO("DefaultProperty", "stops")
83
84public:
85 ColorGradient(QObject *parent = 0);
86 ~ColorGradient();
87
88 QQmlListProperty<ColorGradientStop> stops();
89
90 void doUpdate();
91 QList<ColorGradientStop *> m_stops;
92
93Q_SIGNALS:
94 void updated();
95};
96
97QT_END_NAMESPACE_DATAVISUALIZATION
98
99#endif
100

source code of qtdatavis3d/src/datavisualizationqml2/colorgradient_p.h