// This is the SIP interface definition for TQPaintDevice.
//
// 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>TQPaintDevice</Title>
<FuncSynopsis>
        <FuncDef>virtual bool <Function>cmd</Function></FuncDef>
        <ParamDef>int</ParamDef>
        <ParamDef>TQPainter *</ParamDef>
        <ParamDef>TQPDevCmdParam *</ParamDef>
</FuncSynopsis>
<Para>
Not implemented.
</Para>
</Sect2>
%End


%ModuleHeaderCode
#include <tqpaintdevice.h>
%End


void bitBlt(TQPaintDevice *,int,int,const TQPaintDevice *,int = 0,int = 0,
	    int = -1,int = -1,TQt::RasterOp = TQt::CopyROP,bool = 0);
void bitBlt(TQPaintDevice *,int,int,const TQImage *,int = 0,int = 0,int = -1,
	    int = -1,int = 0);
void bitBlt(TQPaintDevice *,const TQPoint &,const TQPaintDevice *,
	    const TQRect & = TQRect(0,0,-1,-1),TQt::RasterOp = TQt::CopyROP,
	    bool = 0);


class TQPaintDevice
{
%TypeHeaderCode
#include <tqpaintdevice.h>
%End

public:
	int devType() const;
	bool isExtDev() const;
	bool paintingActive() const;

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

%If (WS_X11)
	TQt::HANDLE handle() const;
	TQt::HANDLE x11RenderHandle() const;
	Display *x11Display() const;
	int x11Screen() const;
	int x11Depth() const;
	int x11Cells() const;
	TQt::HANDLE x11Colormap() const;
	bool x11DefaultColormap() const;
	void *x11Visual() const;
	bool x11DefaultVisual() const;

	static Display *x11AppDisplay();
	static int x11AppScreen();

	static int x11AppDpiX();
	static int x11AppDpiY();
	static void x11SetAppDpiX(int);
	static void x11SetAppDpiY(int);
	static int x11AppDepth();
	static int x11AppCells();
	static TQt::HANDLE x11AppRootWindow();
	static TQt::HANDLE x11AppColormap();
	static bool x11AppDefaultColormap();
	static void *x11AppVisual();
	static bool x11AppDefaultVisual();

	static int x11AppDepth(int);
	static int x11AppCells(int);
	static TQt::HANDLE x11AppRootWindow(int);
	static TQt::HANDLE x11AppColormap(int);
	static void *x11AppVisual(int);
	static bool x11AppDefaultColormap(int);
	static bool x11AppDefaultVisual(int);
	static int x11AppDpiX(int);
	static int x11AppDpiY(int);
	static void x11SetAppDpiX(int,int);
	static void x11SetAppDpiY(int,int);
%End

	enum PDevCmd
	{
		PdcNOP,
		PdcDrawPoint,
		PdcDrawFirst,
		PdcMoveTo,
		PdcLineTo,
		PdcDrawLine,
		PdcDrawRect,
		PdcDrawRoundRect,
		PdcDrawEllipse,
		PdcDrawArc,
		PdcDrawPie,
		PdcDrawChord,
		PdcDrawLineSegments,
		PdcDrawPolyline,
		PdcDrawPolygon,
		PdcDrawCubicBezier,
		PdcDrawText,
		PdcDrawTextFormatted,
		PdcDrawPixmap,
		PdcDrawImage,
		PdcDrawText2,
		PdcDrawText2Formatted,
		PdcDrawTextItem,
		PdcDrawLast,

		PdcBegin,
		PdcEnd,
		PdcSave,
		PdcRestore,
		PdcSetdev,
		PdcSetBkColor,
		PdcSetBkMode,
		PdcSetROP,
		PdcSetBrushOrigin,
		PdcSetFont,
		PdcSetPen,
		PdcSetBrush,
		PdcSetTabStops,
		PdcSetTabArray,
		PdcSetUnit,
		PdcSetVXform,
		PdcSetWindow,
		PdcSetViewport,
		PdcSetWXform,
		PdcSetWMatrix,
		PdcSaveWMatrix,
		PdcRestoreWMatrix,
		PdcSetClip,
		PdcSetClipRegion,
		PdcReservedStart,
		PdcReservedStop
	};

protected:
	TQPaintDevice(uint);
//	virtual bool cmd(int,TQPainter *,TQPDevCmdParam *);
//	virtual int metric(int) const;
//	virtual int fontMet(TQFont *,int,const char *,int = 0) const;
//	virtual int fontInf(TQFont *,int) const;

private:
	TQPaintDevice(const TQPaintDevice &);
};
