1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QQUICKVALUETYPES_P_H
5#define QQUICKVALUETYPES_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <qqml.h>
19#include <private/qtquickglobal_p.h>
20#include <private/qqmlvaluetype_p.h>
21
22#include <QtGui/QColor>
23#include <QtGui/QColorSpace>
24#include <QtGui/QVector2D>
25#include <QtGui/QVector3D>
26#include <QtGui/QVector4D>
27#include <QtGui/QQuaternion>
28#include <QtGui/QMatrix4x4>
29#include <QtGui/QFont>
30
31QT_BEGIN_NAMESPACE
32
33class Q_QUICK_EXPORT QQuickColorValueType
34{
35 QColor v;
36 Q_PROPERTY(qreal r READ r WRITE setR FINAL)
37 Q_PROPERTY(qreal g READ g WRITE setG FINAL)
38 Q_PROPERTY(qreal b READ b WRITE setB FINAL)
39 Q_PROPERTY(qreal a READ a WRITE setA FINAL)
40 Q_PROPERTY(qreal hsvHue READ hsvHue WRITE setHsvHue FINAL)
41 Q_PROPERTY(qreal hsvSaturation READ hsvSaturation WRITE setHsvSaturation FINAL)
42 Q_PROPERTY(qreal hsvValue READ hsvValue WRITE setHsvValue FINAL)
43 Q_PROPERTY(qreal hslHue READ hslHue WRITE setHslHue FINAL)
44 Q_PROPERTY(qreal hslSaturation READ hslSaturation WRITE setHslSaturation FINAL)
45 Q_PROPERTY(qreal hslLightness READ hslLightness WRITE setHslLightness FINAL)
46 Q_PROPERTY(bool valid READ isValid FINAL)
47 Q_GADGET
48 QML_ADDED_IN_VERSION(2, 0)
49 QML_FOREIGN(QColor)
50 QML_VALUE_TYPE(color)
51 QML_EXTENDED(QQuickColorValueType)
52 QML_STRUCTURED_VALUE
53
54public:
55 static QVariant create(const QJSValue &params);
56
57 Q_INVOKABLE QQuickColorValueType() = default;
58 Q_INVOKABLE QQuickColorValueType(const QString &string);
59 Q_INVOKABLE QString toString() const;
60
61 Q_INVOKABLE QVariant alpha(qreal value) const;
62 Q_INVOKABLE QVariant lighter(qreal factor = 1.5) const;
63 Q_INVOKABLE QVariant darker(qreal factor = 2.0) const;
64 Q_INVOKABLE QVariant tint(QVariant factor) const;
65
66 qreal r() const;
67 qreal g() const;
68 qreal b() const;
69 qreal a() const;
70 qreal hsvHue() const;
71 qreal hsvSaturation() const;
72 qreal hsvValue() const;
73 qreal hslHue() const;
74 qreal hslSaturation() const;
75 qreal hslLightness() const;
76 bool isValid() const;
77 void setR(qreal);
78 void setG(qreal);
79 void setB(qreal);
80 void setA(qreal);
81 void setHsvHue(qreal);
82 void setHsvSaturation(qreal);
83 void setHsvValue(qreal);
84 void setHslHue(qreal);
85 void setHslSaturation(qreal);
86 void setHslLightness(qreal);
87
88 operator QColor() const { return v; }
89};
90
91class Q_QUICK_EXPORT QQuickVector2DValueType
92{
93 QVector2D v;
94 Q_PROPERTY(qreal x READ x WRITE setX FINAL)
95 Q_PROPERTY(qreal y READ y WRITE setY FINAL)
96 Q_GADGET
97 QML_ADDED_IN_VERSION(2, 0)
98 QML_FOREIGN(QVector2D)
99 QML_VALUE_TYPE(vector2d)
100 QML_EXTENDED(QQuickVector2DValueType)
101 QML_STRUCTURED_VALUE
102
103public:
104 static QVariant create(const QJSValue &params);
105
106 Q_INVOKABLE QQuickVector2DValueType() = default;
107 Q_INVOKABLE QString toString() const;
108
109 qreal x() const;
110 qreal y() const;
111 void setX(qreal);
112 void setY(qreal);
113
114 Q_INVOKABLE qreal dotProduct(const QVector2D &vec) const;
115 Q_INVOKABLE QVector2D times(const QVector2D &vec) const;
116 Q_INVOKABLE QVector2D times(qreal scalar) const;
117 Q_INVOKABLE QVector2D plus(const QVector2D &vec) const;
118 Q_INVOKABLE QVector2D minus(const QVector2D &vec) const;
119 Q_INVOKABLE QVector2D normalized() const;
120 Q_INVOKABLE qreal length() const;
121 Q_INVOKABLE QVector3D toVector3d() const;
122 Q_INVOKABLE QVector4D toVector4d() const;
123 Q_INVOKABLE bool fuzzyEquals(const QVector2D &vec, qreal epsilon) const;
124 Q_INVOKABLE bool fuzzyEquals(const QVector2D &vec) const;
125
126 operator QVector2D() const { return v; }
127};
128
129class Q_QUICK_EXPORT QQuickVector3DValueType
130{
131 QVector3D v;
132 Q_PROPERTY(qreal x READ x WRITE setX FINAL)
133 Q_PROPERTY(qreal y READ y WRITE setY FINAL)
134 Q_PROPERTY(qreal z READ z WRITE setZ FINAL)
135 Q_GADGET
136 QML_ADDED_IN_VERSION(2, 0)
137 QML_FOREIGN(QVector3D)
138 QML_VALUE_TYPE(vector3d)
139 QML_EXTENDED(QQuickVector3DValueType)
140 QML_STRUCTURED_VALUE
141
142public:
143 static QVariant create(const QJSValue &params);
144
145 Q_INVOKABLE QQuickVector3DValueType() = default;
146 Q_INVOKABLE QString toString() const;
147
148 qreal x() const;
149 qreal y() const;
150 qreal z() const;
151 void setX(qreal);
152 void setY(qreal);
153 void setZ(qreal);
154
155 Q_INVOKABLE QVector3D crossProduct(const QVector3D &vec) const;
156 Q_INVOKABLE qreal dotProduct(const QVector3D &vec) const;
157 Q_INVOKABLE QVector3D times(const QMatrix4x4 &m) const;
158 Q_INVOKABLE QVector3D times(const QVector3D &vec) const;
159 Q_INVOKABLE QVector3D times(qreal scalar) const;
160 Q_INVOKABLE QVector3D plus(const QVector3D &vec) const;
161 Q_INVOKABLE QVector3D minus(const QVector3D &vec) const;
162 Q_INVOKABLE QVector3D normalized() const;
163 Q_INVOKABLE qreal length() const;
164 Q_INVOKABLE QVector2D toVector2d() const;
165 Q_INVOKABLE QVector4D toVector4d() const;
166 Q_INVOKABLE bool fuzzyEquals(const QVector3D &vec, qreal epsilon) const;
167 Q_INVOKABLE bool fuzzyEquals(const QVector3D &vec) const;
168
169 operator QVector3D() const { return v; }
170};
171
172class Q_QUICK_EXPORT QQuickVector4DValueType
173{
174 QVector4D v;
175 Q_PROPERTY(qreal x READ x WRITE setX FINAL)
176 Q_PROPERTY(qreal y READ y WRITE setY FINAL)
177 Q_PROPERTY(qreal z READ z WRITE setZ FINAL)
178 Q_PROPERTY(qreal w READ w WRITE setW FINAL)
179 Q_GADGET
180 QML_ADDED_IN_VERSION(2, 0)
181 QML_FOREIGN(QVector4D)
182 QML_VALUE_TYPE(vector4d)
183 QML_EXTENDED(QQuickVector4DValueType)
184 QML_STRUCTURED_VALUE
185
186public:
187 static QVariant create(const QJSValue &params);
188
189 Q_INVOKABLE QQuickVector4DValueType() = default;
190 Q_INVOKABLE QString toString() const;
191
192 qreal x() const;
193 qreal y() const;
194 qreal z() const;
195 qreal w() const;
196 void setX(qreal);
197 void setY(qreal);
198 void setZ(qreal);
199 void setW(qreal);
200
201 Q_INVOKABLE qreal dotProduct(const QVector4D &vec) const;
202 Q_INVOKABLE QVector4D times(const QVector4D &vec) const;
203 Q_INVOKABLE QVector4D times(const QMatrix4x4 &m) const;
204 Q_INVOKABLE QVector4D times(qreal scalar) const;
205 Q_INVOKABLE QVector4D plus(const QVector4D &vec) const;
206 Q_INVOKABLE QVector4D minus(const QVector4D &vec) const;
207 Q_INVOKABLE QVector4D normalized() const;
208 Q_INVOKABLE qreal length() const;
209 Q_INVOKABLE QVector2D toVector2d() const;
210 Q_INVOKABLE QVector3D toVector3d() const;
211 Q_INVOKABLE bool fuzzyEquals(const QVector4D &vec, qreal epsilon) const;
212 Q_INVOKABLE bool fuzzyEquals(const QVector4D &vec) const;
213
214 operator QVector4D() const { return v; }
215};
216
217class Q_QUICK_EXPORT QQuickQuaternionValueType
218{
219 QQuaternion v;
220 Q_PROPERTY(qreal scalar READ scalar WRITE setScalar FINAL)
221 Q_PROPERTY(qreal x READ x WRITE setX FINAL)
222 Q_PROPERTY(qreal y READ y WRITE setY FINAL)
223 Q_PROPERTY(qreal z READ z WRITE setZ FINAL)
224 Q_GADGET
225 QML_ADDED_IN_VERSION(2, 0)
226 QML_FOREIGN(QQuaternion)
227 QML_VALUE_TYPE(quaternion)
228 QML_EXTENDED(QQuickQuaternionValueType)
229 QML_STRUCTURED_VALUE
230
231public:
232 static QVariant create(const QJSValue &params);
233
234 Q_INVOKABLE QQuickQuaternionValueType() = default;
235 Q_INVOKABLE QString toString() const;
236
237 qreal scalar() const;
238 qreal x() const;
239 qreal y() const;
240 qreal z() const;
241 void setScalar(qreal);
242 void setX(qreal);
243 void setY(qreal);
244 void setZ(qreal);
245
246 Q_INVOKABLE qreal dotProduct(const QQuaternion &q) const;
247 Q_INVOKABLE QQuaternion times(const QQuaternion &q) const;
248 Q_INVOKABLE QVector3D times(const QVector3D &vec) const;
249 Q_INVOKABLE QQuaternion times(qreal factor) const;
250 Q_INVOKABLE QQuaternion plus(const QQuaternion &q) const;
251 Q_INVOKABLE QQuaternion minus(const QQuaternion &q) const;
252
253 Q_INVOKABLE QQuaternion normalized() const;
254 Q_INVOKABLE QQuaternion inverted() const;
255 Q_INVOKABLE QQuaternion conjugated() const;
256 Q_INVOKABLE qreal length() const;
257
258 Q_INVOKABLE QVector3D toEulerAngles() const;
259 Q_INVOKABLE QVector4D toVector4d() const;
260
261 Q_INVOKABLE bool fuzzyEquals(const QQuaternion &q, qreal epsilon) const;
262 Q_INVOKABLE bool fuzzyEquals(const QQuaternion &q) const;
263
264 operator QQuaternion() const { return v; }
265};
266
267class Q_QUICK_EXPORT QQuickMatrix4x4ValueType
268{
269 QMatrix4x4 v;
270 Q_PROPERTY(qreal m11 READ m11 WRITE setM11 FINAL)
271 Q_PROPERTY(qreal m12 READ m12 WRITE setM12 FINAL)
272 Q_PROPERTY(qreal m13 READ m13 WRITE setM13 FINAL)
273 Q_PROPERTY(qreal m14 READ m14 WRITE setM14 FINAL)
274 Q_PROPERTY(qreal m21 READ m21 WRITE setM21 FINAL)
275 Q_PROPERTY(qreal m22 READ m22 WRITE setM22 FINAL)
276 Q_PROPERTY(qreal m23 READ m23 WRITE setM23 FINAL)
277 Q_PROPERTY(qreal m24 READ m24 WRITE setM24 FINAL)
278 Q_PROPERTY(qreal m31 READ m31 WRITE setM31 FINAL)
279 Q_PROPERTY(qreal m32 READ m32 WRITE setM32 FINAL)
280 Q_PROPERTY(qreal m33 READ m33 WRITE setM33 FINAL)
281 Q_PROPERTY(qreal m34 READ m34 WRITE setM34 FINAL)
282 Q_PROPERTY(qreal m41 READ m41 WRITE setM41 FINAL)
283 Q_PROPERTY(qreal m42 READ m42 WRITE setM42 FINAL)
284 Q_PROPERTY(qreal m43 READ m43 WRITE setM43 FINAL)
285 Q_PROPERTY(qreal m44 READ m44 WRITE setM44 FINAL)
286 Q_GADGET
287 QML_ADDED_IN_VERSION(2, 0)
288 QML_FOREIGN(QMatrix4x4)
289 QML_VALUE_TYPE(matrix4x4)
290 QML_EXTENDED(QQuickMatrix4x4ValueType)
291 QML_STRUCTURED_VALUE
292
293public:
294 static QVariant create(const QJSValue &params);
295
296 Q_INVOKABLE QQuickMatrix4x4ValueType() = default;
297
298 qreal m11() const { return v(0, 0); }
299 qreal m12() const { return v(0, 1); }
300 qreal m13() const { return v(0, 2); }
301 qreal m14() const { return v(0, 3); }
302 qreal m21() const { return v(1, 0); }
303 qreal m22() const { return v(1, 1); }
304 qreal m23() const { return v(1, 2); }
305 qreal m24() const { return v(1, 3); }
306 qreal m31() const { return v(2, 0); }
307 qreal m32() const { return v(2, 1); }
308 qreal m33() const { return v(2, 2); }
309 qreal m34() const { return v(2, 3); }
310 qreal m41() const { return v(3, 0); }
311 qreal m42() const { return v(3, 1); }
312 qreal m43() const { return v(3, 2); }
313 qreal m44() const { return v(3, 3); }
314
315 void setM11(qreal value) { v(0, 0) = value; }
316 void setM12(qreal value) { v(0, 1) = value; }
317 void setM13(qreal value) { v(0, 2) = value; }
318 void setM14(qreal value) { v(0, 3) = value; }
319 void setM21(qreal value) { v(1, 0) = value; }
320 void setM22(qreal value) { v(1, 1) = value; }
321 void setM23(qreal value) { v(1, 2) = value; }
322 void setM24(qreal value) { v(1, 3) = value; }
323 void setM31(qreal value) { v(2, 0) = value; }
324 void setM32(qreal value) { v(2, 1) = value; }
325 void setM33(qreal value) { v(2, 2) = value; }
326 void setM34(qreal value) { v(2, 3) = value; }
327 void setM41(qreal value) { v(3, 0) = value; }
328 void setM42(qreal value) { v(3, 1) = value; }
329 void setM43(qreal value) { v(3, 2) = value; }
330 void setM44(qreal value) { v(3, 3) = value; }
331
332 Q_INVOKABLE void translate(const QVector3D &t) { v.translate(vector: t); }
333 Q_INVOKABLE void rotate(float angle, const QVector3D &axis) { v.rotate(angle, vector: axis); }
334 Q_INVOKABLE void rotate(const QQuaternion &q) { v.rotate(quaternion: q); }
335 Q_INVOKABLE void scale(float s) { v.scale(factor: s); }
336 Q_INVOKABLE void scale(float sx, float sy, float sz) { v.scale(x: sx, y: sy, z: sz); }
337 Q_INVOKABLE void scale(const QVector3D &s) { v.scale(vector: s); }
338 Q_INVOKABLE void lookAt(const QVector3D &eye, const QVector3D &center, const QVector3D &up) { v.lookAt(eye, center, up); }
339
340 Q_INVOKABLE QMatrix4x4 times(const QMatrix4x4 &m) const;
341 Q_INVOKABLE QVector4D times(const QVector4D &vec) const;
342 Q_INVOKABLE QVector3D times(const QVector3D &vec) const;
343 Q_INVOKABLE QMatrix4x4 times(qreal factor) const;
344 Q_INVOKABLE QMatrix4x4 plus(const QMatrix4x4 &m) const;
345 Q_INVOKABLE QMatrix4x4 minus(const QMatrix4x4 &m) const;
346
347 Q_INVOKABLE QVector4D row(int n) const;
348 Q_INVOKABLE QVector4D column(int m) const;
349
350 Q_INVOKABLE qreal determinant() const;
351 Q_INVOKABLE QMatrix4x4 inverted() const;
352 Q_INVOKABLE QMatrix4x4 transposed() const;
353
354 Q_INVOKABLE QPointF map(const QPointF p) const;
355 Q_INVOKABLE QRectF mapRect(const QRectF r) const;
356
357 Q_INVOKABLE bool fuzzyEquals(const QMatrix4x4 &m, qreal epsilon) const;
358 Q_INVOKABLE bool fuzzyEquals(const QMatrix4x4 &m) const;
359
360 operator QMatrix4x4() const { return v; }
361};
362
363class Q_QUICK_EXPORT QQuickPlanarTransform : public QObject
364{
365 Q_OBJECT
366 QML_SINGLETON
367 QML_NAMED_ELEMENT(PlanarTransform)
368 QML_ADDED_IN_VERSION(6, 8)
369
370public:
371 explicit QQuickPlanarTransform(QObject *parent = nullptr);
372
373 Q_INVOKABLE static QMatrix4x4 identity();
374 Q_INVOKABLE static QMatrix4x4 fromAffineMatrix(float scaleX, float shearY,
375 float shearX, float scaleY,
376 float translateX, float translateY);
377 Q_INVOKABLE static QMatrix4x4 fromTranslate(float translateX, float translateY);
378 Q_INVOKABLE static QMatrix4x4 fromScale(float scaleX, float scaleY,
379 float originX = 0, float originY = 0);
380 Q_INVOKABLE static QMatrix4x4 fromRotate(float angle,float originX = 0, float originY = 0);
381 Q_INVOKABLE static QMatrix4x4 fromShear(float shearX, float shearY,
382 float originX = 0, float originY = 0);
383};
384
385namespace QQuickFontEnums
386{
387Q_NAMESPACE_EXPORT(Q_QUICK_EXPORT)
388
389QML_NAMED_ELEMENT(Font)
390QML_ADDED_IN_VERSION(2, 0)
391
392enum FontWeight { Thin = QFont::Thin,
393 ExtraLight = QFont::ExtraLight,
394 Light = QFont::Light,
395 Normal = QFont::Normal,
396 Medium = QFont::Medium,
397 DemiBold = QFont::DemiBold,
398 Bold = QFont::Bold,
399 ExtraBold = QFont::ExtraBold,
400 Black = QFont::Black };
401Q_ENUM_NS(FontWeight)
402enum Capitalization { MixedCase = QFont::MixedCase,
403 AllUppercase = QFont::AllUppercase,
404 AllLowercase = QFont::AllLowercase,
405 SmallCaps = QFont::SmallCaps,
406 Capitalize = QFont::Capitalize };
407Q_ENUM_NS(Capitalization)
408
409enum HintingPreference {
410 PreferDefaultHinting = QFont::PreferDefaultHinting,
411 PreferNoHinting = QFont::PreferNoHinting,
412 PreferVerticalHinting = QFont::PreferVerticalHinting,
413 PreferFullHinting = QFont::PreferFullHinting
414};
415Q_ENUM_NS(HintingPreference)
416};
417
418class Q_QUICK_EXPORT QQuickFontValueType
419{
420 QFont v;
421 Q_GADGET
422
423 Q_PROPERTY(QString family READ family WRITE setFamily FINAL)
424 Q_PROPERTY(QString styleName READ styleName WRITE setStyleName FINAL)
425 Q_PROPERTY(bool bold READ bold WRITE setBold FINAL)
426 Q_PROPERTY(int weight READ weight WRITE setWeight FINAL)
427 Q_PROPERTY(bool italic READ italic WRITE setItalic FINAL)
428 Q_PROPERTY(bool underline READ underline WRITE setUnderline FINAL)
429 Q_PROPERTY(bool overline READ overline WRITE setOverline FINAL)
430 Q_PROPERTY(bool strikeout READ strikeout WRITE setStrikeout FINAL)
431 Q_PROPERTY(qreal pointSize READ pointSize WRITE setPointSize FINAL)
432 Q_PROPERTY(int pixelSize READ pixelSize WRITE setPixelSize FINAL)
433 Q_PROPERTY(QQuickFontEnums::Capitalization capitalization READ capitalization WRITE setCapitalization FINAL)
434 Q_PROPERTY(qreal letterSpacing READ letterSpacing WRITE setLetterSpacing FINAL)
435 Q_PROPERTY(qreal wordSpacing READ wordSpacing WRITE setWordSpacing FINAL)
436 Q_PROPERTY(QQuickFontEnums::HintingPreference hintingPreference READ hintingPreference WRITE setHintingPreference FINAL)
437 Q_PROPERTY(bool kerning READ kerning WRITE setKerning FINAL)
438 Q_PROPERTY(bool preferShaping READ preferShaping WRITE setPreferShaping FINAL)
439 Q_PROPERTY(QVariantMap features READ features WRITE setFeatures FINAL)
440 Q_PROPERTY(QVariantMap variableAxes READ variableAxes WRITE setVariableAxes FINAL)
441 Q_PROPERTY(bool contextFontMerging READ contextFontMerging WRITE setContextFontMerging FINAL)
442 Q_PROPERTY(bool preferTypoLineMetrics READ preferTypoLineMetrics WRITE setPreferTypoLineMetrics FINAL)
443
444 QML_VALUE_TYPE(font)
445 QML_FOREIGN(QFont)
446 QML_ADDED_IN_VERSION(2, 0)
447 QML_EXTENDED(QQuickFontValueType)
448 QML_STRUCTURED_VALUE
449
450public:
451 static QVariant create(const QJSValue &value);
452
453 Q_INVOKABLE QQuickFontValueType() = default;
454 Q_INVOKABLE QString toString() const;
455
456 QString family() const;
457 void setFamily(const QString &);
458
459 QString styleName() const;
460 void setStyleName(const QString &);
461
462 bool bold() const;
463 void setBold(bool b);
464
465 int weight() const;
466 void setWeight(int);
467
468 bool italic() const;
469 void setItalic(bool b);
470
471 bool underline() const;
472 void setUnderline(bool b);
473
474 bool overline() const;
475 void setOverline(bool b);
476
477 bool strikeout() const;
478 void setStrikeout(bool b);
479
480 qreal pointSize() const;
481 void setPointSize(qreal size);
482
483 int pixelSize() const;
484 void setPixelSize(int size);
485
486 QQuickFontEnums::Capitalization capitalization() const;
487 void setCapitalization(QQuickFontEnums::Capitalization);
488
489 qreal letterSpacing() const;
490 void setLetterSpacing(qreal spacing);
491
492 qreal wordSpacing() const;
493 void setWordSpacing(qreal spacing);
494
495 QQuickFontEnums::HintingPreference hintingPreference() const;
496 void setHintingPreference(QQuickFontEnums::HintingPreference);
497
498 bool kerning() const;
499 void setKerning(bool b);
500
501 bool preferShaping() const;
502 void setPreferShaping(bool b);
503
504 QVariantMap features() const;
505 void setFeatures(const QVariantMap &features);
506
507 QVariantMap variableAxes() const;
508 void setVariableAxes(const QVariantMap &variableAxes);
509
510 bool contextFontMerging() const;
511 void setContextFontMerging(bool b);
512
513 bool preferTypoLineMetrics() const;
514 void setPreferTypoLineMetrics(bool b);
515
516 operator QFont() const { return v; }
517};
518
519namespace QQuickColorSpaceEnums
520{
521Q_NAMESPACE_EXPORT(Q_QUICK_EXPORT)
522QML_NAMED_ELEMENT(ColorSpace)
523QML_ADDED_IN_VERSION(2, 15)
524Q_CLASSINFO("RegisterEnumClassesUnscoped", "false")
525
526enum NamedColorSpace {
527 Unknown = 0,
528 SRgb,
529 SRgbLinear,
530 AdobeRgb,
531 DisplayP3,
532 ProPhotoRgb
533};
534Q_ENUM_NS(NamedColorSpace)
535
536enum class Primaries {
537 Custom = 0,
538 SRgb,
539 AdobeRgb,
540 DciP3D65,
541 ProPhotoRgb
542};
543Q_ENUM_NS(Primaries)
544enum class TransferFunction {
545 Custom = 0,
546 Linear,
547 Gamma,
548 SRgb,
549 ProPhotoRgb
550};
551Q_ENUM_NS(TransferFunction)
552}
553
554class Q_QUICK_EXPORT QQuickColorSpaceValueType
555{
556 QColorSpace v;
557 Q_GADGET
558
559 Q_PROPERTY(QQuickColorSpaceEnums::NamedColorSpace namedColorSpace READ namedColorSpace WRITE setNamedColorSpace FINAL)
560 Q_PROPERTY(QQuickColorSpaceEnums::Primaries primaries READ primaries WRITE setPrimaries FINAL)
561 Q_PROPERTY(QQuickColorSpaceEnums::TransferFunction transferFunction READ transferFunction WRITE setTransferFunction FINAL)
562 Q_PROPERTY(float gamma READ gamma WRITE setGamma FINAL)
563
564 QML_ANONYMOUS
565 QML_FOREIGN(QColorSpace)
566 QML_ADDED_IN_VERSION(2, 15)
567 QML_EXTENDED(QQuickColorSpaceValueType)
568 QML_STRUCTURED_VALUE
569
570public:
571 static QVariant create(const QJSValue &params);
572
573 QQuickColorSpaceEnums::NamedColorSpace namedColorSpace() const noexcept;
574 void setNamedColorSpace(QQuickColorSpaceEnums::NamedColorSpace namedColorSpace);
575 QQuickColorSpaceEnums::Primaries primaries() const noexcept;
576 void setPrimaries(QQuickColorSpaceEnums::Primaries primariesId);
577 QQuickColorSpaceEnums::TransferFunction transferFunction() const noexcept;
578 void setTransferFunction(QQuickColorSpaceEnums::TransferFunction transferFunction);
579 float gamma() const noexcept;
580 void setGamma(float gamma);
581
582 operator QColorSpace() const { return v; }
583};
584
585QT_END_NAMESPACE
586
587#endif // QQUICKVALUETYPES_P_H
588

Provided by KDAB

Privacy Policy
Learn to use CMake with our Intro Training
Find out more

source code of qtdeclarative/src/quick/util/qquickvaluetypes_p.h