aboutsummaryrefslogtreecommitdiffstats
path: root/src/quickcontrols/fluentwinui3/impl/qquickfluentwinui3focusstroke.cpp
blob: 508d614f1caf035de2f73a57d0894f9bb0a266f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52

// Copyright (C) 2024 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 "qquickfluentwinui3focusstroke_p.h"
#include <QtGui/qpainter.h>
#include <QtGui/qpainterpath.h>
#include <QtQuick/private/qquickitem_p.h>
QT_BEGIN_NAMESPACE
QQuickFluentWinUI3FocusStroke::QQuickFluentWinUI3FocusStroke(QQuickItem *parent)
    : QQuickPaintedItem(parent)
{
}
void QQuickFluentWinUI3FocusStroke::paint(QPainter *painter)
{
    painter->setRenderHint(QPainter::Antialiasing);
    QPainterPath path;
    QRectF rect = boundingRect();
    path.moveTo(rect.left(), rect.top() + m_radius);
    path.lineTo(rect.left(), rect.bottom() - m_radius);
    path.arcTo(QRectF(rect.left(), rect.bottom() - 2 * m_radius, 2 * m_radius, 2 * m_radius), 180, 90);
    path.lineTo(rect.right() - m_radius, rect.bottom());
    path.arcTo(QRectF(rect.right() - 2 * m_radius, rect.bottom() - 2 * m_radius, 2 * m_radius, 2 * m_radius), 270, 90);
    path.lineTo(rect.right(), rect.top() + m_radius);
    path.lineTo(rect.right(), rect.top() + m_radius);
    path.lineTo(rect.right(), rect.top());
    path.lineTo(rect.left(), rect.top());
    painter->fillPath(path, m_color);
}
QColor QQuickFluentWinUI3FocusStroke::color() const
{
    return m_color;
}
void QQuickFluentWinUI3FocusStroke::setColor(const QColor &color)
{
    if (color == m_color)
        return;
    m_color = color;
    update();
}
int QQuickFluentWinUI3FocusStroke::radius() const
{
    return m_radius;
}
void QQuickFluentWinUI3FocusStroke::setRadius(int radius)
{
    if (m_radius == radius)
        return;
    m_radius = radius;
    update();
}
QT_END_NAMESPACE
#include "moc_qquickfluentwinui3focusstroke_p.cpp"