5#include <qqmlregistration.h>
7#include "qml_material/export.hpp"
11class QML_MATERIAL_API ItemProxy :
public QQuickItem {
15 Q_PROPERTY(QQuickItem* target READ target WRITE setTarget NOTIFY targetChanged FINAL)
16 Q_PROPERTY(
bool active READ active WRITE setActive NOTIFY activeChanged FINAL)
17 Q_PROPERTY(
bool controlling READ controlling NOTIFY controllingChanged FINAL)
19 explicit ItemProxy(QQuickItem* parent =
nullptr);
20 ~ItemProxy()
override;
21 QQuickItem* target()
const {
return m_target; }
22 bool active()
const {
return m_active; }
23 bool controlling()
const {
return m_controlling; }
24 QString acquisitionError(QQuickItem* target,
const ItemProxy* releasing =
nullptr)
const;
29 std::optional<Geometry> geometryIn(QQuickItem* coordinateItem)
const;
30 bool takeFrom(ItemProxy* source);
31 void setTarget(QQuickItem*);
33 Q_SIGNAL
void targetChanged();
34 Q_SIGNAL
void activeChanged();
35 Q_SIGNAL
void controllingChanged();
38 void geometryChange(
const QRectF&,
const QRectF&)
override;
39 void componentComplete()
override;
45 void syncImplicitSize();
46 QPointer<QQuickItem> m_target;
47 QList<QMetaObject::Connection> m_connections;
48 quint64 m_revision = 0;
49 bool m_active =
false;
50 bool m_controlling =
false;
51 bool m_destroying =
false;