@@ -29,6 +29,8 @@ class MirSurfaceItem : public QQuickPaintedItem
29 Q_PROPERTY(Type type READ type NOTIFY typeChanged)
29 Q_PROPERTY(Type type READ type NOTIFY typeChanged)
30 Q_PROPERTY(State state READ state NOTIFY stateChanged)
30 Q_PROPERTY(State state READ state NOTIFY stateChanged)
31 Q_PROPERTY(QString name READ name NOTIFY nameChanged)
31 Q_PROPERTY(QString name READ name NOTIFY nameChanged)
32+ Q_PROPERTY(MirSurfaceItem* parentSurface READ parentSurface NOTIFY parentSurfaceChanged)
33+ Q_PROPERTY(QList<QObject*> childSurfaces READ childSurfaces NOTIFY childSurfacesChanged)
34 enum Type {
36 enum Type {
@@ -56,27 +58,39 @@ public:
56 State state,
58 State state,
57 const QUrl& screenshot,
59 const QUrl& screenshot,
58 QQuickItem *parent = 0);
60 QQuickItem *parent = 0);
61 Type type() const { return m_type; }
64 Type type() const { return m_type; }
62 State state() const { return m_state; }
65 State state() const { return m_state; }
63 QString name() const { return m_name; }
66 QString name() const { return m_name; }
67+ MirSurfaceItem* parentSurface() const { return m_parentSurface; }
68+ QList<QObject*> childSurfaces() const;
65 Q_INVOKABLE void release() {}
70 Q_INVOKABLE void release() {}
67 void paint(QPainter * painter) override;
72 void paint(QPainter * painter) override;
74+ void setParentSurface(MirSurfaceItem* item);
70 void typeChanged(Type);
77 void typeChanged(Type);
71 void stateChanged(State);
78 void stateChanged(State);
72 void nameChanged(QString);
79 void nameChanged(QString);
80+ void parentSurfaceChanged(MirSurfaceItem*);
81+ void childSurfacesChanged();
84+ void addChildSurface(MirSurfaceItem* surface);
85+ void removeChildSurface(MirSurfaceItem* surface);
76 const QString m_name;
87 const QString m_name;
77 const Type m_type;
88 const Type m_type;
78 const State m_state;
89 const State m_state;
79 const QImage m_img;
90 const QImage m_img;
92+ MirSurfaceItem* m_parentSurface;
93+ QList<MirSurfaceItem*> m_children;
82Q_DECLARE_METATYPE(MirSurfaceItem*)
96Q_DECLARE_METATYPE(MirSurfaceItem*)