| 1 | // Copyright (C) 2022 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 QQUICKCOLORDIALOGIMPL_P_H |
| 5 | #define QQUICKCOLORDIALOGIMPL_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 <QtQuickTemplates2/private/qquickdialog_p.h> |
| 19 | |
| 20 | #include "qtquickdialogs2quickimplglobal_p.h" |
| 21 | |
| 22 | QT_BEGIN_NAMESPACE |
| 23 | |
| 24 | class QQuickDialogButtonBox; |
| 25 | class QQuickAbstractColorPicker; |
| 26 | class QQuickColorInputs; |
| 27 | class QQuickSlider; |
| 28 | |
| 29 | class QQuickColorDialogImplAttached; |
| 30 | class QQuickColorDialogImplAttachedPrivate; |
| 31 | class QQuickColorDialogImplPrivate; |
| 32 | |
| 33 | class Q_QUICKDIALOGS2QUICKIMPL_EXPORT QQuickColorDialogImpl : public QQuickDialog |
| 34 | { |
| 35 | Q_OBJECT |
| 36 | Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged) |
| 37 | Q_PROPERTY(qreal hue READ hue WRITE setHue NOTIFY colorChanged) |
| 38 | Q_PROPERTY(qreal saturation READ saturation WRITE setSaturation NOTIFY colorChanged) |
| 39 | Q_PROPERTY(qreal value READ value WRITE setValue NOTIFY colorChanged) |
| 40 | Q_PROPERTY(qreal lightness READ lightness WRITE setLightness NOTIFY colorChanged) |
| 41 | Q_PROPERTY(qreal alpha READ alpha WRITE setAlpha NOTIFY colorChanged FINAL) |
| 42 | Q_PROPERTY(int red READ red WRITE setRed NOTIFY colorChanged FINAL) |
| 43 | Q_PROPERTY(int green READ green WRITE setGreen NOTIFY colorChanged FINAL) |
| 44 | Q_PROPERTY(int blue READ blue WRITE setBlue NOTIFY colorChanged FINAL) |
| 45 | Q_PROPERTY(bool isHsl READ isHsl WRITE setHsl NOTIFY specChanged FINAL) |
| 46 | QML_NAMED_ELEMENT(ColorDialogImpl) |
| 47 | QML_ATTACHED(QQuickColorDialogImplAttached) |
| 48 | QML_ADDED_IN_VERSION(6, 4) |
| 49 | |
| 50 | public: |
| 51 | explicit QQuickColorDialogImpl(QObject *parent = nullptr); |
| 52 | |
| 53 | static QQuickColorDialogImplAttached *qmlAttachedProperties(QObject *object); |
| 54 | |
| 55 | QSharedPointer<QColorDialogOptions> options() const; |
| 56 | void setOptions(const QSharedPointer<QColorDialogOptions> &options); |
| 57 | |
| 58 | QColor color() const; |
| 59 | void setColor(const QColor &c); |
| 60 | |
| 61 | int red() const; |
| 62 | void setRed(int red); |
| 63 | |
| 64 | int green() const; |
| 65 | void setGreen(int green); |
| 66 | |
| 67 | int blue() const; |
| 68 | void setBlue(int blue); |
| 69 | |
| 70 | qreal alpha() const; |
| 71 | void setAlpha(qreal alpha); |
| 72 | |
| 73 | qreal hue() const; |
| 74 | void setHue(qreal hue); |
| 75 | |
| 76 | qreal saturation() const; |
| 77 | void setSaturation(qreal saturation); |
| 78 | |
| 79 | qreal value() const; |
| 80 | void setValue(qreal value); |
| 81 | |
| 82 | qreal lightness() const; |
| 83 | void setLightness(qreal lightness); |
| 84 | |
| 85 | bool isHsl() const; |
| 86 | void setHsl(bool hsl); |
| 87 | |
| 88 | Q_INVOKABLE void invokeEyeDropper(); |
| 89 | |
| 90 | Q_SIGNALS: |
| 91 | void colorChanged(const QColor &color); |
| 92 | void specChanged(); |
| 93 | |
| 94 | private: |
| 95 | Q_DISABLE_COPY(QQuickColorDialogImpl) |
| 96 | Q_DECLARE_PRIVATE(QQuickColorDialogImpl) |
| 97 | }; |
| 98 | |
| 99 | class Q_QUICKDIALOGS2QUICKIMPL_EXPORT QQuickColorDialogImplAttached : public QObject |
| 100 | { |
| 101 | Q_OBJECT |
| 102 | Q_PROPERTY(QQuickDialogButtonBox *buttonBox READ buttonBox WRITE setButtonBox NOTIFY buttonBoxChanged FINAL) |
| 103 | Q_PROPERTY(QQuickAbstractButton *eyeDropperButton READ eyeDropperButton WRITE setEyeDropperButton NOTIFY eyeDropperButtonChanged FINAL) |
| 104 | Q_PROPERTY(QQuickAbstractColorPicker *colorPicker READ colorPicker WRITE setColorPicker NOTIFY |
| 105 | colorPickerChanged FINAL) |
| 106 | Q_PROPERTY(QQuickColorInputs *colorInputs READ colorInputs WRITE setColorInputs NOTIFY |
| 107 | colorInputsChanged FINAL) |
| 108 | Q_PROPERTY(QQuickSlider *alphaSlider READ alphaSlider WRITE setAlphaSlider NOTIFY |
| 109 | alphaSliderChanged FINAL) |
| 110 | Q_MOC_INCLUDE(<QtQuickTemplates2/private/qquickdialogbuttonbox_p.h>) |
| 111 | Q_MOC_INCLUDE(<QtQuickTemplates2/private/qquickabstractbutton_p.h>) |
| 112 | Q_MOC_INCLUDE(<QtQuickTemplates2/private/qquickslider_p.h>) |
| 113 | Q_MOC_INCLUDE("qquickabstractcolorpicker_p.h") |
| 114 | Q_MOC_INCLUDE("qquickcolorinputs_p.h") |
| 115 | |
| 116 | public: |
| 117 | explicit QQuickColorDialogImplAttached(QObject *parent = nullptr); |
| 118 | |
| 119 | QQuickDialogButtonBox *buttonBox() const; |
| 120 | void setButtonBox(QQuickDialogButtonBox *buttonBox); |
| 121 | |
| 122 | QQuickAbstractButton *eyeDropperButton() const; |
| 123 | void setEyeDropperButton(QQuickAbstractButton *eyeDropperButton); |
| 124 | |
| 125 | QQuickAbstractColorPicker *colorPicker() const; |
| 126 | void setColorPicker(QQuickAbstractColorPicker *colorPicker); |
| 127 | |
| 128 | QQuickColorInputs *colorInputs() const; |
| 129 | void setColorInputs(QQuickColorInputs *colorInputs); |
| 130 | |
| 131 | QQuickSlider *alphaSlider() const; |
| 132 | void setAlphaSlider(QQuickSlider *alphaSlider); |
| 133 | |
| 134 | Q_SIGNALS: |
| 135 | void buttonBoxChanged(); |
| 136 | void eyeDropperButtonChanged(); |
| 137 | void colorPickerChanged(); |
| 138 | void colorInputsChanged(); |
| 139 | void alphaSliderChanged(); |
| 140 | |
| 141 | private: |
| 142 | Q_DISABLE_COPY(QQuickColorDialogImplAttached) |
| 143 | Q_DECLARE_PRIVATE(QQuickColorDialogImplAttached) |
| 144 | }; |
| 145 | |
| 146 | QT_END_NAMESPACE |
| 147 | |
| 148 | #endif // QQUICKCOLORDIALOGIMPL_P_H |
| 149 |
