8#include <QtGui/qtguiglobal.h>
9#include <QtCore/qatomic.h>
10#include <QtCore/qrect.h>
11#include <QtGui/qwindowdefs.h>
13#ifndef QT_NO_DATASTREAM
14#include <QtCore/qdatastream.h>
16#include <QtCore/qspan.h>
30 enum RegionType { Rectangle, Ellipse };
33 QRegion(
int x,
int y,
int w,
int h, RegionType t = Rectangle);
34 QRegion(
const QRect &r, RegionType t = Rectangle);
35 QRegion(
const QPolygon &pa, Qt::FillRule fillRule = Qt::OddEvenFill);
36 QRegion(
const QRegion ®ion);
37 QRegion(QRegion &&other)
noexcept
38 : d(std::exchange(other.d,
const_cast<QRegionData*>(&shared_empty))) {}
39 QRegion(
const QBitmap &bitmap);
41 QRegion &operator=(
const QRegion &);
42 QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_PURE_SWAP(QRegion)
43 void swap(QRegion &other)
noexcept { qt_ptr_swap(d, other.d); }
47 typedef const QRect *const_iterator;
48 typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
50 const_iterator begin()
const noexcept;
51 const_iterator cbegin()
const noexcept {
return begin(); }
52 const_iterator end()
const noexcept;
53 const_iterator cend()
const noexcept {
return end(); }
54 const_reverse_iterator rbegin()
const noexcept {
return const_reverse_iterator(end()); }
55 const_reverse_iterator crbegin()
const noexcept {
return rbegin(); }
56 const_reverse_iterator rend()
const noexcept {
return const_reverse_iterator(begin()); }
57 const_reverse_iterator crend()
const noexcept {
return rend(); }
59 bool contains(
const QPoint &p)
const;
60 bool contains(
const QRect &r)
const;
62 void translate(
int dx,
int dy);
63 inline void translate(
const QPoint &p) { translate(p.x(), p.y()); }
64 [[nodiscard]] QRegion translated(
int dx,
int dy)
const;
65 [[nodiscard]]
inline QRegion translated(
const QPoint &p)
const {
return translated(p.x(), p.y()); }
67 [[nodiscard]] QRegion united(
const QRegion &r)
const;
68 [[nodiscard]] QRegion united(
const QRect &r)
const;
69 [[nodiscard]] QRegion intersected(
const QRegion &r)
const;
70 [[nodiscard]] QRegion intersected(
const QRect &r)
const;
71 [[nodiscard]] QRegion subtracted(
const QRegion &r)
const;
72 [[nodiscard]] QRegion xored(
const QRegion &r)
const;
74 bool intersects(
const QRegion &r)
const;
75 bool intersects(
const QRect &r)
const;
77 QRect boundingRect()
const noexcept;
78 void setRects(
const QRect *rect,
int num);
79 void setRects(QSpan<
const QRect> r);
80 QSpan<
const QRect> rects()
const noexcept;
81 int rectCount()
const noexcept;
83 QRegion operator|(
const QRegion &r)
const;
84 QRegion operator+(
const QRegion &r)
const;
85 QRegion operator+(
const QRect &r)
const;
86 QRegion operator&(
const QRegion &r)
const;
87 QRegion operator&(
const QRect &r)
const;
88 QRegion operator-(
const QRegion &r)
const;
89 QRegion operator^(
const QRegion &r)
const;
91 QRegion& operator|=(
const QRegion &r);
92 QRegion& operator+=(
const QRegion &r);
93 QRegion& operator+=(
const QRect &r);
94 QRegion& operator&=(
const QRegion &r);
95 QRegion& operator&=(
const QRect &r);
96 QRegion& operator-=(
const QRegion &r);
97 QRegion& operator^=(
const QRegion &r);
99 bool operator==(
const QRegion &r)
const;
100 inline bool operator!=(
const QRegion &r)
const {
return !(operator==(r)); }
101 operator QVariant()
const;
104#if defined(Q_OS_WIN) || defined(Q_QDOC)
106 static QRegion fromHRGN(HRGN hrgn);
109#ifndef QT_NO_DATASTREAM
110 friend Q_GUI_EXPORT QDataStream &operator<<(QDataStream &,
const QRegion &);
111 friend Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QRegion &);
114 QRegion copy()
const;
117 friend bool qt_region_strictContains(
const QRegion ®ion,
119 friend struct QRegionPrivate;
121#ifndef QT_NO_DATASTREAM
122 void exec(
const QByteArray &ba,
int ver = 0, QDataStream::ByteOrder byteOrder = QDataStream::BigEndian);
125 QtPrivate::RefCount ref = Q_REFCOUNT_INITIALIZE_OWNED;
126 QRegionPrivate *qt_rgn;
128 struct QRegionData *d;
129 static const struct QRegionData shared_empty;
130 static void cleanUp(QRegionData *x);
135
136
138#ifndef QT_NO_DATASTREAM
139Q_GUI_EXPORT
QDataStream &operator<<(QDataStream &,
const QRegion &);
143#ifndef QT_NO_DEBUG_STREAM
144Q_GUI_EXPORT
QDebug operator<<(QDebug,
const QRegion &);
\inmodule QtCore\reentrant
QPaintEngine * paintEngine() const override
int metric(PaintDeviceMetric m) const override
The QPainterPathStroker class is used to generate fillable outlines for a given painter path.
void setCurveThreshold(qreal threshold)
Specifies the curve flattening threshold, controlling the granularity with which the generated outlin...
Qt::PenJoinStyle joinStyle() const
Returns the join style of the generated outlines.
QList< qreal > dashPattern() const
Returns the dash pattern for the generated outlines.
QPainterPathStroker(const QPen &pen)
Creates a new stroker based on pen.
void setDashPattern(Qt::PenStyle)
Sets the dash pattern for the generated outlines to style.
qreal miterLimit() const
Returns the miter limit for the generated outlines.
qreal curveThreshold() const
Returns the curve flattening threshold for the generated outlines.
Qt::PenCapStyle capStyle() const
Returns the cap style of the generated outlines.
void setDashPattern(const QList< qreal > &dashPattern)
This is an overloaded member function, provided for convenience. It differs from the above function o...
qreal width() const
Returns the width of the generated outlines.
void setDashOffset(qreal offset)
Sets the dash offset for the generated outlines to offset.
void setCapStyle(Qt::PenCapStyle style)
Sets the cap style of the generated outlines to style.
void setWidth(qreal width)
Sets the width of the generated outline painter path to width.
QPainterPath createStroke(const QPainterPath &path) const
Generates a new path that is a fillable area representing the outline of the given path.
void setJoinStyle(Qt::PenJoinStyle style)
Sets the join style of the generated outlines to style.
qreal dashOffset() const
Returns the dash offset for the generated outlines.
void setMiterLimit(qreal length)
Sets the miter limit of the generated outlines to limit.
friend class QPaintEngine
The QPolygonF class provides a list of points using floating point precision.
The QRegion class specifies a clip region for a painter.
Combined button and popup list for selecting options.
QDataStream & operator>>(QDataStream &s, QKeyCombination &combination)
Q_CORE_EXPORT QDebug operator<<(QDebug debug, QDir::Filters filters)
QPainterPath operator*(const QPainterPath &p, const QTransform &m)
static const quint16 mfhdr_maj
QT_BEGIN_NAMESPACE void qt_format_text(const QFont &fnt, const QRectF &_r, int tf, int alignment, const QTextOption *opt, const QString &str, QRectF *brect, int tabstops, int *, int tabarraylen, QPainter *painter)
static const quint16 mfhdr_min
const char * qt_mfhdr_tag