aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicknativestyle/util/qquickmacfocusframe.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/quicknativestyle/util/qquickmacfocusframe.mm')
-rw-r--r--src/quicknativestyle/util/qquickmacfocusframe.mm31
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