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


%ModuleHeaderCode
#include <qpaintdevice.h>
%End


%If (- Qt_2_00)

// Painter device types.

const int PDT_UNDEF;
const int PDT_WIDGET;
const int PDT_PIXMAP;
const int PDT_PRINTER;
const int PDT_PICTURE;
const int PDT_MASK;

// Painter device flags.

const int PDF_EXTDEV;
const int PDF_PAINTACTIVE;


void bitBlt(QPaintDevice *,int,int,const QPaintDevice *,int = 0,int = 0,
	    int = -1,int = -1,RasterOp = CopyROP,bool = 0);
void bitBlt(QPaintDevice *,int,int,const QImage *,int = 0,int = 0,int = -1,
	    int = -1,int = 0);
void bitBlt(QPaintDevice *,const QPoint &,const QPaintDevice *,
	    const QRect & = QRect(0,0,-1,-1),RasterOp = CopyROP,bool = 0);

%End

%If (Qt_2_00 -)

void bitBlt(QPaintDevice *,int,int,const QPaintDevice *,int = 0,int = 0,
	    int = -1,int = -1,Qt::RasterOp = Qt::CopyROP,bool = 0);
void bitBlt(QPaintDevice *,int,int,const QImage *,int = 0,int = 0,int = -1,
	    int = -1,int = 0);
void bitBlt(QPaintDevice *,const QPoint &,const QPaintDevice *,
	    const QRect & = QRect(0,0,-1,-1),Qt::RasterOp = Qt::CopyROP,
	    bool = 0);

%End


class QPaintDevice
{
%TypeHeaderCode
#include <qpaintdevice.h>
%End

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

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

%If (- Qt_2_00)
	HANDLE handle() const;
%If (WS_X11)
	Display *x11Display() const;
	static int x11Screen();
	static int x11Depth();
	static int x11Cells();
	static HANDLE x11Colormap();
	static bool x11DefaultColormap();
	static void *x11Visual();
	static bool x11DefaultVisual();
%End
%End

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

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

	static int x11AppDpiX();
	static int x11AppDpiY();
%If (Qt_2_1_0 -)
	static void x11SetAppDpiX(int);
	static void x11SetAppDpiY(int);
%End
	static int x11AppDepth();
	static int x11AppCells();
%If (Qt_3_1_0 -)
	static Qt::HANDLE x11AppRootWindow();
%End
%If (Qt_3_0_0 -)
	static Qt::HANDLE x11AppColormap();
%End
%If (- Qt_3_0_0)
	static HANDLE x11AppColormap();
%End
	static bool x11AppDefaultColormap();
	static void *x11AppVisual();
	static bool x11AppDefaultVisual();

%If (Qt_3_1_0 -)
	static int x11AppDepth(int);
	static int x11AppCells(int);
	static Qt::HANDLE x11AppRootWindow(int);
	static Qt::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
%End

	enum PDevCmd
	{
		PdcNOP,
		PdcDrawPoint,
		PdcDrawFirst,
		PdcMoveTo,
		PdcLineTo,
		PdcDrawLine,
		PdcDrawRect,
		PdcDrawRoundRect,
		PdcDrawEllipse,
		PdcDrawArc,
		PdcDrawPie,
		PdcDrawChord,
		PdcDrawLineSegments,
		PdcDrawPolyline,
		PdcDrawPolygon,
%If (Qt_3_0_0 -)
		PdcDrawCubicBezier,
%End
%If (- Qt_3_0_0)
		PdcDrawQuadBezier,
%End
		PdcDrawText,
		PdcDrawTextFormatted,
		PdcDrawPixmap,
		PdcDrawImage,
		PdcDrawText2,
		PdcDrawText2Formatted,
%If (Qt_3_2_0 -)
		PdcDrawTextItem,
%End
		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
	};

%End

protected:
	QPaintDevice(uint);
//	virtual bool cmd(int,QPainter *,QPDevCmdParam *);
//	virtual int metric(int) const;
//	virtual int fontMet(QFont *,int,const char *,int = 0) const;
//	virtual int fontInf(QFont *,int) const;

private:
	QPaintDevice(const QPaintDevice &);
};
