Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qquickpalette_p.h
Go to the documentation of this file.
1// Copyright (C) 2020 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// Qt-Security score:significant reason:default
4#ifndef QQUICKPALETTE_H
5#define QQUICKPALETTE_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 for the convenience
12// of QQuickPalette. 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 <QtQuick/private/qquickcolorgroup_p.h>
19
20#include <QtCore/qpointer.h>
21
22#include <array>
23
24QT_BEGIN_NAMESPACE
25
26class QQuickAbstractPaletteProvider;
27
28class Q_QUICK_EXPORT QQuickPalette : public QQuickColorGroup
29{
30 Q_OBJECT
31
32 Q_PROPERTY(QQuickColorGroup *active READ active WRITE setActive RESET resetActive NOTIFY activeChanged FINAL)
33 Q_PROPERTY(QQuickColorGroup *inactive READ inactive WRITE setInactive RESET resetInactive NOTIFY inactiveChanged FINAL)
34 Q_PROPERTY(QQuickColorGroup *disabled READ disabled WRITE setDisabled RESET resetDisabled NOTIFY disabledChanged FINAL)
35 QML_NAMED_ELEMENT(Palette)
36 QML_ADDED_IN_VERSION(6, 0)
37
38public: // Types
39 using PalettePtr = QPointer<QQuickPalette>;
40
41public:
42 Q_DISABLE_COPY_MOVE(QQuickPalette)
43 explicit QQuickPalette(QObject *parent = nullptr);
44
45 QQuickColorGroup *active() const;
46 QQuickColorGroup *inactive() const;
47 QQuickColorGroup *disabled() const;
48 void resetActive();
49 void resetInactive();
50 void resetDisabled();
51
52 QPalette::ColorGroup currentColorGroup() const override;
53 void setCurrentGroup(QPalette::ColorGroup currentGroup);
54
55 void fromQPalette(QPalette palette);
56 QPalette toQPalette() const;
57
58 const QQuickAbstractPaletteProvider *paletteProvider() const;
59 void setPaletteProvider(const QQuickAbstractPaletteProvider *paletteProvider);
60
61 void reset();
62
63 void inheritPalette(const QPalette &palette);
64
65public Q_SLOTS:
66 void setActive(QQuickColorGroup *active);
67 void setInactive(QQuickColorGroup *inactive);
68 void setDisabled(QQuickColorGroup *disabled);
69
70Q_SIGNALS:
71 void activeChanged();
72 void inactiveChanged();
73 void disabledChanged();
74
75private:
76 void setColorGroup(QPalette::ColorGroup groupTag,
77 const QQuickColorGroup::GroupPtr &group,
78 void (QQuickPalette::*notifier)());
79
80 QQuickColorGroup::GroupPtr colorGroup(QPalette::ColorGroup groupTag) const;
81 QQuickColorGroup::GroupPtr findColorGroup(QPalette::ColorGroup groupTag) const;
82
83 void registerColorGroup(QQuickColorGroup *group, QPalette::ColorGroup groupTag);
84
85 bool isValidColorGroup(QPalette::ColorGroup groupTag,
86 const QQuickColorGroup::GroupPtr &colorGroup) const;
87
88 static constexpr QPalette::ColorGroup defaultCurrentGroup() { return QPalette::Active; }
89
90private:
91 std::array<QQuickColorGroup::GroupPtr, QPalette::NColorGroups> m_colorGroups = {};
92 QPalette::ColorGroup m_currentGroup;
93};
94
95QT_END_NAMESPACE
96
97#endif // QQUICKPALETTE_H
Contains color groups for each QML item state. \inmodule QtQuick.
static QT_BEGIN_NAMESPACE constexpr bool is_valid(QPalette::ColorGroup cg) noexcept