1 /****************************************************************************
3 ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/
6 ** This file is part of the QtCore module of the Qt Toolkit.
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** GNU Lesser General Public License Usage
10 ** This file may be used under the terms of the GNU Lesser General Public
11 ** License version 2.1 as published by the Free Software Foundation and
12 ** appearing in the file LICENSE.LGPL included in the packaging of this
13 ** file. Please review the following information to ensure the GNU Lesser
14 ** General Public License version 2.1 requirements will be met:
15 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
17 ** In addition, as a special exception, Nokia gives you certain additional
18 ** rights. These rights are described in the Nokia Qt LGPL Exception
19 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
21 ** GNU General Public License Usage
22 ** Alternatively, this file may be used under the terms of the GNU General
23 ** Public License version 3.0 as published by the Free Software Foundation
24 ** and appearing in the file LICENSE.GPL included in the packaging of this
25 ** file. Please review the following information to ensure the GNU General
26 ** Public License version 3.0 requirements will be met:
27 ** http://www.gnu.org/copyleft/gpl.html.
30 ** Alternatively, this file may be used in accordance with the terms and
31 ** conditions contained in a signed written agreement between you and Nokia.
40 ****************************************************************************/
43 #include "qdatastream.h"
53 \brief The QMargins class defines the four margins of a rectangle.
55 QMargin defines a set of four margins; left, top, right and bottom,
56 that describe the size of the borders surrounding a rectangle.
58 The isNull() function returns true only if all margins are set to zero.
60 QMargin objects can be streamed as well as compared.
64 /*****************************************************************************
65 QMargins member functions
66 *****************************************************************************/
69 \fn QMargins::QMargins()
71 Constructs a margins object with all margins set to 0.
77 \fn QMargins::QMargins(int left, int top, int right, int bottom)
79 Constructs margins with the given \a left, \a top, \a right, \a bottom
81 \sa setLeft(), setRight(), setTop(), setBottom()
85 \fn bool QMargins::isNull() const
87 Returns true if all margins are is 0; otherwise returns
93 \fn int QMargins::left() const
95 Returns the left margin.
101 \fn int QMargins::top() const
103 Returns the top margin.
109 \fn int QMargins::right() const
111 Returns the right margin.
115 \fn int QMargins::bottom() const
117 Returns the bottom margin.
122 \fn void QMargins::setLeft(int left)
124 Sets the left margin to \a left.
128 \fn void QMargins::setTop(int Top)
130 Sets the Top margin to \a Top.
134 \fn void QMargins::setRight(int right)
136 Sets the right margin to \a right.
140 \fn void QMargins::setBottom(int bottom)
142 Sets the bottom margin to \a bottom.
146 \fn bool operator==(const QMargins &m1, const QMargins &m2)
149 Returns true if \a m1 and \a m2 are equal; otherwise returns false.
153 \fn bool operator!=(const QMargins &m1, const QMargins &m2)
156 Returns true if \a m1 and \a m2 are different; otherwise returns false.
159 /*****************************************************************************
160 QMargins stream functions
161 *****************************************************************************/
162 #ifndef QT_NO_DATASTREAM
164 \fn QDataStream &operator<<(QDataStream &stream, const QMargins &m)
167 Writes the given \a margin to the given \a stream and returns a
168 reference to the stream.
170 \sa {Serializing Qt Data Types}
173 QDataStream &operator<<(QDataStream &s, const QMargins &m)
175 s << m.left() << m.top() << m.right() << m.bottom();
180 \fn QDataStream &operator>>(QDataStream &stream, QMargins &m)
183 Reads a margin from the given \a stream into the given \a margin
184 and returns a reference to the stream.
186 \sa {Serializing Qt Data Types}
189 QDataStream &operator>>(QDataStream &s, QMargins &m)
191 int left, top, right, bottom;
192 s >> left; m.setLeft(left);
193 s >> top; m.setTop(top);
194 s >> right; m.setRight(right);
195 s >> bottom; m.setBottom(bottom);
198 #endif // QT_NO_DATASTREAM
200 #ifndef QT_NO_DEBUG_STREAM
201 QDebug operator<<(QDebug dbg, const QMargins &m) {
202 dbg.nospace() << "QMargins(" << m.left() << ", "
203 << m.top() << ", " << m.right() << ", " << m.bottom() << ')';