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
qmargins.h
Go to the documentation of this file.
1// Copyright (C) 2022 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 QMARGINS_H
6#define QMARGINS_H
7
8#include <QtCore/qcheckedint_impl.h>
9#include <QtCore/qcompare.h>
10#include <QtCore/qnamespace.h>
11
12#include <QtCore/q20type_traits.h>
13#include <QtCore/q23utility.h>
14
16
17QT_ENABLE_P0846_SEMANTICS_FOR(get)
18
19class QDataStream;
20class QMarginsF;
21
22/*****************************************************************************
23 QMargins class
24 *****************************************************************************/
25
27{
28public:
29 constexpr QMargins() noexcept;
30 constexpr QMargins(int left, int top, int right, int bottom) noexcept;
31
32 constexpr bool isNull() const noexcept;
33
34 constexpr int left() const noexcept;
35 constexpr int top() const noexcept;
36 constexpr int right() const noexcept;
37 constexpr int bottom() const noexcept;
38
39 constexpr void setLeft(int left) noexcept;
40 constexpr void setTop(int top) noexcept;
41 constexpr void setRight(int right) noexcept;
42 constexpr void setBottom(int bottom) noexcept;
43
44 constexpr QMargins &operator+=(const QMargins &margins) noexcept;
45 constexpr QMargins &operator-=(const QMargins &margins) noexcept;
46 constexpr QMargins &operator+=(int) noexcept;
47 constexpr QMargins &operator-=(int) noexcept;
48 constexpr QMargins &operator*=(int) noexcept;
49 constexpr QMargins &operator/=(int);
50 constexpr QMargins &operator*=(qreal) noexcept;
51 constexpr QMargins &operator/=(qreal);
52
53 [[nodiscard]] constexpr inline QMarginsF toMarginsF() const noexcept;
54
55 friend constexpr inline QMargins operator+(const QMargins &m1, const QMargins &m2) noexcept;
56 friend constexpr inline QMargins operator-(const QMargins &m1, const QMargins &m2) noexcept;
57 friend constexpr inline QMargins operator+(const QMargins &lhs, int rhs) noexcept;
58 friend constexpr inline QMargins operator+(int lhs, const QMargins &rhs) noexcept;
59 friend constexpr inline QMargins operator-(const QMargins &lhs, int rhs) noexcept;
60 friend constexpr inline QMargins operator*(const QMargins &margins, int factor) noexcept;
61 friend constexpr inline QMargins operator*(int factor, const QMargins &margins) noexcept;
62 friend constexpr inline QMargins operator*(const QMargins &margins, qreal factor) noexcept;
63 friend constexpr inline QMargins operator*(qreal factor, const QMargins &margins) noexcept;
64 friend constexpr inline QMargins operator/(const QMargins &margins, int divisor);
65 friend constexpr inline QMargins operator/(const QMargins &margins, qreal divisor);
66 friend constexpr inline QMargins operator|(const QMargins &m1, const QMargins &m2) noexcept;
67
68private:
70
71 constexpr QMargins(Representation left,
72 Representation top,
73 Representation right,
74 Representation bottom) noexcept
76 {
77 }
78
79 Representation m_left;
80 Representation m_top;
81 Representation m_right;
82 Representation m_bottom;
83
84 friend constexpr bool comparesEqual(const QMargins &lhs, const QMargins &rhs) noexcept
85 {
86 return lhs.m_left == rhs.m_left
87 && lhs.m_top == rhs.m_top
88 && lhs.m_right == rhs.m_right
89 && lhs.m_bottom == rhs.m_bottom;
90 }
92
93 template <std::size_t I,
94 typename M,
95 std::enable_if_t<(I < 4), bool> = true,
97 friend constexpr decltype(auto) get(M &&m) noexcept
98 {
99 if constexpr (I == 0)
101 else if constexpr (I == 1)
103 else if constexpr (I == 2)
105 else if constexpr (I == 3)
107 }
108};
109
111
112/*****************************************************************************
113 QMargins stream functions
114 *****************************************************************************/
115#ifndef QT_NO_DATASTREAM
116Q_CORE_EXPORT QDataStream &operator<<(QDataStream &, const QMargins &);
117Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QMargins &);
118#endif
119
120/*****************************************************************************
121 QMargins inline functions
122 *****************************************************************************/
123
124constexpr inline QMargins::QMargins() noexcept : m_left(0), m_top(0), m_right(0), m_bottom(0) {}
125
126constexpr inline QMargins::QMargins(int aleft, int atop, int aright, int abottom) noexcept
128
129constexpr inline bool QMargins::isNull() const noexcept
130{ return m_left==0 && m_top==0 && m_right==0 && m_bottom==0; }
131
132constexpr inline int QMargins::left() const noexcept
133{ return m_left.value(); }
134
135constexpr inline int QMargins::top() const noexcept
136{ return m_top.value(); }
137
138constexpr inline int QMargins::right() const noexcept
139{ return m_right.value(); }
140
141constexpr inline int QMargins::bottom() const noexcept
142{ return m_bottom.value(); }
143
144
145constexpr inline void QMargins::setLeft(int aleft) noexcept
146{ m_left.setValue(aleft); }
147
148constexpr inline void QMargins::setTop(int atop) noexcept
149{ m_top.setValue(atop); }
150
151constexpr inline void QMargins::setRight(int aright) noexcept
152{ m_right.setValue(aright); }
153
154constexpr inline void QMargins::setBottom(int abottom) noexcept
155{ m_bottom.setValue(abottom); }
156
157constexpr inline QMargins operator+(const QMargins &m1, const QMargins &m2) noexcept
158{
159 return QMargins(m1.m_left + m2.m_left, m1.m_top + m2.m_top,
160 m1.m_right + m2.m_right, m1.m_bottom + m2.m_bottom);
161}
162
163constexpr inline QMargins operator-(const QMargins &m1, const QMargins &m2) noexcept
164{
165 return QMargins(m1.m_left - m2.m_left, m1.m_top - m2.m_top,
166 m1.m_right - m2.m_right, m1.m_bottom - m2.m_bottom);
167}
168
169constexpr inline QMargins operator+(const QMargins &lhs, int rhs) noexcept
170{
171 return QMargins(lhs.m_left + rhs, lhs.m_top + rhs,
172 lhs.m_right + rhs, lhs.m_bottom + rhs);
173}
174
175constexpr inline QMargins operator+(int lhs, const QMargins &rhs) noexcept
176{
177 return QMargins(rhs.m_left + lhs, rhs.m_top + lhs,
178 rhs.m_right + lhs, rhs.m_bottom + lhs);
179}
180
181constexpr inline QMargins operator-(const QMargins &lhs, int rhs) noexcept
182{
183 return QMargins(lhs.m_left - rhs, lhs.m_top - rhs,
184 lhs.m_right - rhs, lhs.m_bottom - rhs);
185}
186
187constexpr inline QMargins operator*(const QMargins &margins, int factor) noexcept
188{
189 return QMargins(margins.m_left * factor, margins.m_top * factor,
190 margins.m_right * factor, margins.m_bottom * factor);
191}
192
193constexpr inline QMargins operator*(int factor, const QMargins &margins) noexcept
194{
195 return QMargins(margins.m_left * factor, margins.m_top * factor,
196 margins.m_right * factor, margins.m_bottom * factor);
197}
198
199constexpr inline QMargins operator*(const QMargins &margins, qreal factor) noexcept
200{
201 // Deliberately using left(), top() etc. (checked ints don't have FP arithmetic)
202 return QMargins(QtPrivate::qSaturateRound(margins.left() * factor),
203 QtPrivate::qSaturateRound(margins.top() * factor),
204 QtPrivate::qSaturateRound(margins.right() * factor),
205 QtPrivate::qSaturateRound(margins.bottom() * factor));
206}
207
208constexpr inline QMargins operator*(qreal factor, const QMargins &margins) noexcept
209{
210 return QMargins(QtPrivate::qSaturateRound(margins.left() * factor),
211 QtPrivate::qSaturateRound(margins.top() * factor),
212 QtPrivate::qSaturateRound(margins.right() * factor),
213 QtPrivate::qSaturateRound(margins.bottom() * factor));
214}
215
216constexpr inline QMargins operator/(const QMargins &margins, int divisor)
217{
218 return QMargins(margins.m_left / divisor, margins.m_top / divisor,
219 margins.m_right / divisor, margins.m_bottom / divisor);
220}
221
222constexpr inline QMargins operator/(const QMargins &margins, qreal divisor)
223{
224 Q_ASSERT(!qFuzzyIsNull(divisor));
225 return QMargins(QtPrivate::qSaturateRound(margins.left() / divisor),
226 QtPrivate::qSaturateRound(margins.top() / divisor),
227 QtPrivate::qSaturateRound(margins.right() / divisor),
228 QtPrivate::qSaturateRound(margins.bottom() / divisor));
229}
230
231constexpr inline QMargins operator|(const QMargins &m1, const QMargins &m2) noexcept
232{
233 return QMargins(qMax(m1.m_left, m2.m_left), qMax(m1.m_top, m2.m_top),
234 qMax(m1.m_right, m2.m_right), qMax(m1.m_bottom, m2.m_bottom));
235}
236
237constexpr inline QMargins &QMargins::operator+=(const QMargins &margins) noexcept
238{
239 return *this = *this + margins;
240}
241
242constexpr inline QMargins &QMargins::operator-=(const QMargins &margins) noexcept
243{
244 return *this = *this - margins;
245}
246
247constexpr inline QMargins &QMargins::operator+=(int margin) noexcept
248{
249 m_left += margin;
250 m_top += margin;
251 m_right += margin;
252 m_bottom += margin;
253 return *this;
254}
255
256constexpr inline QMargins &QMargins::operator-=(int margin) noexcept
257{
258 m_left -= margin;
259 m_top -= margin;
260 m_right -= margin;
261 m_bottom -= margin;
262 return *this;
263}
264
265constexpr inline QMargins &QMargins::operator*=(int factor) noexcept
266{
267 return *this = *this * factor;
268}
269
270constexpr inline QMargins &QMargins::operator/=(int divisor)
271{
272 return *this = *this / divisor;
273}
274
275constexpr inline QMargins &QMargins::operator*=(qreal factor) noexcept
276{
277 return *this = *this * factor;
278}
279
280constexpr inline QMargins &QMargins::operator/=(qreal divisor)
281{
282 return *this = *this / divisor;
283}
284
285constexpr inline QMargins operator+(const QMargins &margins) noexcept
286{
287 return margins;
288}
289
290constexpr inline QMargins operator-(const QMargins &margins) noexcept
291{
292 return QMargins(-margins.left(), -margins.top(), -margins.right(), -margins.bottom());
293}
294
295#ifndef QT_NO_DEBUG_STREAM
296Q_CORE_EXPORT QDebug operator<<(QDebug, const QMargins &);
297#endif
298
299/*****************************************************************************
300 QMarginsF class
301 *****************************************************************************/
302
304{
305public:
306 constexpr QMarginsF() noexcept;
307 constexpr QMarginsF(qreal left, qreal top, qreal right, qreal bottom) noexcept;
308 constexpr QMarginsF(const QMargins &margins) noexcept;
309
310 constexpr bool isNull() const noexcept;
311
312 constexpr qreal left() const noexcept;
313 constexpr qreal top() const noexcept;
314 constexpr qreal right() const noexcept;
315 constexpr qreal bottom() const noexcept;
316
317 constexpr void setLeft(qreal aleft) noexcept;
318 constexpr void setTop(qreal atop) noexcept;
319 constexpr void setRight(qreal aright) noexcept;
320 constexpr void setBottom(qreal abottom) noexcept;
321
322 constexpr QMarginsF &operator+=(const QMarginsF &margins) noexcept;
323 constexpr QMarginsF &operator-=(const QMarginsF &margins) noexcept;
324 constexpr QMarginsF &operator+=(qreal addend) noexcept;
325 constexpr QMarginsF &operator-=(qreal subtrahend) noexcept;
326 constexpr QMarginsF &operator*=(qreal factor) noexcept;
327 constexpr QMarginsF &operator/=(qreal divisor);
328
329 constexpr inline QMargins toMargins() const noexcept;
330
331private:
332 qreal m_left;
333 qreal m_top;
334 qreal m_right;
335 qreal m_bottom;
336
337 friend constexpr bool qFuzzyCompare(const QMarginsF &lhs, const QMarginsF &rhs) noexcept
338 {
339 return QtPrivate::fuzzyCompare(lhs.m_left, rhs.m_left)
340 && QtPrivate::fuzzyCompare(lhs.m_top, rhs.m_top)
341 && QtPrivate::fuzzyCompare(lhs.m_right, rhs.m_right)
342 && QtPrivate::fuzzyCompare(lhs.m_bottom, rhs.m_bottom);
343 }
344 friend constexpr bool qFuzzyIsNull(const QMarginsF &m) noexcept
345 {
346 return qFuzzyIsNull(m.m_left) && qFuzzyIsNull(m.m_top)
347 && qFuzzyIsNull(m.m_right) && qFuzzyIsNull(m.m_bottom);
348 }
349
350 friend constexpr bool comparesEqual(const QMarginsF &lhs, const QMarginsF &rhs) noexcept
351 {
352 return qFuzzyCompare(lhs, rhs);
353 }
355
356 friend constexpr bool comparesEqual(const QMarginsF &lhs, const QMargins &rhs) noexcept
357 { return comparesEqual(lhs, rhs.toMarginsF()); }
359
360 template <std::size_t I,
361 typename M,
362 std::enable_if_t<(I < 4), bool> = true,
364 friend constexpr decltype(auto) get(M &&m) noexcept
365 {
366 if constexpr (I == 0)
367 return q23::forward_like<M>(m.m_left);
368 else if constexpr (I == 1)
369 return q23::forward_like<M>(m.m_top);
370 else if constexpr (I == 2)
371 return q23::forward_like<M>(m.m_right);
372 else if constexpr (I == 3)
373 return q23::forward_like<M>(m.m_bottom);
374 }
375};
376
378
379/*****************************************************************************
380 QMarginsF stream functions
381 *****************************************************************************/
382
383#ifndef QT_NO_DATASTREAM
384Q_CORE_EXPORT QDataStream &operator<<(QDataStream &, const QMarginsF &);
385Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QMarginsF &);
386#endif
387
388/*****************************************************************************
389 QMarginsF inline functions
390 *****************************************************************************/
391
392constexpr inline QMarginsF::QMarginsF() noexcept
393 : m_left(0), m_top(0), m_right(0), m_bottom(0) {}
394
395constexpr inline QMarginsF::QMarginsF(qreal aleft, qreal atop, qreal aright, qreal abottom) noexcept
397
398constexpr inline QMarginsF::QMarginsF(const QMargins &margins) noexcept
400
401constexpr inline bool QMarginsF::isNull() const noexcept
402{ return qFuzzyIsNull(m_left) && qFuzzyIsNull(m_top) && qFuzzyIsNull(m_right) && qFuzzyIsNull(m_bottom); }
403
404constexpr inline qreal QMarginsF::left() const noexcept
405{ return m_left; }
406
407constexpr inline qreal QMarginsF::top() const noexcept
408{ return m_top; }
409
410constexpr inline qreal QMarginsF::right() const noexcept
411{ return m_right; }
412
413constexpr inline qreal QMarginsF::bottom() const noexcept
414{ return m_bottom; }
415
416
417constexpr inline void QMarginsF::setLeft(qreal aleft) noexcept
418{ m_left = aleft; }
419
420constexpr inline void QMarginsF::setTop(qreal atop) noexcept
421{ m_top = atop; }
422
423constexpr inline void QMarginsF::setRight(qreal aright) noexcept
424{ m_right = aright; }
425
426constexpr inline void QMarginsF::setBottom(qreal abottom) noexcept
427{ m_bottom = abottom; }
428
429constexpr inline QMarginsF operator+(const QMarginsF &lhs, const QMarginsF &rhs) noexcept
430{
431 return QMarginsF(lhs.left() + rhs.left(), lhs.top() + rhs.top(),
432 lhs.right() + rhs.right(), lhs.bottom() + rhs.bottom());
433}
434
435constexpr inline QMarginsF operator-(const QMarginsF &lhs, const QMarginsF &rhs) noexcept
436{
437 return QMarginsF(lhs.left() - rhs.left(), lhs.top() - rhs.top(),
438 lhs.right() - rhs.right(), lhs.bottom() - rhs.bottom());
439}
440
441constexpr inline QMarginsF operator+(const QMarginsF &lhs, qreal rhs) noexcept
442{
443 return QMarginsF(lhs.left() + rhs, lhs.top() + rhs,
444 lhs.right() + rhs, lhs.bottom() + rhs);
445}
446
447constexpr inline QMarginsF operator+(qreal lhs, const QMarginsF &rhs) noexcept
448{
449 return QMarginsF(rhs.left() + lhs, rhs.top() + lhs,
450 rhs.right() + lhs, rhs.bottom() + lhs);
451}
452
453constexpr inline QMarginsF operator-(const QMarginsF &lhs, qreal rhs) noexcept
454{
455 return QMarginsF(lhs.left() - rhs, lhs.top() - rhs,
456 lhs.right() - rhs, lhs.bottom() - rhs);
457}
458
459constexpr inline QMarginsF operator*(const QMarginsF &lhs, qreal rhs) noexcept
460{
461 return QMarginsF(lhs.left() * rhs, lhs.top() * rhs,
462 lhs.right() * rhs, lhs.bottom() * rhs);
463}
464
465constexpr inline QMarginsF operator*(qreal lhs, const QMarginsF &rhs) noexcept
466{
467 return QMarginsF(rhs.left() * lhs, rhs.top() * lhs,
468 rhs.right() * lhs, rhs.bottom() * lhs);
469}
470
471constexpr inline QMarginsF operator/(const QMarginsF &lhs, qreal divisor)
472{
473 Q_ASSERT(divisor < 0 || divisor > 0);
474 return QMarginsF(lhs.left() / divisor, lhs.top() / divisor,
475 lhs.right() / divisor, lhs.bottom() / divisor);
476}
477
478constexpr inline QMarginsF operator|(const QMarginsF &m1, const QMarginsF &m2) noexcept
479{
480 return QMarginsF(qMax(m1.left(), m2.left()), qMax(m1.top(), m2.top()),
481 qMax(m1.right(), m2.right()), qMax(m1.bottom(), m2.bottom()));
482}
483
484constexpr inline QMarginsF &QMarginsF::operator+=(const QMarginsF &margins) noexcept
485{
486 return *this = *this + margins;
487}
488
489constexpr inline QMarginsF &QMarginsF::operator-=(const QMarginsF &margins) noexcept
490{
491 return *this = *this - margins;
492}
493
494constexpr inline QMarginsF &QMarginsF::operator+=(qreal addend) noexcept
495{
496 m_left += addend;
497 m_top += addend;
498 m_right += addend;
499 m_bottom += addend;
500 return *this;
501}
502
503constexpr inline QMarginsF &QMarginsF::operator-=(qreal subtrahend) noexcept
504{
505 m_left -= subtrahend;
506 m_top -= subtrahend;
507 m_right -= subtrahend;
508 m_bottom -= subtrahend;
509 return *this;
510}
511
512constexpr inline QMarginsF &QMarginsF::operator*=(qreal factor) noexcept
513{
514 return *this = *this * factor;
515}
516
517constexpr inline QMarginsF &QMarginsF::operator/=(qreal divisor)
518{
519 return *this = *this / divisor;
520}
521
522constexpr inline QMarginsF operator+(const QMarginsF &margins) noexcept
523{
524 return margins;
525}
526
527constexpr inline QMarginsF operator-(const QMarginsF &margins) noexcept
528{
529 return QMarginsF(-margins.left(), -margins.top(), -margins.right(), -margins.bottom());
530}
531
532constexpr QMarginsF QMargins::toMarginsF() const noexcept { return *this; }
533
534constexpr inline QMargins QMarginsF::toMargins() const noexcept
535{
536 return QMargins(QtPrivate::qSaturateRound(m_left),
537 QtPrivate::qSaturateRound(m_top),
538 QtPrivate::qSaturateRound(m_right),
539 QtPrivate::qSaturateRound(m_bottom));
540}
541
542#ifndef QT_NO_DEBUG_STREAM
543Q_CORE_EXPORT QDebug operator<<(QDebug, const QMarginsF &);
544#endif
545
546QT_END_NAMESPACE
547
548/*****************************************************************************
549 QMargins/QMarginsF tuple protocol
550 *****************************************************************************/
551
552namespace std {
553 template <>
555 template <>
556 class tuple_element<0, QT_PREPEND_NAMESPACE(QMargins)> { public: using type = int; };
557 template <>
558 class tuple_element<1, QT_PREPEND_NAMESPACE(QMargins)> { public: using type = int; };
559 template <>
560 class tuple_element<2, QT_PREPEND_NAMESPACE(QMargins)> { public: using type = int; };
561 template <>
562 class tuple_element<3, QT_PREPEND_NAMESPACE(QMargins)> { public: using type = int; };
563
564 template <>
566 template <>
568 template <>
570 template <>
572 template <>
574}
575
576#endif // QMARGINS_H
\inmodule QtCore\reentrant
Definition qdatastream.h:50
\inmodule QtCore
Definition qmargins.h:304
friend constexpr bool qFuzzyIsNull(const QMarginsF &m) noexcept
Definition qmargins.h:344
constexpr QMarginsF & operator-=(const QMarginsF &margins) noexcept
Subtract each component of margins from the respective component of this object and returns a referen...
Definition qmargins.h:489
constexpr qreal right() const noexcept
Returns the right margin.
Definition qmargins.h:410
constexpr qreal left() const noexcept
Returns the left margin.
Definition qmargins.h:404
constexpr QMarginsF() noexcept
Constructs a margins object with all margins set to 0.
Definition qmargins.h:392
constexpr qreal top() const noexcept
Returns the top margin.
Definition qmargins.h:407
constexpr void setLeft(qreal aleft) noexcept
Sets the left margin to aleft (which must be finite).
Definition qmargins.h:417
friend constexpr bool qFuzzyCompare(const QMarginsF &lhs, const QMarginsF &rhs) noexcept
Definition qmargins.h:337
constexpr QMarginsF & operator+=(const QMarginsF &margins) noexcept
Add each component of margins to the respective component of this object and returns a reference to i...
Definition qmargins.h:484
constexpr QMarginsF & operator-=(qreal subtrahend) noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition qmargins.h:503
constexpr QMarginsF & operator/=(qreal divisor)
Divides each component of this object by divisor and returns a reference to this object.
Definition qmargins.h:517
friend constexpr bool comparesEqual(const QMarginsF &lhs, const QMarginsF &rhs) noexcept
Definition qmargins.h:350
constexpr bool isNull() const noexcept
Returns true if all margins are very close to 0; otherwise returns false.
Definition qmargins.h:401
constexpr QMarginsF(const QMargins &margins) noexcept
Constructs margins copied from the given margins.
Definition qmargins.h:398
constexpr QMargins toMargins() const noexcept
Returns an integer-based copy of this margins object.
Definition qmargins.h:534
constexpr QMarginsF & operator*=(qreal factor) noexcept
Multiplies each component of this object by the given finite factor and returns a reference to this o...
Definition qmargins.h:512
constexpr void setRight(qreal aright) noexcept
Sets the right margin to aright (which must be finite).
Definition qmargins.h:423
constexpr QMarginsF(qreal left, qreal top, qreal right, qreal bottom) noexcept
Constructs margins with the given left, top, right, and bottom.
Definition qmargins.h:395
constexpr void setBottom(qreal abottom) noexcept
Sets the bottom margin to abottom (which must be finite).
Definition qmargins.h:426
constexpr void setTop(qreal atop) noexcept
Sets the top margin to atop (which must be finite).
Definition qmargins.h:420
constexpr QMarginsF & operator+=(qreal addend) noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition qmargins.h:494
constexpr qreal bottom() const noexcept
Returns the bottom margin.
Definition qmargins.h:413
\inmodule QtCore
Definition qmargins.h:27
constexpr void setTop(int top) noexcept
Sets the Top margin to Top.
Definition qmargins.h:148
friend constexpr QMargins operator+(const QMargins &lhs, int rhs) noexcept
Returns a QMargins object that is formed by adding rhs to lhs.
Definition qmargins.h:169
constexpr int bottom() const noexcept
Returns the bottom margin.
Definition qmargins.h:141
constexpr QMarginsF toMarginsF() const noexcept
Definition qmargins.h:532
friend constexpr QMargins operator-(const QMargins &lhs, int rhs) noexcept
Returns a QMargins object that is formed by subtracting rhs from lhs.
Definition qmargins.h:181
friend constexpr QMargins operator+(const QMargins &m1, const QMargins &m2) noexcept
Returns a QMargins object that is the sum of the given margins, m1 and m2; each component is added se...
Definition qmargins.h:157
constexpr QMargins & operator-=(int) noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition qmargins.h:256
constexpr bool isNull() const noexcept
Returns true if all margins are is 0; otherwise returns false.
Definition qmargins.h:129
constexpr void setBottom(int bottom) noexcept
Sets the bottom margin to bottom.
Definition qmargins.h:154
friend constexpr QMargins operator*(int factor, const QMargins &margins) noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition qmargins.h:193
constexpr void setLeft(int left) noexcept
Sets the left margin to left.
Definition qmargins.h:145
constexpr QMargins & operator-=(const QMargins &margins) noexcept
Subtract each component of margins from the respective component of this object and returns a referen...
Definition qmargins.h:242
constexpr int left() const noexcept
Returns the left margin.
Definition qmargins.h:132
friend constexpr QMargins operator/(const QMargins &margins, int divisor)
Returns a QMargins object that is formed by dividing the components of the given margins by the given...
Definition qmargins.h:216
constexpr QMargins & operator*=(int) noexcept
Multiplies each component of this object by factor and returns a reference to it.
Definition qmargins.h:265
friend constexpr bool comparesEqual(const QMargins &lhs, const QMargins &rhs) noexcept
Definition qmargins.h:84
constexpr QMargins & operator+=(int) noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition qmargins.h:247
friend constexpr QMargins operator-(const QMargins &m1, const QMargins &m2) noexcept
Returns a QMargins object that is formed by subtracting m2 from m1; each component is subtracted sepa...
Definition qmargins.h:163
friend constexpr QMargins operator|(const QMargins &m1, const QMargins &m2) noexcept
Returns a QMargins object that is formed from the maximum of each component of m2 and m1.
Definition qmargins.h:231
constexpr QMargins & operator/=(int)
Divides each component of this object by divisor and returns a reference to it.
Definition qmargins.h:270
constexpr QMargins & operator+=(const QMargins &margins) noexcept
Add each component of margins to the respective component of this object and returns a reference to i...
Definition qmargins.h:237
constexpr QMargins() noexcept
Constructs a margins object with all margins set to 0.
Definition qmargins.h:124
friend constexpr QMargins operator+(int lhs, const QMargins &rhs) noexcept
Returns a QMargins object that is formed by adding lhs to rhs.
Definition qmargins.h:175
constexpr QMargins(int left, int top, int right, int bottom) noexcept
Constructs margins with the given left, top, right, and bottom.
Definition qmargins.h:126
constexpr int right() const noexcept
Returns the right margin.
Definition qmargins.h:138
constexpr int top() const noexcept
Returns the top margin.
Definition qmargins.h:135
friend constexpr QMargins operator*(const QMargins &margins, int factor) noexcept
Returns a QMargins object that is formed by multiplying each component of the given margins by factor...
Definition qmargins.h:187
constexpr void setRight(int right) noexcept
Sets the right margin to right.
Definition qmargins.h:151
Combined button and popup list for selecting options.
QT_FOR_EACH_CORE_FOUNDATION_TYPE(QT_DECLARE_WEAK_QDEBUG_OPERATOR_FOR_CF_TYPE)
int csr_get_active_config(csr_config_t *) __attribute__((weak_import))
uint32_t csr_config_t
Definition qcore_mac.mm:42
void objc_autoreleasePoolPop(void *pool)
QT_END_NAMESPACE QT_USE_NAMESPACE void * objc_autoreleasePoolPush(void)
QDebug operator<<(QDebug dbg, const NSObject *nsObject)
Definition qcore_mac.mm:207
AppleApplication * qt_apple_sharedApplication()
Definition qcore_mac.mm:513
Q_CONSTRUCTOR_FUNCTION(qt_apple_check_os_version)
Q_CORE_EXPORT bool qt_apple_isApplicationExtension()
Definition qcore_mac.mm:506
Q_CORE_EXPORT bool qt_apple_isSandboxed()
Definition qcore_mac.mm:536
Q_CORE_EXPORT QDebug operator<<(QDebug debug, QDir::Filters filters)
Definition qdir.cpp:2582
QDebug operator<<(QDebug dbg, const QFileInfo &fi)
QDebug operator<<(QDebug debug, QIODevice::OpenMode modes)
constexpr QMarginsF operator*(qreal lhs, const QMarginsF &rhs) noexcept
Definition qmargins.h:465
constexpr QMarginsF operator+(const QMarginsF &lhs, const QMarginsF &rhs) noexcept
Definition qmargins.h:429
constexpr QMarginsF operator|(const QMarginsF &m1, const QMarginsF &m2) noexcept
Definition qmargins.h:478
constexpr QMarginsF operator/(const QMarginsF &lhs, qreal divisor)
Definition qmargins.h:471
constexpr QMargins operator+(const QMargins &margins) noexcept
Definition qmargins.h:285
constexpr QMarginsF operator*(const QMarginsF &lhs, qreal rhs) noexcept
Definition qmargins.h:459
Q_DECLARE_TYPEINFO(QMarginsF, Q_RELOCATABLE_TYPE)
constexpr QMarginsF operator+(qreal lhs, const QMarginsF &rhs) noexcept
Definition qmargins.h:447
constexpr QMarginsF operator+(const QMarginsF &margins) noexcept
Definition qmargins.h:522
Q_DECLARE_TYPEINFO(QMargins, Q_RELOCATABLE_TYPE)
constexpr QMarginsF operator+(const QMarginsF &lhs, qreal rhs) noexcept
Definition qmargins.h:441
constexpr QMarginsF operator-(const QMarginsF &lhs, qreal rhs) noexcept
Definition qmargins.h:453
constexpr QMarginsF operator-(const QMarginsF &lhs, const QMarginsF &rhs) noexcept
Definition qmargins.h:435
constexpr QMargins operator-(const QMargins &margins) noexcept
Definition qmargins.h:290
constexpr QMarginsF operator-(const QMarginsF &margins) noexcept
Definition qmargins.h:527