diff options
Diffstat (limited to 'src/quicknativestyle/util/qquickmacfocusframe.mm')
-rw-r--r-- | src/quicknativestyle/util/qquickmacfocusframe.mm | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/quicknativestyle/util/qquickmacfocusframe.mm b/src/quicknativestyle/util/qquickmacfocusframe.mm new file mode 100644 index 0000000000..c47d3e1b0a --- /dev/null +++ b/src/quicknativestyle/util/qquickmacfocusframe.mm @@ -0,0 +1,31 @@ +// Copyright (C) 2023 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 "qquickmacfocusframe.h" + +#include <AppKit/AppKit.h> + +#include <QtGui/qguiapplication.h> +#include <QtGui/private/qcoregraphics_p.h> + +#include <QtQml/qqmlcomponent.h> + +QT_BEGIN_NAMESPACE + +QQuickItem *QQuickMacFocusFrame::createFocusFrame(QQmlContext *context) +{ + QQmlComponent component( + context->engine(), + QUrl(QStringLiteral( + "qrc:/qt-project.org/imports/QtQuick/NativeStyle/util/MacFocusFrame.qml"))); + auto frame = qobject_cast<QQuickItem *>(component.create()); + if (!frame) + return nullptr; + + auto indicatorColor = qt_mac_toQColor(NSColor.keyboardFocusIndicatorColor.CGColor); + indicatorColor.setAlpha(255); + frame->setProperty("systemFrameColor", indicatorColor); + return frame; +} + +QT_END_NAMESPACE |