/usr/include/qt5/QtGui/qregion.h is in qtbase5-dev 5.2.1+dfsg-1ubuntu14.3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 | /****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtGui module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Digia gives you certain additional
** rights. These rights are described in the Digia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef QREGION_H
#define QREGION_H
#include <QtCore/qatomic.h>
#include <QtCore/qrect.h>
#include <QtGui/qwindowdefs.h>
#ifndef QT_NO_DATASTREAM
#include <QtCore/qdatastream.h>
#endif
QT_BEGIN_NAMESPACE
template <class T> class QVector;
class QVariant;
struct QRegionPrivate;
class QBitmap;
class Q_GUI_EXPORT QRegion
{
public:
enum RegionType { Rectangle, Ellipse };
QRegion();
QRegion(int x, int y, int w, int h, RegionType t = Rectangle);
QRegion(const QRect &r, RegionType t = Rectangle);
QRegion(const QPolygon &pa, Qt::FillRule fillRule = Qt::OddEvenFill);
QRegion(const QRegion ®ion);
QRegion(const QBitmap &bitmap);
~QRegion();
QRegion &operator=(const QRegion &);
#ifdef Q_COMPILER_RVALUE_REFS
inline QRegion &operator=(QRegion &&other)
{ qSwap(d, other.d); return *this; }
#endif
inline void swap(QRegion &other) { qSwap(d, other.d); }
bool isEmpty() const;
bool isNull() const;
bool contains(const QPoint &p) const;
bool contains(const QRect &r) const;
void translate(int dx, int dy);
inline void translate(const QPoint &p) { translate(p.x(), p.y()); }
QRegion translated(int dx, int dy) const;
inline QRegion translated(const QPoint &p) const { return translated(p.x(), p.y()); }
QRegion united(const QRegion &r) const;
QRegion united(const QRect &r) const;
QRegion intersected(const QRegion &r) const;
QRegion intersected(const QRect &r) const;
QRegion subtracted(const QRegion &r) const;
QRegion xored(const QRegion &r) const;
#if QT_DEPRECATED_SINCE(5, 0)
inline QT_DEPRECATED QRegion unite(const QRegion &r) const { return united(r); }
inline QT_DEPRECATED QRegion unite(const QRect &r) const { return united(r); }
inline QT_DEPRECATED QRegion intersect(const QRegion &r) const { return intersected(r); }
inline QT_DEPRECATED QRegion intersect(const QRect &r) const { return intersected(r); }
inline QT_DEPRECATED QRegion subtract(const QRegion &r) const { return subtracted(r); }
inline QT_DEPRECATED QRegion eor(const QRegion &r) const { return xored(r); }
#endif
bool intersects(const QRegion &r) const;
bool intersects(const QRect &r) const;
QRect boundingRect() const;
QVector<QRect> rects() const;
void setRects(const QRect *rect, int num);
int rectCount() const;
const QRegion operator|(const QRegion &r) const;
const QRegion operator+(const QRegion &r) const;
const QRegion operator+(const QRect &r) const;
const QRegion operator&(const QRegion &r) const;
const QRegion operator&(const QRect &r) const;
const QRegion operator-(const QRegion &r) const;
const QRegion operator^(const QRegion &r) const;
QRegion& operator|=(const QRegion &r);
QRegion& operator+=(const QRegion &r);
QRegion& operator+=(const QRect &r);
QRegion& operator&=(const QRegion &r);
QRegion& operator&=(const QRect &r);
QRegion& operator-=(const QRegion &r);
QRegion& operator^=(const QRegion &r);
bool operator==(const QRegion &r) const;
inline bool operator!=(const QRegion &r) const { return !(operator==(r)); }
operator QVariant() const;
#ifndef QT_NO_DATASTREAM
friend Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QRegion &);
friend Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QRegion &);
#endif
private:
QRegion copy() const; // helper of detach.
void detach();
Q_GUI_EXPORT
friend bool qt_region_strictContains(const QRegion ®ion,
const QRect &rect);
friend struct QRegionPrivate;
#ifndef QT_NO_DATASTREAM
void exec(const QByteArray &ba, int ver = 0, QDataStream::ByteOrder byteOrder = QDataStream::BigEndian);
#endif
struct QRegionData {
QBasicAtomicInt ref;
QRegionPrivate *qt_rgn;
};
struct QRegionData *d;
static struct QRegionData shared_empty;
static void cleanUp(QRegionData *x);
};
/*****************************************************************************
QRegion stream functions
*****************************************************************************/
#ifndef QT_NO_DATASTREAM
Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QRegion &);
Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QRegion &);
#endif
#ifndef QT_NO_DEBUG_STREAM
Q_GUI_EXPORT QDebug operator<<(QDebug, const QRegion &);
#endif
QT_END_NAMESPACE
#endif // QREGION_H
|