1// Copyright (C) 2023 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#ifndef QQUICKFOCUSFRAME_H
5#define QQUICKFOCUSFRAME_H
6
7#include <QtQuick/qquickitem.h>
8#include "qquickstyleitem.h"
9
10QT_BEGIN_NAMESPACE
11
12Q_DECLARE_LOGGING_CATEGORY(lcFocusFrame)
13
14struct QQuickFocusFrameDescription {
15 QQuickItem *target;
16 QQuickStyleMargins margins;
17 const qreal radius = 3;
18 bool isValid() const { return target != nullptr; }
19 static QQuickFocusFrameDescription Invalid;
20};
21
22class QQuickFocusFrame : public QObject
23{
24 Q_OBJECT
25
26public:
27 QQuickFocusFrame();
28
29private:
30 static QScopedPointer<QQuickItem> m_focusFrame;
31
32 virtual QQuickItem *createFocusFrame(QQmlContext *context) = 0;
33 void moveToItem(QQuickItem *item);
34 QQuickFocusFrameDescription getDescriptionForItem(QQuickItem *focusItem) const;
35};
36
37QT_END_NAMESPACE
38
39#endif // QQUICKFOCUSFRAME_H
40

Provided by KDAB

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

source code of qtdeclarative/src/quicknativestyle/util/qquickfocusframe.h