diff options
Diffstat (limited to 'src/quickcontrols/ios/qquickiostheme.mm')
-rw-r--r-- | src/quickcontrols/ios/qquickiostheme.mm | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/src/quickcontrols/ios/qquickiostheme.mm b/src/quickcontrols/ios/qquickiostheme.mm new file mode 100644 index 0000000000..2f7c84ae7e --- /dev/null +++ b/src/quickcontrols/ios/qquickiostheme.mm @@ -0,0 +1,86 @@ +// Copyright (C) 2022 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 + +#include "qquickiostheme_p.h" + +#if defined(Q_OS_APPLE) +#include <QtGui/private/qcoregraphics_p.h> +#endif + +#ifdef Q_OS_IOS +#include <UIKit/UIInterface.h> +#endif + +#include <QtQuickTemplates2/private/qquicktheme_p.h> +#include <QtQuickControls2/private/qquickstyle_p.h> + +QT_BEGIN_NAMESPACE + +void QQuickIOSTheme::initialize(QQuickTheme *theme) +{ + QPalette systemPalette; + + QColor window; + QColor base; + QColor text; + QColor disabledText; + QColor placeholderText; + QColor button; + QColor disabledButton; + QColor white; + QColor lightGray; + QColor gray; + QColor darkGray; +#ifdef Q_OS_IOS + window = qt_mac_toQColor(UIColor.systemGroupedBackgroundColor.CGColor); + base = qt_mac_toQColor(UIColor.secondarySystemGroupedBackgroundColor.CGColor); + text = qt_mac_toQColor(UIColor.labelColor.CGColor); + disabledText = qt_mac_toQColor(UIColor.tertiaryLabelColor.CGColor); + placeholderText = qt_mac_toQColor(UIColor.placeholderTextColor.CGColor); + button = qt_mac_toQColor(UIColor.systemBlueColor.CGColor); + disabledButton = qt_mac_toQColor(UIColor.tertiarySystemFillColor.CGColor); + white = qt_mac_toQColor(UIColor.whiteColor.CGColor); + lightGray = qt_mac_toQColor(UIColor.systemGray6Color.CGColor); + gray = qt_mac_toQColor(UIColor.opaqueSeparatorColor.CGColor); + darkGray = qt_mac_toQColor(UIColor.systemGrayColor.CGColor); +#else + bool isDarkSystemTheme = QQuickStylePrivate::isDarkSystemTheme(); + window = isDarkSystemTheme ? QColor(qRgba(0, 0, 0, 255)) : QColor(qRgba(242, 242, 247, 255)); + base = isDarkSystemTheme ? QColor(qRgba(28, 28, 30, 255)) : QColor(Qt::white); + text = isDarkSystemTheme ? QColor(Qt::white) : QColor(Qt::black); + disabledText = isDarkSystemTheme ? QColor(qRgba(60, 60, 67, 76)) : QColor(qRgba(235, 235, 245, 76)); + placeholderText = isDarkSystemTheme ? QColor(qRgba(235, 235, 245, 76)) : QColor(qRgba(60, 60, 67, 77)); + button = isDarkSystemTheme ? QColor(qRgba(10, 132, 255, 255)) : QColor(qRgba(0, 122, 255, 255)); + disabledButton = isDarkSystemTheme ? QColor(qRgba(118, 118, 128, 61)) : QColor(qRgba(118, 118, 128, 31)); + white = QColor(Qt::white); + lightGray = isDarkSystemTheme ? QColor(qRgba(28, 28, 30, 255)) : QColor(qRgba(242, 242, 247, 255)); + gray = isDarkSystemTheme ? QColor(qRgba(56, 56, 58, 255)) : QColor(qRgba(198, 198, 200, 2555)); + darkGray = QColor(qRgba(142, 142, 147, 255)); +#endif + systemPalette.setColor(QPalette::Window, window); + systemPalette.setColor(QPalette::Base, base); + + systemPalette.setColor(QPalette::WindowText, text); + systemPalette.setColor(QPalette::Disabled, QPalette::WindowText, disabledText); + systemPalette.setColor(QPalette::Text, text); + systemPalette.setColor(QPalette::Disabled, QPalette::Text, disabledText); + systemPalette.setColor(QPalette::PlaceholderText, placeholderText); + + systemPalette.setColor(QPalette::Button, button); + systemPalette.setColor(QPalette::Disabled, QPalette::Button, disabledButton); + systemPalette.setColor(QPalette::ButtonText, white); + systemPalette.setColor(QPalette::Disabled, QPalette::ButtonText, disabledText); + + systemPalette.setColor(QPalette::ToolTipText, text); + systemPalette.setColor(QPalette::Disabled, QPalette::ToolTipText, disabledText); + + systemPalette.setColor(QPalette::Highlight, button.lighter(115)); + + systemPalette.setColor(QPalette::Light, lightGray); + systemPalette.setColor(QPalette::Mid, gray); + systemPalette.setColor(QPalette::Dark, darkGray); + + theme->setPalette(QQuickTheme::System, systemPalette); +} + +QT_END_NAMESPACE |