File indexing completed on 2025-09-16 09:05:13
0001
0002
0003
0004 #ifndef QPAGELAYOUT_H
0005 #define QPAGELAYOUT_H
0006
0007 #include <QtGui/qtguiglobal.h>
0008 #include <QtCore/qshareddata.h>
0009 #include <QtCore/qstring.h>
0010 #include <QtCore/qmargins.h>
0011
0012 #include <QtGui/qpagesize.h>
0013
0014 QT_BEGIN_NAMESPACE
0015
0016 class QPageLayoutPrivate;
0017 class QMarginsF;
0018
0019 class Q_GUI_EXPORT QPageLayout
0020 {
0021 public:
0022
0023
0024 enum Unit {
0025 Millimeter,
0026 Point,
0027 Inch,
0028 Pica,
0029 Didot,
0030 Cicero
0031 };
0032
0033 enum Orientation {
0034 Portrait,
0035 Landscape
0036 };
0037
0038 enum Mode {
0039 StandardMode,
0040 FullPageMode
0041 };
0042
0043 enum class OutOfBoundsPolicy {
0044 Reject,
0045 Clamp,
0046 };
0047
0048 QPageLayout();
0049 QPageLayout(const QPageSize &pageSize, Orientation orientation,
0050 const QMarginsF &margins, Unit units = Point,
0051 const QMarginsF &minMargins = QMarginsF(0, 0, 0, 0));
0052 QPageLayout(const QPageLayout &other);
0053 QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_PURE_SWAP(QPageLayout)
0054 QPageLayout &operator=(const QPageLayout &other);
0055 ~QPageLayout();
0056
0057 void swap(QPageLayout &other) noexcept { d.swap(other.d); }
0058
0059 bool isEquivalentTo(const QPageLayout &other) const;
0060
0061 bool isValid() const;
0062
0063 void setMode(Mode mode);
0064 Mode mode() const;
0065
0066 void setPageSize(const QPageSize &pageSize,
0067 const QMarginsF &minMargins = QMarginsF(0, 0, 0, 0));
0068 QPageSize pageSize() const;
0069
0070 void setOrientation(Orientation orientation);
0071 Orientation orientation() const;
0072
0073 void setUnits(Unit units);
0074 Unit units() const;
0075
0076 #if QT_GUI_REMOVED_SINCE(6, 8)
0077 bool setMargins(const QMarginsF &margins);
0078 bool setLeftMargin(qreal leftMargin);
0079 bool setRightMargin(qreal rightMargin);
0080 bool setTopMargin(qreal topMargin);
0081 bool setBottomMargin(qreal bottomMargin);
0082 #endif
0083
0084 bool setMargins(const QMarginsF &margins, OutOfBoundsPolicy outOfBoundsPolicy = OutOfBoundsPolicy::Reject);
0085 bool setLeftMargin(qreal leftMargin, OutOfBoundsPolicy outOfBoundsPolicy = OutOfBoundsPolicy::Reject);
0086 bool setRightMargin(qreal rightMargin, OutOfBoundsPolicy outOfBoundsPolicy = OutOfBoundsPolicy::Reject);
0087 bool setTopMargin(qreal topMargin, OutOfBoundsPolicy outOfBoundsPolicy = OutOfBoundsPolicy::Reject);
0088 bool setBottomMargin(qreal bottomMargin, OutOfBoundsPolicy outOfBoundsPolicy = OutOfBoundsPolicy::Reject);
0089
0090 QMarginsF margins() const;
0091 QMarginsF margins(Unit units) const;
0092 QMargins marginsPoints() const;
0093 QMargins marginsPixels(int resolution) const;
0094
0095 void setMinimumMargins(const QMarginsF &minMargins);
0096 QMarginsF minimumMargins() const;
0097 QMarginsF maximumMargins() const;
0098
0099 QRectF fullRect() const;
0100 QRectF fullRect(Unit units) const;
0101 QRect fullRectPoints() const;
0102 QRect fullRectPixels(int resolution) const;
0103
0104 QRectF paintRect() const;
0105 QRectF paintRect(Unit units) const;
0106 QRect paintRectPoints() const;
0107 QRect paintRectPixels(int resolution) const;
0108
0109 private:
0110 friend class QPageLayoutPrivate;
0111 bool equals(const QPageLayout &other) const;
0112
0113 friend inline bool operator==(const QPageLayout &lhs, const QPageLayout &rhs)
0114 { return lhs.equals(rhs); }
0115 friend inline bool operator!=(const QPageLayout &lhs, const QPageLayout &rhs)
0116 { return !lhs.equals(rhs); }
0117
0118 QExplicitlySharedDataPointer<QPageLayoutPrivate> d;
0119 };
0120
0121 Q_DECLARE_SHARED(QPageLayout)
0122
0123 #ifndef QT_NO_DEBUG_STREAM
0124 Q_GUI_EXPORT QDebug operator<<(QDebug dbg, const QPageLayout &pageLayout);
0125 #endif
0126
0127 QT_END_NAMESPACE
0128
0129 QT_DECL_METATYPE_EXTERN(QPageLayout, Q_GUI_EXPORT)
0130 QT_DECL_METATYPE_EXTERN_TAGGED(QPageLayout::Unit, QPageLayout__Unit, Q_GUI_EXPORT)
0131 QT_DECL_METATYPE_EXTERN_TAGGED(QPageLayout::Orientation, QPageLayout__Orientation, Q_GUI_EXPORT)
0132
0133 #endif