// This is the SIP interface definition for QPrinter.
//
// Copyright (c) 2007
// 	Riverbank Computing Limited <info@riverbankcomputing.co.uk>
// 
// This file is part of PyQt.
// 
// This copy of PyQt is free software; you can redistribute it and/or modify it
// under the terms of the GNU General Public License as published by the Free
// Software Foundation; either version 2, or (at your option) any later
// version.
// 
// PyQt is supplied in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
// FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
// details.
// 
// You should have received a copy of the GNU General Public License along with
// PyQt; see the file LICENSE.  If not, write to the Free Software Foundation,
// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.


%ExportedDoc
<Sect2><Title>QPrinter</Title>
<Para>
<Literal>QPrinter</Literal> is fully implemented.
</Para>
</Sect2>
%End


%If (Qt_PRINTER)

class QPrinter : QPaintDevice
{
%TypeHeaderCode
#include <qprinter.h>
%End

public:
%If (Qt_3_0_0 -)
	enum PrinterMode {
		ScreenResolution,
		PrinterResolution,
		HighResolution,
		Compatible
	};
%End

%If (- Qt_3_0_0)
	QPrinter();
%End
%If (Qt_3_0_0 -)
	QPrinter(PrinterMode = ScreenResolution);
%End

	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,
%If (Qt_2_3_1 -)
		Custom,
%End
%If (Qt_2_00 -)
		NPageSize
%End
	};

	enum PageOrder {
		FirstPageFirst,
		LastPageFirst
	};

	enum ColorMode {
		GrayScale,
		Color
	};

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

%If (Qt_3_2_0 -)
	enum PrintRange {
		AllPages,
		Selection,
		PageRange
	};

	enum PrinterOption {
		PrintToFile,
		PrintSelection,
		PrintPageRange
	};
%End

%If (- Qt_2_00)
	const char *printerName() const;
	void setPrinterName(const char *);
%End
%If (Qt_2_00 -)
	QString printerName() const;
	virtual void setPrinterName(const QString &);
%End
	bool outputToFile() const;
%If (- Qt_2_00)
	void setOutputToFile(bool);
	const char *outputFileName() const;
	void setOutputFileName(const char *);

	const char *printProgram() const;
	void setPrintProgram(const char *);

	const char *docName() const;
	void setDocName(const char *);
	const char *creator() const;
	void setCreator(const char *);
%End
%If (Qt_2_00 -)
	virtual void setOutputToFile(bool);
	QString outputFileName() const;
	virtual void setOutputFileName(const QString &);

	QString printProgram() const;
	virtual void setPrintProgram(const QString &);

	QString printerSelectionOption() const;
	virtual void setPrinterSelectionOption(const QString &);

	QString docName() const;
	virtual void setDocName(const QString &);
	QString creator() const;
	virtual void setCreator(const QString &);
%End

	Orientation orientation() const;
%If (- Qt_2_00)
	void setOrientation(Orientation);
%End
%If (Qt_2_00 -)
	virtual void setOrientation(Orientation);
%End
	PageSize pageSize() const;
%If (- Qt_2_00)
	void setPageSize(PageSize);

	void setPageOrder(PageOrder);
%End
%If (Qt_2_00 -)
	virtual void setPageSize(PageSize);

	virtual void setPageOrder(PageOrder);
%End
	PageOrder pageOrder() const;

%If (Qt_3_0_0 -)
	void setResolution(int);
	int resolution() const;
%End

%If (- Qt_2_00)
	void setColorMode(ColorMode);
%End
%If (Qt_2_00 -)
	virtual void setColorMode(ColorMode);
%End
	ColorMode colorMode() const;

%If (Qt_2_00 -)
	virtual void setFullPage(bool);
	bool fullPage() const;
	QSize margins() const;
%End

%If (Qt_3_1_0 -)
	void setMargins(uint,uint,uint,uint);
//	void margins(uint *,uint *,uint *,uint *) const;
%End

	int fromPage() const;
	int toPage() const;
%If (- Qt_2_00)
	void setFromTo(int,int);
%End
%If (Qt_2_00 -)
	virtual void setFromTo(int,int);
%End
	int minPage() const;
	int maxPage() const;
%If (- Qt_2_00)
	void setMinMax(int,int);
%End
%If (Qt_2_00 -)
	virtual void setMinMax(int,int);
%End
	int numCopies() const;
%If (- Qt_2_00)
	void setNumCopies(int);
%End
%If (Qt_2_00 -)
	virtual void setNumCopies(int);
%End

%If (Qt_3_0_0 -)
	bool collateCopiesEnabled() const;
	void setCollateCopiesEnabled(bool);
 
	bool collateCopies() const;
	void setCollateCopies(bool);
%End

%If (Qt_3_2_0 -)
	PrintRange printRange() const;
	void setPrintRange(PrintRange);
%End

	bool newPage();
	bool abort();
	bool aborted() const;

	bool setup(QWidget * = 0);

%If (Qt_3_0_0 -)
	PaperSource paperSource()   const;
	virtual void setPaperSource(PaperSource);
%End

%If (Qt_3_2_0 -)
	void setOptionEnabled(PrinterOption,bool);
	bool isOptionEnabled(PrinterOption);
%End

private:
	QPrinter(const QPrinter &);
};

%End
