// This is the SIP interface definition for TQPrinter.
//
// Copyright (c) 2007
// 	Riverbank Computing Limited <info@riverbankcomputing.co.uk>
// 
// This file is part of PyTQt.
// 
// This copy of PyTQt 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.
// 
// PyTQt 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
// PyTQt; 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>TQPrinter</Title>
<Para>
<Literal>TQPrinter</Literal> is fully implemented.
</Para>
</Sect2>
%End


%If (TQt_PRINTER)

class TQPrinter : TQPaintDevice
{
%TypeHeaderCode
#include <tqprinter.h>
%End

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

	TQPrinter(PrinterMode = ScreenResolution);

	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,
		NPageSize
	};

	enum PageOrder {
		FirstPageFirst,
		LastPageFirst
	};

	enum ColorMode {
		GrayScale,
		Color
	};

	enum PaperSource {
		OnlyOne,
		Lower,
		Middle,
		Manual,
		Envelope,
		EnvelopeManual,
		Auto,
		Tractor,
		SmallFormat,
		LargeFormat,
		LargeCapacity,
		Cassette,
		FormSource
	};

	enum PrintRange {
		AllPages,
		Selection,
		PageRange
	};

	enum PrinterOption {
		PrintToFile,
		PrintSelection,
		PrintPageRange
	};

	TQString printerName() const;
	virtual void setPrinterName(const TQString &);
	bool outputToFile() const;
	virtual void setOutputToFile(bool);
	TQString outputFileName() const;
	virtual void setOutputFileName(const TQString &);

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

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

	TQString docName() const;
	virtual void setDocName(const TQString &);
	TQString creator() const;
	virtual void setCreator(const TQString &);

	Orientation orientation() const;
	virtual void setOrientation(Orientation);
	PageSize pageSize() const;
	virtual void setPageSize(PageSize);

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

	void setResolution(int);
	int resolution() const;

	virtual void setColorMode(ColorMode);
	ColorMode colorMode() const;

	virtual void setFullPage(bool);
	bool fullPage() const;
	TQSize margins() const;

	void setMargins(uint,uint,uint,uint);
//	void margins(uint *,uint *,uint *,uint *) const;

	int fromPage() const;
	int toPage() const;
	virtual void setFromTo(int,int);
	int minPage() const;
	int maxPage() const;
	virtual void setMinMax(int,int);
	int numCopies() const;
	virtual void setNumCopies(int);

	bool collateCopiesEnabled() const;
	void setCollateCopiesEnabled(bool);
 
	bool collateCopies() const;
	void setCollateCopies(bool);

	PrintRange printRange() const;
	void setPrintRange(PrintRange);

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

	bool setup(TQWidget * = 0);

	PaperSource paperSource()   const;
	virtual void setPaperSource(PaperSource);

	void setOptionEnabled(PrinterOption,bool);
	bool isOptionEnabled(PrinterOption);

private:
	TQPrinter(const TQPrinter &);
};

%End
