aboutsummaryrefslogtreecommitdiffstats
path: root/src/quickcontrols/universal/qquickuniversalstyle_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/quickcontrols/universal/qquickuniversalstyle_p.h')
-rw-r--r--src/quickcontrols/universal/qquickuniversalstyle_p.h213
1 files changed, 213 insertions, 0 deletions
diff --git a/src/quickcontrols/universal/qquickuniversalstyle_p.h b/src/quickcontrols/universal/qquickuniversalstyle_p.h
new file mode 100644
index 0000000000..c97483a5bc
--- /dev/null
+++ b/src/quickcontrols/universal/qquickuniversalstyle_p.h
@@ -0,0 +1,213 @@
+// Copyright (C) 2017 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 QQUICKUNIVERSALSTYLE_P_H
+#define QQUICKUNIVERSALSTYLE_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 <QtGui/qcolor.h>
+#include <QtQml/qqml.h>
+#include <QtQuickControls2/qquickattachedpropertypropagator.h>
+#include <QtQuickControls2Universal/qtquickcontrols2universalexports.h>
+
+QT_BEGIN_NAMESPACE
+
+class QQuickUniversalStylePrivate;
+
+class Q_QUICKCONTROLS2UNIVERSAL_EXPORT QQuickUniversalStyle : public QQuickAttachedPropertyPropagator
+{
+ Q_OBJECT
+ Q_PROPERTY(Theme theme READ theme WRITE setTheme RESET resetTheme NOTIFY themeChanged FINAL)
+ Q_PROPERTY(QVariant accent READ accent WRITE setAccent RESET resetAccent NOTIFY accentChanged FINAL)
+ Q_PROPERTY(QVariant foreground READ foreground WRITE setForeground RESET resetForeground NOTIFY foregroundChanged FINAL)
+ Q_PROPERTY(QVariant background READ background WRITE setBackground RESET resetBackground NOTIFY backgroundChanged FINAL)
+
+ Q_PROPERTY(QColor altHighColor READ altHighColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(QColor altLowColor READ altLowColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(QColor altMediumColor READ altMediumColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(QColor altMediumHighColor READ altMediumHighColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(QColor altMediumLowColor READ altMediumLowColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(QColor baseHighColor READ baseHighColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(QColor baseLowColor READ baseLowColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(QColor baseMediumColor READ baseMediumColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(QColor baseMediumHighColor READ baseMediumHighColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(QColor baseMediumLowColor READ baseMediumLowColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(QColor chromeAltLowColor READ chromeAltLowColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(QColor chromeBlackHighColor READ chromeBlackHighColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(QColor chromeBlackLowColor READ chromeBlackLowColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(QColor chromeBlackMediumLowColor READ chromeBlackMediumLowColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(QColor chromeBlackMediumColor READ chromeBlackMediumColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(QColor chromeDisabledHighColor READ chromeDisabledHighColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(QColor chromeDisabledLowColor READ chromeDisabledLowColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(QColor chromeHighColor READ chromeHighColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(QColor chromeLowColor READ chromeLowColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(QColor chromeMediumColor READ chromeMediumColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(QColor chromeMediumLowColor READ chromeMediumLowColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(QColor chromeWhiteColor READ chromeWhiteColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(QColor listLowColor READ listLowColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(QColor listMediumColor READ listMediumColor NOTIFY paletteChanged FINAL)
+
+ QML_NAMED_ELEMENT(Universal)
+ QML_ATTACHED(QQuickUniversalStyle)
+ QML_UNCREATABLE("")
+ QML_ADDED_IN_VERSION(2, 0)
+
+public:
+ explicit QQuickUniversalStyle(QObject *parent = nullptr);
+
+ static QQuickUniversalStyle *qmlAttachedProperties(QObject *object);
+
+ enum Theme { Light, Dark, System };
+ Q_ENUM(Theme)
+
+ Theme theme() const;
+ void setTheme(Theme theme);
+ void inheritTheme(Theme theme);
+ void propagateTheme();
+ void resetTheme();
+
+ enum Color {
+ Lime,
+ Green,
+ Emerald,
+ Teal,
+ Cyan,
+ Cobalt,
+ Indigo,
+ Violet,
+ Pink,
+ Magenta,
+ Crimson,
+ Red,
+ Orange,
+ Amber,
+ Yellow,
+ Brown,
+ Olive,
+ Steel,
+ Mauve,
+ Taupe
+ };
+ Q_ENUM(Color)
+
+ QVariant accent() const;
+ void setAccent(const QVariant &accent);
+ void inheritAccent(QRgb accent);
+ void propagateAccent();
+ void resetAccent();
+
+ QVariant foreground() const;
+ void setForeground(const QVariant &foreground);
+ void inheritForeground(QRgb foreground, bool has);
+ void propagateForeground();
+ void resetForeground();
+
+ QVariant background() const;
+ void setBackground(const QVariant &background);
+ void inheritBackground(QRgb background, bool has);
+ void propagateBackground();
+ void resetBackground();
+
+ Q_INVOKABLE QColor color(Color color) const;
+
+ QColor altHighColor() const;
+ QColor altLowColor() const;
+ QColor altMediumColor() const;
+ QColor altMediumHighColor() const;
+ QColor altMediumLowColor() const;
+ QColor baseHighColor() const;
+ QColor baseLowColor() const;
+ QColor baseMediumColor() const;
+ QColor baseMediumHighColor() const;
+ QColor baseMediumLowColor() const;
+ QColor chromeAltLowColor() const;
+ QColor chromeBlackHighColor() const;
+ QColor chromeBlackLowColor() const;
+ QColor chromeBlackMediumLowColor() const;
+ QColor chromeBlackMediumColor() const;
+ QColor chromeDisabledHighColor() const;
+ QColor chromeDisabledLowColor() const;
+ QColor chromeHighColor() const;
+ QColor chromeLowColor() const;
+ QColor chromeMediumColor() const;
+ QColor chromeMediumLowColor() const;
+ QColor chromeWhiteColor() const;
+ QColor listLowColor() const;
+ QColor listMediumColor() const;
+
+ enum SystemColor {
+ AltHigh,
+ AltLow,
+ AltMedium,
+ AltMediumHigh,
+ AltMediumLow,
+ BaseHigh,
+ BaseLow,
+ BaseMedium,
+ BaseMediumHigh,
+ BaseMediumLow,
+ ChromeAltLow,
+ ChromeBlackHigh,
+ ChromeBlackLow,
+ ChromeBlackMediumLow,
+ ChromeBlackMedium,
+ ChromeDisabledHigh,
+ ChromeDisabledLow,
+ ChromeHigh,
+ ChromeLow,
+ ChromeMedium,
+ ChromeMediumLow,
+ ChromeWhite,
+ ListLow,
+ ListMedium
+ };
+
+ QColor systemColor(SystemColor role) const;
+
+ static void initGlobals();
+
+Q_SIGNALS:
+ void themeChanged();
+ void accentChanged();
+ void foregroundChanged();
+ void backgroundChanged();
+ void paletteChanged();
+
+protected:
+ void attachedParentChange(QQuickAttachedPropertyPropagator *newParent, QQuickAttachedPropertyPropagator *oldParent) override;
+
+private:
+ bool variantToRgba(const QVariant &var, const char *name, QRgb *rgba) const;
+
+ // These reflect whether a color value was explicitly set on the specific
+ // item that this attached style object represents.
+ bool m_explicitTheme = false;
+ bool m_explicitAccent = false;
+ bool m_explicitForeground = false;
+ bool m_explicitBackground = false;
+ // These will be true when this item has an explicit or inherited foreground/background
+ // color, or these colors were declared globally via settings (e.g. conf or env vars).
+ // Some color properties of the style will return different values depending on whether
+ // or not these are set.
+ bool m_hasForeground = false;
+ bool m_hasBackground = false;
+ // The actual values for this item, whether explicit, inherited or globally set.
+ Theme m_theme = Light;
+ QRgb m_accent = Qt::blue;
+ QRgb m_foreground = Qt::black;
+ QRgb m_background = Qt::white;
+};
+
+QT_END_NAMESPACE
+
+#endif // QQUICKUNIVERSALSTYLE_P_H