// Copyright (C) 2025 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #ifndef QQUICKTRANSFORMGROUP_P_H #define QQUICKTRANSFORMGROUP_P_H // // W A R N I N G // ------------- // // This file is not part of the Qt API. It exists purely as an // implementation detail. This header file may change from version to // version without notice, or even be removed. // // We mean it. // #include #include #include #include #include QT_BEGIN_NAMESPACE class Q_QUICKVECTORIMAGEHELPERS_EXPORT QQuickTransformGroup : public QQuickTransform { Q_OBJECT QML_NAMED_ELEMENT(TransformGroup) Q_PROPERTY(QQmlListProperty transformSequence READ transformSequence) Q_CLASSINFO("DefaultProperty", "transformSequence") public: QQuickTransformGroup(QObject *parent = nullptr); ~QQuickTransformGroup(); Q_INVOKABLE void activateOverride(QQuickTransform *); Q_INVOKABLE void deactivateOverride(QQuickTransform *); Q_INVOKABLE void deactivate(QQuickTransform *); void applyTo(QMatrix4x4 *matrix) const override; QQmlListProperty transformSequence(); void triggerUpdate(); private: Q_DECLARE_PRIVATE(QQuickTransform) static void transformSequence_append(QQmlListProperty *, QQuickTransform *); static qsizetype transformSequence_count(QQmlListProperty *); static QQuickTransform *transformSequence_at(QQmlListProperty *, qsizetype); static void transformSequence_clear(QQmlListProperty *); enum StateFlag { Disabled = 1, Override = 2 }; QQuickItem *m_dummyItem = nullptr; QList m_transforms; QHash m_transformFlags; }; QT_END_NAMESPACE #endif // QQUICKTRANSFORMGROUP_P_H