// qprinter.sip generated by MetaSIP on Mon Jul 27 19:09:13 2009
//
// This file is part of the QtGui Python extension module.
//
// Copyright (c) 2009 Riverbank Computing Limited <info@riverbankcomputing.com>
// 
// This file is part of PyQt.
// 
// This file may be used under the terms of the GNU General Public
// License versions 2.0 or 3.0 as published by the Free Software
// Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3
// included in the packaging of this file.  Alternatively you may (at
// your option) use any later version of the GNU General Public
// License if such license has been publicly approved by Riverbank
// Computing Limited (or its successors, if any) and the KDE Free Qt
// Foundation. In addition, as a special exception, Riverbank gives you
// certain additional rights. These rights are described in the Riverbank
// GPL Exception version 1.1, which can be found in the file
// GPL_EXCEPTION.txt in this package.
// 
// Please review the following information to ensure GNU General
// Public Licensing requirements will be met:
// http://trolltech.com/products/qt/licenses/licensing/opensource/. If
// you are unsure which license is appropriate for your use, please
// review the following information:
// http://trolltech.com/products/qt/licenses/licensing/licensingoverview
// or contact the sales department at sales@riverbankcomputing.com.
// 
// This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
// INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE. Trolltech reserves all rights not expressly
// granted herein.
// 
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.


class QPrinter : QPaintDevice
{

%TypeHeaderCode
#include <qprinter.h>
%End

public:
    enum PrinterMode
    {
        ScreenResolution,
        PrinterResolution,
        HighResolution,
    };

    enum Orientation
    {
        Portrait,
        Landscape,
    };

    enum PageSize
    {
        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,
    };

    enum PageOrder
    {
        FirstPageFirst,
        LastPageFirst,
    };

    enum ColorMode
    {
        GrayScale,
        Color,
    };

    enum PaperSource
    {
        OnlyOne,
        Lower,
        Middle,
        Manual,
        Envelope,
        EnvelopeManual,
        Auto,
        Tractor,
        SmallFormat,
        LargeFormat,
        LargeCapacity,
        Cassette,
        FormSource,
%If (Qt_4_3_0 -)
        MaxPageSource,
%End
    };

    enum PrinterState
    {
        Idle,
        Active,
        Aborted,
        Error,
    };

    enum OutputFormat
    {
        NativeFormat,
        PdfFormat,
%If (Qt_4_2_0 -)
        PostScriptFormat,
%End
    };

    enum PrintRange
    {
        AllPages,
        Selection,
        PageRange,
    };

%If (Qt_4_4_0 -)

    enum DuplexMode
    {
        DuplexNone,
        DuplexAuto,
        DuplexLongSide,
        DuplexShortSide,
    };

%End
%If (Qt_4_4_0 -)

    enum Unit
    {
        Millimeter,
        Point,
        Inch,
        Pica,
        Didot,
        Cicero,
        DevicePixel,
    };

%End
%If (Qt_4_4_0 -)
    typedef QPrinter::PageSize PaperSize;
%End
    explicit QPrinter(QPrinter::PrinterMode mode = QPrinter::ScreenResolution);
%If (Qt_4_4_0 -)
    QPrinter(const QPrinterInfo &printer, QPrinter::PrinterMode mode = QPrinter::ScreenResolution);
%End
    virtual ~QPrinter();
    virtual int devType() const;
    void setPrinterName(const QString &);
    QString printerName() const;
    void setOutputFileName(const QString &);
    QString outputFileName() const;
    void setPrintProgram(const QString &);
    QString printProgram() const;
    void setDocName(const QString &);
    QString docName() const;
    void setCreator(const QString &);
    QString creator() const;
    void setOrientation(QPrinter::Orientation);
    QPrinter::Orientation orientation() const;
    void setPageSize(QPrinter::PageSize);
    QPrinter::PageSize pageSize() const;
    void setPageOrder(QPrinter::PageOrder);
    QPrinter::PageOrder pageOrder() const;
    void setResolution(int);
    int resolution() const;
    void setColorMode(QPrinter::ColorMode);
    QPrinter::ColorMode colorMode() const;
    void setCollateCopies(bool collate);
    bool collateCopies() const;
    void setFullPage(bool);
    bool fullPage() const;
    void setNumCopies(int);
    int numCopies() const;
    void setPaperSource(QPrinter::PaperSource);
    QPrinter::PaperSource paperSource() const;
    QList<int> supportedResolutions() const;
%If (WS_WIN)
    void setWinPageSize(int winPageSize);
%End
%If (WS_WIN)
    int winPageSize() const;
%End
    QRect paperRect() const;
    QRect pageRect() const;
%If (WS_X11 || WS_MACX)
    QString printerSelectionOption() const;
%End
%If (WS_X11 || WS_MACX)
    void setPrinterSelectionOption(const QString &);
%End
    bool newPage();
    bool abort();
    QPrinter::PrinterState printerState() const;
    virtual QPaintEngine *paintEngine() const;
    void setOutputFormat(QPrinter::OutputFormat format);
    QPrinter::OutputFormat outputFormat() const;
    void setFontEmbeddingEnabled(bool enable);
    bool fontEmbeddingEnabled() const;
    QPrintEngine *printEngine() const;
    void setFromTo(int fromPage, int toPage);
    int fromPage() const;
    int toPage() const;
%If (PyQt_NoQtPrintRangeBug)
    void setPrintRange(QPrinter::PrintRange range);
%End
%If (PyQt_NoQtPrintRangeBug)
    QPrinter::PrintRange printRange() const;
%End
%If (Qt_4_2_0 -)
    void setDoubleSidedPrinting(bool enable);
%End
%If (Qt_4_2_0 -)
    bool doubleSidedPrinting() const;
%End
%If (Qt_4_4_0 -)
    bool isValid() const;
%End
%If (Qt_4_4_0 -)
    void setPaperSize(QPrinter::PageSize);
%End
%If (Qt_4_4_0 -)
    QPrinter::PageSize paperSize() const;
%End
%If (Qt_4_4_0 -)
    void setPaperSize(const QSizeF &paperSize, QPrinter::Unit unit);
%End
%If (Qt_4_4_0 -)
    QSizeF paperSize(QPrinter::Unit unit) const;
%End
%If (Qt_4_4_0 -)
    void setDuplex(QPrinter::DuplexMode duplex);
%End
%If (Qt_4_4_0 -)
    QPrinter::DuplexMode duplex() const;
%End
%If (Qt_4_4_0 -)
    QRectF paperRect(QPrinter::Unit) const;
%End
%If (Qt_4_4_0 -)
    QRectF pageRect(QPrinter::Unit) const;
%End
%If (Qt_4_4_0 -)
    void setPageMargins(qreal left, qreal top, qreal right, qreal bottom, QPrinter::Unit unit);
%End
%If (Qt_4_4_0 -)
    void getPageMargins(qreal *left, qreal *top, qreal *right, qreal *bottom, QPrinter::Unit unit) const;
%End

protected:
    virtual int metric(QPaintDevice::PaintDeviceMetric) const;
    void setEngines(QPrintEngine *printEngine, QPaintEngine *paintEngine);

private:
    QPrinter(const QPrinter &);
};
