Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qquickellipseshape_p.h
Go to the documentation of this file.
1// Copyright (C) 2025 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// Qt-Security score:significant reason:default
4
5#ifndef QQUICKELLIPSESHAPE_P_H
6#define QQUICKELLIPSESHAPE_P_H
7
8//
9// W A R N I N G
10// -------------
11//
12// This file is not part of the Qt API. It exists purely as an
13// implementation detail. This header file may change from version to
14// version without notice, or even be removed.
15//
16// We mean it.
17//
18
19#include <QtQuickShapes/private/qquickshape_p.h>
20#include <QtQuickShapesDesignHelpers/qtquickshapesdesignhelpersexports.h>
21
22QT_BEGIN_NAMESPACE
23
24class QQuickEllipseShapePrivate;
25
26class Q_QUICKSHAPESDESIGNHELPERS_EXPORT QQuickEllipseShape : public QQuickShape
27{
28public:
29 Q_OBJECT
30 Q_PROPERTY(qreal sweepAngle READ sweepAngle WRITE setSweepAngle NOTIFY sweepAngleChanged FINAL)
31 Q_PROPERTY(qreal startAngle READ startAngle WRITE setStartAngle NOTIFY startAngleChanged FINAL)
32 Q_PROPERTY(qreal dashOffset READ dashOffset WRITE setDashOffset NOTIFY dashOffsetChanged FINAL)
33 Q_PROPERTY(qreal innerArcRatio READ innerArcRatio WRITE setInnerArcRatio NOTIFY
34 innerArcRatioChanged FINAL)
35 Q_PROPERTY(qreal cornerRadius READ cornerRadius WRITE setCornerRadius NOTIFY cornerRadiusChanged
36 FINAL)
37 Q_PROPERTY(
38 qreal strokeWidth READ strokeWidth WRITE setStrokeWidth NOTIFY strokeWidthChanged FINAL)
39 Q_PROPERTY(QColor fillColor READ fillColor WRITE setFillColor NOTIFY fillColorChanged FINAL)
40 Q_PROPERTY(QColor strokeColor READ strokeColor WRITE setStrokeColor NOTIFY strokeColorChanged
41 FINAL)
42 Q_PROPERTY(QQuickShapePath::CapStyle capStyle READ capStyle WRITE setCapStyle NOTIFY
43 capStyleChanged FINAL)
44 Q_PROPERTY(QQuickShapePath::JoinStyle joinStyle READ joinStyle WRITE setJoinStyle NOTIFY
45 joinStyleChanged FINAL)
46 Q_PROPERTY(QQuickShapePath::StrokeStyle strokeStyle READ strokeStyle WRITE setStrokeStyle NOTIFY
47 strokeStyleChanged FINAL)
48 Q_PROPERTY(QQuickShapePath::FillRule fillRule READ fillRule WRITE setFillRule NOTIFY
49 fillRuleChanged FINAL)
50 Q_PROPERTY(QList<qreal> dashPattern READ dashPattern WRITE setDashPattern NOTIFY
51 dashPatternChanged FINAL)
52 Q_PROPERTY(QQuickShapeGradient *fillGradient READ fillGradient WRITE setFillGradient NOTIFY
53 fillGradientChanged RESET resetFillGradient FINAL)
54 Q_PROPERTY(BorderMode borderMode READ borderMode WRITE setBorderMode NOTIFY borderModeChanged
55 RESET resetBorderMode FINAL)
56 Q_PROPERTY(QQuickItem *fillItem READ fillItem WRITE setFillItem NOTIFY fillItemChanged FINAL REVISION(6, 12))
57
58 QML_NAMED_ELEMENT(EllipseShape)
59 QML_ADDED_IN_VERSION(6, 11)
60
61public:
62 QQuickEllipseShape(QQuickItem *parent = nullptr);
63 ~QQuickEllipseShape() override;
64
65 qreal sweepAngle() const;
66 void setSweepAngle(qreal sweepAngle);
67
68 qreal startAngle() const;
69 void setStartAngle(qreal startAngle);
70
71 qreal dashOffset() const;
72 void setDashOffset(qreal offset);
73
74 qreal innerArcRatio() const;
75 void setInnerArcRatio(qreal innerArcRatio);
76
77 qreal cornerRadius() const;
78 void setCornerRadius(qreal cornerRadius);
79
80 qreal strokeWidth() const;
81 void setStrokeWidth(qreal width);
82
83 QColor fillColor() const;
84 void setFillColor(const QColor &color);
85
86 QColor strokeColor() const;
87 void setStrokeColor(const QColor &color);
88
89 QQuickShapePath::CapStyle capStyle() const;
90 void setCapStyle(QQuickShapePath::CapStyle style);
91
92 QQuickShapePath::JoinStyle joinStyle() const;
93 void setJoinStyle(QQuickShapePath::JoinStyle style);
94
95 QQuickShapePath::StrokeStyle strokeStyle() const;
96 void setStrokeStyle(QQuickShapePath::StrokeStyle style);
97
98 QQuickShapePath::FillRule fillRule() const;
99 void setFillRule(QQuickShapePath::FillRule fillRule);
100
101 QList<qreal> dashPattern() const;
102 void setDashPattern(const QList<qreal> &array);
103
104 QQuickShapeGradient *fillGradient() const;
105 void setFillGradient(QQuickShapeGradient *fillGradient);
106 void resetFillGradient();
107
108 enum class BorderMode { Inside, Middle, Outside };
109 Q_ENUM(BorderMode)
110 BorderMode borderMode() const;
111 void setBorderMode(BorderMode borderMode);
112 void resetBorderMode();
114 QQuickItem *fillItem() const;
115 void setFillItem(QQuickItem *newFillItem);
117Q_SIGNALS:
118 void innerArcRatioChanged();
119 void cornerRadiusChanged();
120 void startAngleChanged();
121 void sweepAngleChanged();
122 void strokeColorChanged();
123 void strokeWidthChanged();
124 void fillColorChanged();
125 void joinStyleChanged();
126 void capStyleChanged();
127 void fillRuleChanged();
128 void strokeStyleChanged();
129 void dashOffsetChanged();
130 void dashPatternChanged();
131 void fillGradientChanged();
132 void borderModeChanged();
133 Q_REVISION(6, 12) void fillItemChanged();
134
135protected:
136 void itemChange(ItemChange change, const ItemChangeData &value) override;
137
138private:
139 Q_DISABLE_COPY(QQuickEllipseShape)
140 Q_DECLARE_PRIVATE(QQuickEllipseShape)
141};
142
143QT_END_NAMESPACE
144
145#endif // QQUICKELLIPSE1SHAPE_P_H
qreal angle_between_vectors(QVector2D a, QVector2D b)
qreal cross(QVector2D a, QVector2D b)
qreal arc_angle(qreal angle)
QVector2D tangent_ccw(QVector2D radius, qreal angle)
bool lines_intersect(QVector2D a, QVector2D b, QVector2D c, QVector2D d, qreal *s, qreal *t)
qreal cross(QVector2D a, QVector2D b, QVector2D c, QVector2D d)
bool is_equal(qreal a, qreal b, qreal epsilon=DBL_EPSILON)
QVector2D arc_point(QVector2D center, QVector2D radius, qreal angle)