summaryrefslogtreecommitdiff
path: root/platform/qt/include/qquickmapboxglstyleproperty.hpp
blob: f7762b4ee6aa1e565e0e2b0293e5ad2f824fe131 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#ifndef QQUICKMAPBOXGLSTYLEPROPERTY_H
#define QQUICKMAPBOXGLSTYLEPROPERTY_H

#include <QQuickItem>

class Q_DECL_EXPORT QQuickMapboxGLStyleProperty : public QQuickItem
{
    Q_OBJECT

    Q_PROPERTY(QString layer READ layer WRITE setLayer NOTIFY layerChanged)
    Q_PROPERTY(QString property READ property WRITE setProperty NOTIFY propertyChanged)
    Q_PROPERTY(QVariant value READ value WRITE setValue NOTIFY valueChanged)

public:
    virtual ~QQuickMapboxGLStyleProperty() {}

    // QQuickItem implementation
    virtual void itemChange(QQuickItem::ItemChange, const QQuickItem::ItemChangeData &);

    void setLayer(const QString &);
    QString layer() const;

    void setProperty(const QString &);
    QString property() const;

    void setValue(const QVariant &);
    QVariant value() const;

signals:
    void layerChanged(const QString &);
    void propertyChanged(const QString &);
    void valueChanged(const QVariant &);

protected:
    QQuickMapboxGLStyleProperty(QQuickItem *parent);
    virtual void updateParent() = 0;

    QVariantMap m_map;
};

class Q_DECL_EXPORT QQuickMapboxGLLayoutStyleProperty : public QQuickMapboxGLStyleProperty
{
public:
    QQuickMapboxGLLayoutStyleProperty(QQuickItem *parent = 0);
    virtual ~QQuickMapboxGLLayoutStyleProperty() {}

protected:
    virtual void updateParent();
};

class Q_DECL_EXPORT QQuickMapboxGLPaintStyleProperty : public QQuickMapboxGLStyleProperty
{
    Q_OBJECT
    Q_PROPERTY(QString styleClass READ styleClass WRITE setStyleClass NOTIFY classChanged)

public:
    QQuickMapboxGLPaintStyleProperty(QQuickItem *parent = 0);
    virtual ~QQuickMapboxGLPaintStyleProperty() {}

    void setStyleClass(const QString &);
    QString styleClass() const;

signals:
    void classChanged(const QString &);

protected:
    virtual void updateParent();
};

#endif // QQUICKMAPBOXGLSTYLEPROPERTY_H