19#ifndef KIS_CANVAS_PAINTER_H_
20#define KIS_CANVAS_PAINTER_H_
28#include "kis_global.h"
33class KisCanvasWidgetPainter {
35 KisCanvasWidgetPainter();
36 virtual ~KisCanvasWidgetPainter();
38 virtual bool begin(KisCanvasWidget *canvasWidget, bool unclipped = false) = 0;
42 virtual void restore();
44 virtual TQFontMetrics fontMetrics() const;
45 virtual TQFontInfo fontInfo() const;
47 virtual const TQFont& font() const;
48 virtual void setFont( const TQFont&);
49 virtual const TQPen& pen() const;
50 virtual void setPen( const TQPen&);
51 virtual void setPen(TQt::PenStyle);
52 virtual void setPen( const TQColor&);
53 virtual const TQBrush&brush() const;
54 virtual void setBrush( const TQBrush&);
55 virtual void setBrush(TQt::BrushStyle);
56 virtual void setBrush( const TQColor&);
57 virtual TQPoint pos() const;
59 virtual const TQColor&backgroundColor() const;
60 virtual void setBackgroundColor( const TQColor&);
61 virtual TQt::BGMode backgroundMode() const;
62 virtual void setBackgroundMode(TQt::BGMode);
63 virtual TQt::RasterOp rasterOp() const;
64 virtual void setRasterOp(TQt::RasterOp);
65 virtual const TQPoint&brushOrigin() const;
66 virtual void setBrushOrigin( int x, int y);
67 virtual void setBrushOrigin( const TQPoint&);
69 virtual bool hasViewXForm() const;
70 virtual bool hasWorldXForm() const;
72 virtual void setViewXForm( bool);
73 virtual TQRect window() const;
74 virtual void setWindow( const TQRect&);
75 virtual void setWindow( int x, int y, int w, int h);
76 virtual TQRect viewport() const;
77 virtual void setViewport( const TQRect&);
78 virtual void setViewport( int x, int y, int w, int h);
80 virtual void setWorldXForm( bool);
81 virtual const TQWMatrix&worldMatrix() const;
82 virtual void setWorldMatrix( const TQWMatrix&, bool combine= false);
84 virtual void saveWorldMatrix();
85 virtual void restoreWorldMatrix();
87 virtual void scale( double sx, double sy);
88 virtual void shear( double sh, double sv);
89 virtual void rotate( double a);
91 virtual void translate( double dx, double dy);
92 virtual void resetXForm();
93 virtual double translationX() const;
94 virtual double translationY() const;
96 virtual TQPoint xForm( const TQPoint&) const;
97 virtual TQRect xForm( const TQRect&) const;
98 virtual TQPointArray xForm( const TQPointArray&) const;
99 virtual TQPointArray xForm( const TQPointArray&, int index, int npoints) const;
100 virtual TQPoint xFormDev( const TQPoint&) const;
101 virtual TQRect xFormDev( const TQRect&) const;
102 virtual TQPointArray xFormDev( const TQPointArray&) const;
103 virtual TQPointArray xFormDev( const TQPointArray&, int index, int npoints) const;
105 virtual void setClipping( bool);
106 virtual bool hasClipping() const;
107 virtual TQRegion clipRegion(TQPainter::CoordinateMode = TQPainter::CoordDevice) const;
108 virtual void setClipRect( const TQRect&, TQPainter::CoordinateMode = TQPainter::CoordDevice);
109 virtual void setClipRect( int x, int y, int w, int h, TQPainter::CoordinateMode = TQPainter::CoordDevice);
110 virtual void setClipRegion( const TQRegion&, TQPainter::CoordinateMode = TQPainter::CoordDevice);
112 virtual void drawPoint( int x, int y);
113 virtual void drawPoint( const TQPoint&);
114 virtual void drawPoints( const TQPointArray& a, int index=0, int npoints=-1);
115 virtual void moveTo( int x, int y);
116 virtual void moveTo( const TQPoint&);
117 virtual void lineTo( int x, int y);
118 virtual void lineTo( const TQPoint&);
119 virtual void drawLine( int x1, int y1, int x2, int y2);
120 virtual void drawLine( const TQPoint&, const TQPoint&);
121 virtual void drawRect( int x, int y, int w, int h);
122 virtual void drawRect( const TQRect&);
123 virtual void drawWinFocusRect( int x, int y, int w, int h);
124 virtual void drawWinFocusRect( int x, int y, int w, int h, const TQColor&bgColor);
125 virtual void drawWinFocusRect( const TQRect&);
126 virtual void drawWinFocusRect( const TQRect&, const TQColor&bgColor);
127 virtual void drawRoundRect( int x, int y, int w, int h, int = 25, int = 25);
128 virtual void drawRoundRect( const TQRect&, int = 25, int = 25);
129 virtual void drawEllipse( int x, int y, int w, int h);
130 virtual void drawEllipse( const TQRect&);
131 virtual void drawArc( int x, int y, int w, int h, int a, int alen);
132 virtual void drawArc( const TQRect&, int a, int alen);
133 virtual void drawPie( int x, int y, int w, int h, int a, int alen);
134 virtual void drawPie( const TQRect&, int a, int alen);
135 virtual void drawChord( int x, int y, int w, int h, int a, int alen);
136 virtual void drawChord( const TQRect&, int a, int alen);
137 virtual void drawLineSegments( const TQPointArray&, int index=0, int nlines=-1);
138 virtual void drawPolyline( const TQPointArray&, int index=0, int npoints=-1);
139 virtual void drawPolygon( const TQPointArray&, bool winding= false, int index=0, int npoints=-1);
140 virtual void drawConvexPolygon( const TQPointArray&, int index=0, int npoints=-1);
141 virtual void drawCubicBezier( const TQPointArray&, int index=0);
142 virtual void drawPixmap( int x, int y, const TQPixmap&, int sx=0, int sy=0, int sw=-1, int sh=-1);
143 virtual void drawPixmap( const TQPoint&, const TQPixmap&, const TQRect&sr);
144 virtual void drawPixmap( const TQPoint&, const TQPixmap&);
145 virtual void drawPixmap( const TQRect&, const TQPixmap&);
146 virtual void drawImage( int x, int y, const TQImage&, int sx = 0, int sy = 0, int sw = -1, int sh = -1, int conversionFlags = 0);
147 virtual void drawImage( const TQPoint&, const TQImage&, const TQRect&sr, int conversionFlags = 0);
148 virtual void drawImage( const TQPoint&, const TQImage&, int conversion_flags = 0);
149 virtual void drawImage( const TQRect&, const TQImage&);
150 virtual void drawTiledPixmap( int x, int y, int w, int h, const TQPixmap&, int sx=0, int sy=0);
151 virtual void drawTiledPixmap( const TQRect&, const TQPixmap&, const TQPoint&);
152 virtual void drawTiledPixmap( const TQRect&, const TQPixmap&);
157 virtual void fillRect( int x, int y, int w, int h, const TQBrush&);
158 virtual void fillRect( const TQRect&, const TQBrush&);
159 virtual void eraseRect( int x, int y, int w, int h);
160 virtual void eraseRect( const TQRect&);
162 virtual void drawText( int x, int y, const TQString&, int len = -1, TQPainter::TextDirection dir = TQPainter::Auto);
163 virtual void drawText( const TQPoint&, const TQString&, int len = -1, TQPainter::TextDirection dir = TQPainter::Auto);
165 virtual void drawText( int x, int y, const TQString&, int pos, int len, TQPainter::TextDirection dir = TQPainter::Auto);
166 virtual void drawText( const TQPoint&p, const TQString&, int pos, int len, TQPainter::TextDirection dir = TQPainter::Auto);
168 virtual void drawText( int x, int y, int w, int h, int flags, const TQString&, int len = -1, TQRect *br=0, TQTextParag **intern=0);
169 virtual void drawText( const TQRect&, int flags, const TQString&, int len = -1, TQRect *br=0, TQTextParag **intern=0);
171 virtual void drawTextItem( int x, int y, const TQTextItem&ti, int textflags = 0);
172 virtual void drawTextItem( const TQPoint& p, const TQTextItem&ti, int textflags = 0);
174 virtual TQRect boundingRect( int x, int y, int w, int h, int flags, const TQString&, int len = -1, TQTextParag **intern=0);
175 virtual TQRect boundingRect( const TQRect&, int flags, const TQString&, int len = -1, TQTextParag **intern=0);
177 virtual int tabStops() const;
178 virtual void setTabStops( int);
179 virtual int *tabArray() const;
180 virtual void setTabArray( int *);
183 TQFont m_defaultFont;
185 TQBrush m_defaultBrush;
186 TQColor m_defaultColor;
187 TQPoint m_defaultBrushOrigin;
188 TQWMatrix m_defaultWorldMatrix;
191class KisCanvasPainter {
194 KisCanvasPainter(KisCanvas *canvas);
195 KisCanvasPainter( const TQPaintDevice *paintDevice);
199 bool begin(KisCanvas *canvas, bool unclipped = false);
200 bool begin( const TQPaintDevice *paintDevice, bool unclipped = false);
207 TQFontMetrics fontMetrics() const;
208 TQFontInfo fontInfo() const;
210 const TQFont& font() const;
211 void setFont( const TQFont&);
212 const TQPen& pen() const;
213 void setPen( const TQPen&);
214 void setPen(TQt::PenStyle);
215 void setPen( const TQColor&);
216 const TQBrush&brush() const;
217 void setBrush( const TQBrush&);
218 void setBrush(TQt::BrushStyle);
219 void setBrush( const TQColor&);
222 const TQColor&backgroundColor() const;
223 void setBackgroundColor( const TQColor&);
224 TQt::BGMode backgroundMode() const;
225 void setBackgroundMode(TQt::BGMode);
226 TQt::RasterOp rasterOp() const;
227 void setRasterOp(TQt::RasterOp);
228 const TQPoint&brushOrigin() const;
229 void setBrushOrigin( int x, int y);
230 void setBrushOrigin( const TQPoint&);
232 bool hasViewXForm() const;
233 bool hasWorldXForm() const;
235 void setViewXForm( bool);
236 TQRect window() const;
237 void setWindow( const TQRect&);
238 void setWindow( int x, int y, int w, int h);
239 TQRect viewport() const;
240 void setViewport( const TQRect&);
241 void setViewport( int x, int y, int w, int h);
243 void setWorldXForm( bool);
244 const TQWMatrix&worldMatrix() const;
245 void setWorldMatrix( const TQWMatrix&, bool combine= false);
247 void saveWorldMatrix();
248 void restoreWorldMatrix();
250 void scale( double sx, double sy);
251 void shear( double sh, double sv);
252 void rotate( double a);
254 void translate( double dx, double dy);
256 double translationX() const;
257 double translationY() const;
259 TQPoint xForm( const TQPoint&) const;
260 TQRect xForm( const TQRect&) const;
261 TQPointArray xForm( const TQPointArray&) const;
262 TQPointArray xForm( const TQPointArray&, int index, int npoints) const;
263 TQPoint xFormDev( const TQPoint&) const;
264 TQRect xFormDev( const TQRect&) const;
265 TQPointArray xFormDev( const TQPointArray&) const;
266 TQPointArray xFormDev( const TQPointArray&, int index, int npoints) const;
268 void setClipping( bool);
269 bool hasClipping() const;
270 TQRegion clipRegion(TQPainter::CoordinateMode = TQPainter::CoordDevice) const;
271 void setClipRect( const TQRect&, TQPainter::CoordinateMode = TQPainter::CoordDevice);
272 void setClipRect( int x, int y, int w, int h, TQPainter::CoordinateMode = TQPainter::CoordDevice);
273 void setClipRegion( const TQRegion&, TQPainter::CoordinateMode = TQPainter::CoordDevice);
275 void drawPoint( int x, int y);
276 void drawPoint( const TQPoint&);
277 void drawPoints( const TQPointArray& a, int index=0, int npoints=-1);
278 void moveTo( int x, int y);
279 void moveTo( const TQPoint&);
280 void lineTo( int x, int y);
281 void lineTo( const TQPoint&);
282 void drawLine( int x1, int y1, int x2, int y2);
283 void drawLine( const TQPoint&, const TQPoint&);
284 void drawRect( int x, int y, int w, int h);
285 void drawRect( const TQRect&);
286 void drawWinFocusRect( int x, int y, int w, int h);
287 void drawWinFocusRect( int x, int y, int w, int h, const TQColor&bgColor);
288 void drawWinFocusRect( const TQRect&);
289 void drawWinFocusRect( const TQRect&, const TQColor&bgColor);
290 void drawRoundRect( int x, int y, int w, int h, int = 25, int = 25);
291 void drawRoundRect( const TQRect&, int = 25, int = 25);
292 void drawEllipse( int x, int y, int w, int h);
293 void drawEllipse( const TQRect&);
294 void drawArc( int x, int y, int w, int h, int a, int alen);
295 void drawArc( const TQRect&, int a, int alen);
296 void drawPie( int x, int y, int w, int h, int a, int alen);
297 void drawPie( const TQRect&, int a, int alen);
298 void drawChord( int x, int y, int w, int h, int a, int alen);
299 void drawChord( const TQRect&, int a, int alen);
300 void drawLineSegments( const TQPointArray&, int index=0, int nlines=-1);
301 void drawPolyline( const TQPointArray&, int index=0, int npoints=-1);
302 void drawPolygon( const TQPointArray&, bool winding= false, int index=0, int npoints=-1);
303 void drawConvexPolygon( const TQPointArray&, int index=0, int npoints=-1);
304 void drawCubicBezier( const TQPointArray&, int index=0);
305 void drawPixmap( int x, int y, const TQPixmap&, int sx=0, int sy=0, int sw=-1, int sh=-1);
306 void drawPixmap( const TQPoint&, const TQPixmap&, const TQRect&sr);
307 void drawPixmap( const TQPoint&, const TQPixmap&);
308 void drawPixmap( const TQRect&, const TQPixmap&);
309 void drawImage( int x, int y, const TQImage&, int sx = 0, int sy = 0, int sw = -1, int sh = -1, int conversionFlags = 0);
310 void drawImage( const TQPoint&, const TQImage&, const TQRect&sr, int conversionFlags = 0);
311 void drawImage( const TQPoint&, const TQImage&, int conversion_flags = 0);
312 void drawImage( const TQRect&, const TQImage&);
313 void drawTiledPixmap( int x, int y, int w, int h, const TQPixmap&, int sx=0, int sy=0);
314 void drawTiledPixmap( const TQRect&, const TQPixmap&, const TQPoint&);
315 void drawTiledPixmap( const TQRect&, const TQPixmap&);
320 void fillRect( int x, int y, int w, int h, const TQBrush&);
321 void fillRect( const TQRect&, const TQBrush&);
322 void eraseRect( int x, int y, int w, int h);
323 void eraseRect( const TQRect&);
325 void drawText( int x, int y, const TQString&, int len = -1, TQPainter::TextDirection dir = TQPainter::Auto);
326 void drawText( const TQPoint&, const TQString&, int len = -1, TQPainter::TextDirection dir = TQPainter::Auto);
328 void drawText( int x, int y, const TQString&, int pos, int len, TQPainter::TextDirection dir = TQPainter::Auto);
329 void drawText( const TQPoint&p, const TQString&, int pos, int len, TQPainter::TextDirection dir = TQPainter::Auto);
331 void drawText( int x, int y, int w, int h, int flags, const TQString&, int len = -1, TQRect *br=0, TQTextParag **intern=0);
332 void drawText( const TQRect&, int flags, const TQString&, int len = -1, TQRect *br=0, TQTextParag **intern=0);
334 void drawTextItem( int x, int y, const TQTextItem&ti, int textflags = 0);
335 void drawTextItem( const TQPoint& p, const TQTextItem&ti, int textflags = 0);
337 TQRect boundingRect( int x, int y, int w, int h, int flags, const TQString&, int len = -1, TQTextParag **intern=0);
338 TQRect boundingRect( const TQRect&, int flags, const TQString&, int len = -1, TQTextParag **intern=0);
340 int tabStops() const;
341 void setTabStops( int);
342 int *tabArray() const;
343 void setTabArray( int *);
346 KisCanvasWidgetPainter *m_canvasWidgetPainter;
347 TQFont m_defaultFont;
349 TQBrush m_defaultBrush;
350 TQColor m_defaultColor;
351 TQPoint m_defaultBrushOrigin;
352 TQWMatrix m_defaultWorldMatrix;
|