Merge remote-tracking branch 'origin/master' into api_changes
[profile/ivi/qtbase.git] / src / corelib / tools / qmargins.cpp
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/
5 **
6 ** This file is part of the QtCore module of the Qt Toolkit.
7 **
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.
16 **
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.
20 **
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.
28 **
29 ** Other Usage
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.
32 **
33 **
34 **
35 **
36 **
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41
42 #include "qmargins.h"
43 #include "qdatastream.h"
44 #include "qdebug.h"
45
46 QT_BEGIN_NAMESPACE
47
48 /*!
49     \class QMargins
50     \ingroup painting
51     \since 4.6
52
53     \brief The QMargins class defines the four margins of a rectangle. 
54
55     QMargin defines a set of four margins; left, top, right and bottom,
56     that describe the size of the borders surrounding a rectangle.
57
58     The isNull() function returns true only if all margins are set to zero.
59
60     QMargin objects can be streamed as well as compared.
61 */
62
63
64 /*****************************************************************************
65   QMargins member functions
66  *****************************************************************************/
67
68 /*!
69     \fn QMargins::QMargins()
70
71     Constructs a margins object with all margins set to 0.
72
73     \sa isNull()
74 */
75
76 /*!
77     \fn QMargins::QMargins(int left, int top, int right, int bottom)
78
79     Constructs margins with the given \a left, \a top, \a right, \a bottom
80
81     \sa setLeft(), setRight(), setTop(), setBottom()
82 */
83
84 /*!
85     \fn bool QMargins::isNull() const
86
87     Returns true if all margins are is 0; otherwise returns
88     false.
89 */
90
91
92 /*!
93     \fn int QMargins::left() const
94
95     Returns the left margin.
96
97     \sa setLeft()
98 */
99
100 /*!
101     \fn int QMargins::top() const
102
103     Returns the top margin.
104
105     \sa setTop()
106 */
107
108 /*!
109     \fn int QMargins::right() const
110
111     Returns the right margin.
112 */
113
114 /*!
115     \fn int QMargins::bottom() const
116
117     Returns the bottom margin.
118 */
119
120
121 /*!
122     \fn void QMargins::setLeft(int left)
123
124     Sets the left margin to \a left.
125 */
126
127 /*!
128     \fn void QMargins::setTop(int Top)
129
130     Sets the Top margin to \a Top.
131 */
132
133 /*!
134     \fn void QMargins::setRight(int right)
135
136     Sets the right margin to \a right.
137 */
138
139 /*!
140     \fn void QMargins::setBottom(int bottom)
141
142     Sets the bottom margin to \a bottom.
143 */
144
145 /*!
146     \fn bool operator==(const QMargins &m1, const QMargins &m2)
147     \relates QMargins
148
149     Returns true if \a m1 and \a m2 are equal; otherwise returns false.
150 */
151
152 /*!
153     \fn bool operator!=(const QMargins &m1, const QMargins &m2)
154     \relates QMargins
155
156     Returns true if \a m1 and \a m2 are different; otherwise returns false.
157 */
158
159 /*****************************************************************************
160   QMargins stream functions
161  *****************************************************************************/
162 #ifndef QT_NO_DATASTREAM
163 /*!
164     \fn QDataStream &operator<<(QDataStream &stream, const QMargins &m)
165     \relates QMargins
166
167     Writes the given \a margin to the given \a stream and returns a
168     reference to the stream.
169
170     \sa {Serializing Qt Data Types}
171 */
172
173 QDataStream &operator<<(QDataStream &s, const QMargins &m)
174 {
175     s << m.left() << m.top() << m.right() << m.bottom();
176     return s;
177 }
178
179 /*!
180     \fn QDataStream &operator>>(QDataStream &stream, QMargins &m)
181     \relates QMargins
182
183     Reads a margin from the given \a stream into the given \a margin
184     and returns a reference to the stream.
185
186     \sa {Serializing Qt Data Types}
187 */
188
189 QDataStream &operator>>(QDataStream &s, QMargins &m)
190 {
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);
196     return s;
197 }
198 #endif // QT_NO_DATASTREAM
199
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() << ')';
204     return dbg.space();
205 }
206 #endif
207
208 QT_END_NAMESPACE