diff options
Diffstat (limited to 'src/quick/util/qquickvaluetypes_p.h')
-rw-r--r-- | src/quick/util/qquickvaluetypes_p.h | 129 |
1 files changed, 76 insertions, 53 deletions
diff --git a/src/quick/util/qquickvaluetypes_p.h b/src/quick/util/qquickvaluetypes_p.h index 559ade00ea..c203d12fab 100644 --- a/src/quick/util/qquickvaluetypes_p.h +++ b/src/quick/util/qquickvaluetypes_p.h @@ -1,41 +1,5 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtQuick module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 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 QQUICKVALUETYPES_P_H #define QQUICKVALUETYPES_P_H @@ -66,7 +30,7 @@ QT_BEGIN_NAMESPACE -class Q_QUICK_PRIVATE_EXPORT QQuickColorValueType +class Q_QUICK_EXPORT QQuickColorValueType { QColor v; Q_PROPERTY(qreal r READ r WRITE setR FINAL) @@ -79,16 +43,18 @@ class Q_QUICK_PRIVATE_EXPORT QQuickColorValueType Q_PROPERTY(qreal hslHue READ hslHue WRITE setHslHue FINAL) Q_PROPERTY(qreal hslSaturation READ hslSaturation WRITE setHslSaturation FINAL) Q_PROPERTY(qreal hslLightness READ hslLightness WRITE setHslLightness FINAL) - Q_PROPERTY(bool valid READ isValid) + Q_PROPERTY(bool valid READ isValid FINAL) Q_GADGET QML_ADDED_IN_VERSION(2, 0) QML_FOREIGN(QColor) QML_VALUE_TYPE(color) QML_EXTENDED(QQuickColorValueType) + QML_STRUCTURED_VALUE public: static QVariant create(const QJSValue ¶ms); + Q_INVOKABLE QQuickColorValueType(const QString &string); Q_INVOKABLE QString toString() const; Q_INVOKABLE QVariant alpha(qreal value) const; @@ -117,9 +83,11 @@ public: void setHslHue(qreal); void setHslSaturation(qreal); void setHslLightness(qreal); + + operator QColor() const { return v; } }; -class Q_QUICK_PRIVATE_EXPORT QQuickVector2DValueType +class Q_QUICK_EXPORT QQuickVector2DValueType { QVector2D v; Q_PROPERTY(qreal x READ x WRITE setX FINAL) @@ -129,6 +97,7 @@ class Q_QUICK_PRIVATE_EXPORT QQuickVector2DValueType QML_FOREIGN(QVector2D) QML_VALUE_TYPE(vector2d) QML_EXTENDED(QQuickVector2DValueType) + QML_STRUCTURED_VALUE public: static QVariant create(const QJSValue ¶ms); @@ -151,9 +120,11 @@ public: Q_INVOKABLE QVector4D toVector4d() const; Q_INVOKABLE bool fuzzyEquals(const QVector2D &vec, qreal epsilon) const; Q_INVOKABLE bool fuzzyEquals(const QVector2D &vec) const; + + operator QVector2D() const { return v; } }; -class Q_QUICK_PRIVATE_EXPORT QQuickVector3DValueType +class Q_QUICK_EXPORT QQuickVector3DValueType { QVector3D v; Q_PROPERTY(qreal x READ x WRITE setX FINAL) @@ -164,6 +135,7 @@ class Q_QUICK_PRIVATE_EXPORT QQuickVector3DValueType QML_FOREIGN(QVector3D) QML_VALUE_TYPE(vector3d) QML_EXTENDED(QQuickVector3DValueType) + QML_STRUCTURED_VALUE public: static QVariant create(const QJSValue ¶ms); @@ -190,9 +162,11 @@ public: Q_INVOKABLE QVector4D toVector4d() const; Q_INVOKABLE bool fuzzyEquals(const QVector3D &vec, qreal epsilon) const; Q_INVOKABLE bool fuzzyEquals(const QVector3D &vec) const; + + operator QVector3D() const { return v; } }; -class Q_QUICK_PRIVATE_EXPORT QQuickVector4DValueType +class Q_QUICK_EXPORT QQuickVector4DValueType { QVector4D v; Q_PROPERTY(qreal x READ x WRITE setX FINAL) @@ -204,6 +178,7 @@ class Q_QUICK_PRIVATE_EXPORT QQuickVector4DValueType QML_FOREIGN(QVector4D) QML_VALUE_TYPE(vector4d) QML_EXTENDED(QQuickVector4DValueType) + QML_STRUCTURED_VALUE public: static QVariant create(const QJSValue ¶ms); @@ -231,20 +206,23 @@ public: Q_INVOKABLE QVector3D toVector3d() const; Q_INVOKABLE bool fuzzyEquals(const QVector4D &vec, qreal epsilon) const; Q_INVOKABLE bool fuzzyEquals(const QVector4D &vec) const; + + operator QVector4D() const { return v; } }; -class Q_QUICK_PRIVATE_EXPORT QQuickQuaternionValueType +class Q_QUICK_EXPORT QQuickQuaternionValueType { QQuaternion v; - Q_PROPERTY(qreal scalar READ scalar WRITE setScalar) - Q_PROPERTY(qreal x READ x WRITE setX) - Q_PROPERTY(qreal y READ y WRITE setY) - Q_PROPERTY(qreal z READ z WRITE setZ) + Q_PROPERTY(qreal scalar READ scalar WRITE setScalar FINAL) + Q_PROPERTY(qreal x READ x WRITE setX FINAL) + Q_PROPERTY(qreal y READ y WRITE setY FINAL) + Q_PROPERTY(qreal z READ z WRITE setZ FINAL) Q_GADGET QML_ADDED_IN_VERSION(2, 0) QML_FOREIGN(QQuaternion) QML_VALUE_TYPE(quaternion) QML_EXTENDED(QQuickQuaternionValueType) + QML_STRUCTURED_VALUE public: static QVariant create(const QJSValue ¶ms); @@ -259,9 +237,29 @@ public: void setX(qreal); void setY(qreal); void setZ(qreal); + + Q_INVOKABLE qreal dotProduct(const QQuaternion &q) const; + Q_INVOKABLE QQuaternion times(const QQuaternion &q) const; + Q_INVOKABLE QVector3D times(const QVector3D &vec) const; + Q_INVOKABLE QQuaternion times(qreal factor) const; + Q_INVOKABLE QQuaternion plus(const QQuaternion &q) const; + Q_INVOKABLE QQuaternion minus(const QQuaternion &q) const; + + Q_INVOKABLE QQuaternion normalized() const; + Q_INVOKABLE QQuaternion inverted() const; + Q_INVOKABLE QQuaternion conjugated() const; + Q_INVOKABLE qreal length() const; + + Q_INVOKABLE QVector3D toEulerAngles() const; + Q_INVOKABLE QVector4D toVector4d() const; + + Q_INVOKABLE bool fuzzyEquals(const QQuaternion &q, qreal epsilon) const; + Q_INVOKABLE bool fuzzyEquals(const QQuaternion &q) const; + + operator QQuaternion() const { return v; } }; -class Q_QUICK_PRIVATE_EXPORT QQuickMatrix4x4ValueType +class Q_QUICK_EXPORT QQuickMatrix4x4ValueType { QMatrix4x4 v; Q_PROPERTY(qreal m11 READ m11 WRITE setM11 FINAL) @@ -285,6 +283,7 @@ class Q_QUICK_PRIVATE_EXPORT QQuickMatrix4x4ValueType QML_FOREIGN(QMatrix4x4) QML_VALUE_TYPE(matrix4x4) QML_EXTENDED(QQuickMatrix4x4ValueType) + QML_STRUCTURED_VALUE public: static QVariant create(const QJSValue ¶ms); @@ -325,6 +324,7 @@ public: Q_INVOKABLE void translate(const QVector3D &t) { v.translate(t); } Q_INVOKABLE void rotate(float angle, const QVector3D &axis) { v.rotate(angle, axis); } + Q_INVOKABLE void rotate(const QQuaternion &q) { v.rotate(q); } Q_INVOKABLE void scale(float s) { v.scale(s); } Q_INVOKABLE void scale(float sx, float sy, float sz) { v.scale(sx, sy, sz); } Q_INVOKABLE void scale(const QVector3D &s) { v.scale(s); } @@ -344,13 +344,18 @@ public: Q_INVOKABLE QMatrix4x4 inverted() const; Q_INVOKABLE QMatrix4x4 transposed() const; + Q_INVOKABLE QPointF map(const QPointF p) const; + Q_INVOKABLE QRectF mapRect(const QRectF r) const; + Q_INVOKABLE bool fuzzyEquals(const QMatrix4x4 &m, qreal epsilon) const; Q_INVOKABLE bool fuzzyEquals(const QMatrix4x4 &m) const; + + operator QMatrix4x4() const { return v; } }; namespace QQuickFontEnums { -Q_NAMESPACE +Q_NAMESPACE_EXPORT(Q_QUICK_EXPORT) QML_NAMED_ELEMENT(Font) QML_ADDED_IN_VERSION(2, 0) @@ -381,7 +386,7 @@ enum HintingPreference { Q_ENUM_NS(HintingPreference) }; -class Q_QUICK_PRIVATE_EXPORT QQuickFontValueType +class Q_QUICK_EXPORT QQuickFontValueType { QFont v; Q_GADGET @@ -402,11 +407,15 @@ class Q_QUICK_PRIVATE_EXPORT QQuickFontValueType Q_PROPERTY(QQuickFontEnums::HintingPreference hintingPreference READ hintingPreference WRITE setHintingPreference FINAL) Q_PROPERTY(bool kerning READ kerning WRITE setKerning FINAL) Q_PROPERTY(bool preferShaping READ preferShaping WRITE setPreferShaping FINAL) + Q_PROPERTY(QVariantMap features READ features WRITE setFeatures FINAL) + Q_PROPERTY(QVariantMap variableAxes READ variableAxes WRITE setVariableAxes FINAL) + Q_PROPERTY(bool contextFontMerging READ contextFontMerging WRITE setContextFontMerging FINAL) QML_VALUE_TYPE(font) QML_FOREIGN(QFont) QML_ADDED_IN_VERSION(2, 0) QML_EXTENDED(QQuickFontValueType) + QML_STRUCTURED_VALUE public: static QVariant create(const QJSValue &value); @@ -460,11 +469,22 @@ public: bool preferShaping() const; void setPreferShaping(bool b); + + QVariantMap features() const; + void setFeatures(const QVariantMap &features); + + QVariantMap variableAxes() const; + void setVariableAxes(const QVariantMap &variableAxes); + + bool contextFontMerging() const; + void setContextFontMerging(bool b); + + operator QFont() const { return v; } }; namespace QQuickColorSpaceEnums { -Q_NAMESPACE +Q_NAMESPACE_EXPORT(Q_QUICK_EXPORT) QML_NAMED_ELEMENT(ColorSpace) QML_ADDED_IN_VERSION(2, 15) Q_CLASSINFO("RegisterEnumClassesUnscoped", "false") @@ -497,7 +517,7 @@ enum class TransferFunction { Q_ENUM_NS(TransferFunction) } -class Q_QUICK_PRIVATE_EXPORT QQuickColorSpaceValueType +class Q_QUICK_EXPORT QQuickColorSpaceValueType { QColorSpace v; Q_GADGET @@ -511,6 +531,7 @@ class Q_QUICK_PRIVATE_EXPORT QQuickColorSpaceValueType QML_FOREIGN(QColorSpace) QML_ADDED_IN_VERSION(2, 15) QML_EXTENDED(QQuickColorSpaceValueType) + QML_STRUCTURED_VALUE public: static QVariant create(const QJSValue ¶ms); @@ -523,6 +544,8 @@ public: void setTransferFunction(QQuickColorSpaceEnums::TransferFunction transferFunction); float gamma() const noexcept; void setGamma(float gamma); + + operator QColorSpace() const { return v; } }; QT_END_NAMESPACE |