| /**************************************************************************** |
| ** |
| ** Copyright (C) 2016 The Qt Company Ltd. |
| ** Contact: https://www.qt.io/licensing/ |
| ** |
| ** 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 The Qt Company. For licensing terms |
| ** and conditions see https://www.qt.io/terms-conditions. For further |
| ** information use the contact form at https://www.qt.io/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 3 as published by the Free Software |
| ** Foundation and appearing in the file LICENSE.LGPL3 included in the |
| ** packaging of this file. Please review the following information to |
| ** ensure the GNU Lesser General Public License version 3 requirements |
| ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. |
| ** |
| ** GNU General Public License Usage |
| ** Alternatively, this file may be used under the terms of the GNU |
| ** General Public License version 2.0 or (at your option) the GNU General |
| ** Public license version 3 or any later version approved by the KDE Free |
| ** Qt Foundation. The licenses are as published by the Free Software |
| ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 |
| ** included in the packaging of this file. Please review the following |
| ** information to ensure the GNU General Public License requirements will |
| ** be met: https://www.gnu.org/licenses/gpl-2.0.html and |
| ** https://www.gnu.org/licenses/gpl-3.0.html. |
| ** |
| ** $QT_END_LICENSE$ |
| ** |
| ****************************************************************************/ |
| |
| #ifndef QPAGEDPAINTDEVICE_H |
| #define QPAGEDPAINTDEVICE_H |
| |
| #include <QtGui/qtguiglobal.h> |
| #include <QtGui/qpaintdevice.h> |
| #include <QtGui/qpagelayout.h> |
| |
| QT_BEGIN_NAMESPACE |
| |
| #if defined(B0) |
| #undef B0 // Terminal hang-up. We assume that you do not want that. |
| #endif |
| |
| class QPagedPaintDevicePrivate; |
| |
| class Q_GUI_EXPORT QPagedPaintDevice : public QPaintDevice |
| { |
| public: |
| QT_DEPRECATED QPagedPaintDevice(); |
| ~QPagedPaintDevice(); |
| |
| virtual bool newPage() = 0; |
| |
| // ### Qt6 Remove in favor of QPage::PageSize |
| // NOTE: Must keep in sync with QPageSize and QPrinter |
| enum PageSize { |
| // Existing Qt sizes |
| A4, |
| B5, |
| Letter, |
| Legal, |
| Executive, |
| A0, |
| A1, |
| A2, |
| A3, |
| A5, |
| A6, |
| A7, |
| A8, |
| A9, |
| B0, |
| B1, |
| B10, |
| B2, |
| B3, |
| B4, |
| B6, |
| B7, |
| B8, |
| B9, |
| C5E, |
| Comm10E, |
| DLE, |
| Folio, |
| Ledger, |
| Tabloid, |
| Custom, |
| |
| // New values derived from PPD standard |
| A10, |
| A3Extra, |
| A4Extra, |
| A4Plus, |
| A4Small, |
| A5Extra, |
| B5Extra, |
| |
| JisB0, |
| JisB1, |
| JisB2, |
| JisB3, |
| JisB4, |
| JisB5, |
| JisB6, |
| JisB7, |
| JisB8, |
| JisB9, |
| JisB10, |
| |
| // AnsiA = Letter, |
| // AnsiB = Ledger, |
| AnsiC, |
| AnsiD, |
| AnsiE, |
| LegalExtra, |
| LetterExtra, |
| LetterPlus, |
| LetterSmall, |
| TabloidExtra, |
| |
| ArchA, |
| ArchB, |
| ArchC, |
| ArchD, |
| ArchE, |
| |
| Imperial7x9, |
| Imperial8x10, |
| Imperial9x11, |
| Imperial9x12, |
| Imperial10x11, |
| Imperial10x13, |
| Imperial10x14, |
| Imperial12x11, |
| Imperial15x11, |
| |
| ExecutiveStandard, |
| Note, |
| Quarto, |
| Statement, |
| SuperA, |
| SuperB, |
| Postcard, |
| DoublePostcard, |
| Prc16K, |
| Prc32K, |
| Prc32KBig, |
| |
| FanFoldUS, |
| FanFoldGerman, |
| FanFoldGermanLegal, |
| |
| EnvelopeB4, |
| EnvelopeB5, |
| EnvelopeB6, |
| EnvelopeC0, |
| EnvelopeC1, |
| EnvelopeC2, |
| EnvelopeC3, |
| EnvelopeC4, |
| // EnvelopeC5 = C5E, |
| EnvelopeC6, |
| EnvelopeC65, |
| EnvelopeC7, |
| // EnvelopeDL = DLE, |
| |
| Envelope9, |
| // Envelope10 = Comm10E, |
| Envelope11, |
| Envelope12, |
| Envelope14, |
| EnvelopeMonarch, |
| EnvelopePersonal, |
| |
| EnvelopeChou3, |
| EnvelopeChou4, |
| EnvelopeInvite, |
| EnvelopeItalian, |
| EnvelopeKaku2, |
| EnvelopeKaku3, |
| EnvelopePrc1, |
| EnvelopePrc2, |
| EnvelopePrc3, |
| EnvelopePrc4, |
| EnvelopePrc5, |
| EnvelopePrc6, |
| EnvelopePrc7, |
| EnvelopePrc8, |
| EnvelopePrc9, |
| EnvelopePrc10, |
| EnvelopeYou4, |
| |
| // Last item, with commonly used synynoms from QPagedPrintEngine / QPrinter |
| LastPageSize = EnvelopeYou4, |
| NPageSize = LastPageSize, |
| NPaperSize = LastPageSize, |
| |
| // Convenience overloads for naming consistency |
| AnsiA = Letter, |
| AnsiB = Ledger, |
| EnvelopeC5 = C5E, |
| EnvelopeDL = DLE, |
| Envelope10 = Comm10E |
| }; |
| |
| // keep in sync with QPdfEngine::PdfVersion! |
| enum PdfVersion { PdfVersion_1_4, PdfVersion_A1b, PdfVersion_1_6 }; |
| |
| // ### Qt6 Make these virtual |
| bool setPageLayout(const QPageLayout &pageLayout); |
| bool setPageSize(const QPageSize &pageSize); |
| bool setPageOrientation(QPageLayout::Orientation orientation); |
| bool setPageMargins(const QMarginsF &margins); |
| bool setPageMargins(const QMarginsF &margins, QPageLayout::Unit units); |
| QPageLayout pageLayout() const; |
| |
| virtual void setPageSize(PageSize size); |
| PageSize pageSize() const; |
| |
| virtual void setPageSizeMM(const QSizeF &size); |
| QSizeF pageSizeMM() const; |
| |
| // ### Qt6 Remove in favor of QMarginsF |
| struct Margins { |
| qreal left; |
| qreal right; |
| qreal top; |
| qreal bottom; |
| }; |
| |
| virtual void setMargins(const Margins &margins); |
| Margins margins() const; |
| |
| protected: |
| QPagedPaintDevice(QPagedPaintDevicePrivate *dd); |
| QPagedPaintDevicePrivate *dd(); |
| QT_DEPRECATED QPageLayout devicePageLayout() const; |
| QT_DEPRECATED QPageLayout &devicePageLayout(); |
| friend class QPagedPaintDevicePrivate; |
| QPagedPaintDevicePrivate *d; |
| }; |
| |
| QT_END_NAMESPACE |
| |
| #endif |