1// Copyright (C) 2024 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#include "qquickfluentwinui3theme_p.h"
5
6#include <QtQuickControls2/private/qquickstyleplugin_p.h>
7#include <QtQuickControls2/private/qquickstyleplugin_p.h>
8#include <QtQuickTemplates2/private/qquicktheme_p.h>
9
10#include "qquickfluentwinui3focusframe_p.h"
11
12QT_BEGIN_NAMESPACE
13
14extern void qml_register_types_QtQuick_Controls_FluentWinUI3();
15Q_GHS_KEEP_REFERENCE(qml_register_types_QtQuick_Controls_FluentWinUI3);
16
17class QtQuickControls2FluentWinUI3StylePlugin : public QQuickStylePlugin
18{
19 Q_OBJECT
20 Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
21
22public:
23 QtQuickControls2FluentWinUI3StylePlugin(QObject *parent = nullptr);
24
25 QString name() const override;
26 void initializeEngine(QQmlEngine *engine, const char *uri) override;
27 void initializeTheme(QQuickTheme *theme) override;
28 void updateTheme() override;
29
30 QQuickFluentWinUI3Theme theme;
31 QScopedPointer<QQuickFluentWinUI3FocusFrame> m_focusFrame;
32};
33
34QtQuickControls2FluentWinUI3StylePlugin::QtQuickControls2FluentWinUI3StylePlugin(QObject *parent) : QQuickStylePlugin(parent)
35{
36 volatile auto registration = &qml_register_types_QtQuick_Controls_FluentWinUI3;
37 Q_UNUSED(registration);
38}
39
40QString QtQuickControls2FluentWinUI3StylePlugin::name() const
41{
42 return QStringLiteral("FluentWinUI3");
43}
44
45void QtQuickControls2FluentWinUI3StylePlugin::initializeEngine(QQmlEngine *engine, const char *uri)
46{
47 QQuickStylePlugin::initializeEngine(engine, uri);
48 m_focusFrame.reset(other: new QQuickFluentWinUI3FocusFrame());
49}
50
51void QtQuickControls2FluentWinUI3StylePlugin::initializeTheme(QQuickTheme *theme)
52{
53 this->theme.initialize(theme);
54}
55
56void QtQuickControls2FluentWinUI3StylePlugin::updateTheme()
57{
58 QQuickTheme *theme = QQuickTheme::instance();
59 QPalette palette;
60 this->theme.updatePalette(palette);
61 theme->setPalette(scope: QQuickTheme::System, palette);
62}
63
64QT_END_NAMESPACE
65
66#include "qtquickcontrols2fluentwinui3styleplugin.moc"
67

Provided by KDAB

Privacy Policy
Start learning QML with our Intro Training
Find out more

source code of qtdeclarative/src/quickcontrols/fluentwinui3/qtquickcontrols2fluentwinui3styleplugin.cpp