chalk

kis_qpaintdevice_canvas_painter.h
1/*
2 * Copyright (c) 2005 Adrian Page <adrian@pagenet.plus.com>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 */
18
19#ifndef KIS_TQPAINTDEVICE_CANVAS_PAINTER_H_
20#define KIS_TQPAINTDEVICE_CANVAS_PAINTER_H_
21
22#ifdef HAVE_CONFIG_H
23#include <config.h>
24#endif
25
26#include <tqwidget.h>
27#include <tqpainter.h>
28
29#include "kis_global.h"
30#include "kis_canvas_painter.h"
31
32class KisTQPaintDeviceCanvasPainter : public KisCanvasWidgetPainter {
33public:
34 KisTQPaintDeviceCanvasPainter();
35 KisTQPaintDeviceCanvasPainter(const TQPaintDevice *paintDevice);
36 virtual ~KisTQPaintDeviceCanvasPainter();
37
38 bool begin(const TQPaintDevice* paintDevice, bool unclipped = false);
39
40 virtual bool begin(KisCanvasWidget *canvasWidget, bool unclipped = false);
41 virtual bool end();
42
43 virtual void save();
44 virtual void restore();
45
46 virtual TQFontMetrics fontMetrics() const;
47 virtual TQFontInfo fontInfo() const;
48
49 virtual const TQFont& font() const;
50 virtual void setFont(const TQFont&);
51 virtual const TQPen& pen() const;
52 virtual void setPen(const TQPen&);
53 virtual void setPen(TQt::PenStyle);
54 virtual void setPen(const TQColor&);
55 virtual const TQBrush&brush() const;
56 virtual void setBrush(const TQBrush&);
57 virtual void setBrush(TQt::BrushStyle);
58 virtual void setBrush(const TQColor&);
59 virtual TQPoint pos() const;
60
61 virtual const TQColor&backgroundColor() const;
62 virtual void setBackgroundColor(const TQColor&);
63 virtual TQt::BGMode backgroundMode() const;
64 virtual void setBackgroundMode(TQt::BGMode);
65 virtual TQt::RasterOp rasterOp() const;
66 virtual void setRasterOp(TQt::RasterOp);
67 virtual const TQPoint&brushOrigin() const;
68 virtual void setBrushOrigin(int x, int y);
69 virtual void setBrushOrigin(const TQPoint&);
70
71 virtual bool hasViewXForm() const;
72 virtual bool hasWorldXForm() const;
73
74 virtual void setViewXForm(bool);
75 virtual TQRect window() const;
76 virtual void setWindow(const TQRect&);
77 virtual void setWindow(int x, int y, int w, int h);
78 virtual TQRect viewport() const;
79 virtual void setViewport(const TQRect&);
80 virtual void setViewport(int x, int y, int w, int h);
81
82 virtual void setWorldXForm(bool);
83 virtual const TQWMatrix&worldMatrix() const;
84 virtual void setWorldMatrix(const TQWMatrix&, bool combine=false);
85
86 virtual void saveWorldMatrix();
87 virtual void restoreWorldMatrix();
88
89 virtual void scale(double sx, double sy);
90 virtual void shear(double sh, double sv);
91 virtual void rotate(double a);
92
93 virtual void translate(double dx, double dy);
94 virtual void resetXForm();
95 virtual double translationX() const;
96 virtual double translationY() const;
97
98 virtual TQPoint xForm(const TQPoint&) const;
99 virtual TQRect xForm(const TQRect&) const;
100 virtual TQPointArray xForm(const TQPointArray&) const;
101 virtual TQPointArray xForm(const TQPointArray&, int index, int npoints) const;
102 virtual TQPoint xFormDev(const TQPoint&) const;
103 virtual TQRect xFormDev(const TQRect&) const;
104 virtual TQPointArray xFormDev(const TQPointArray&) const;
105 virtual TQPointArray xFormDev(const TQPointArray&, int index, int npoints) const;
106
107 virtual void setClipping(bool);
108 virtual bool hasClipping() const;
109 virtual TQRegion clipRegion(TQPainter::CoordinateMode = TQPainter::CoordDevice) const;
110 virtual void setClipRect(const TQRect&, TQPainter::CoordinateMode = TQPainter::CoordDevice);
111 virtual void setClipRect(int x, int y, int w, int h, TQPainter::CoordinateMode = TQPainter::CoordDevice);
112 virtual void setClipRegion(const TQRegion&, TQPainter::CoordinateMode = TQPainter::CoordDevice);
113
114 virtual void drawPoint(int x, int y);
115 virtual void drawPoint(const TQPoint&);
116 virtual void drawPoints(const TQPointArray& a, int index=0, int npoints=-1);
117 virtual void moveTo(int x, int y);
118 virtual void moveTo(const TQPoint&);
119 virtual void lineTo(int x, int y);
120 virtual void lineTo(const TQPoint&);
121 virtual void drawLine(int x1, int y1, int x2, int y2);
122 virtual void drawLine(const TQPoint&, const TQPoint&);
123 virtual void drawRect(int x, int y, int w, int h);
124 virtual void drawRect(const TQRect&);
125 virtual void drawWinFocusRect(int x, int y, int w, int h);
126 virtual void drawWinFocusRect(int x, int y, int w, int h, const TQColor&bgColor);
127 virtual void drawWinFocusRect(const TQRect&);
128 virtual void drawWinFocusRect(const TQRect&, const TQColor&bgColor);
129 virtual void drawRoundRect(int x, int y, int w, int h, int = 25, int = 25);
130 virtual void drawRoundRect(const TQRect&, int = 25, int = 25);
131 virtual void drawEllipse(int x, int y, int w, int h);
132 virtual void drawEllipse(const TQRect&);
133 virtual void drawArc(int x, int y, int w, int h, int a, int alen);
134 virtual void drawArc(const TQRect&, int a, int alen);
135 virtual void drawPie(int x, int y, int w, int h, int a, int alen);
136 virtual void drawPie(const TQRect&, int a, int alen);
137 virtual void drawChord(int x, int y, int w, int h, int a, int alen);
138 virtual void drawChord(const TQRect&, int a, int alen);
139 virtual void drawLineSegments(const TQPointArray&, int index=0, int nlines=-1);
140 virtual void drawPolyline(const TQPointArray&, int index=0, int npoints=-1);
141 virtual void drawPolygon(const TQPointArray&, bool winding=false, int index=0, int npoints=-1);
142 virtual void drawConvexPolygon(const TQPointArray&, int index=0, int npoints=-1);
143 virtual void drawCubicBezier(const TQPointArray&, int index=0);
144 virtual void drawPixmap(int x, int y, const TQPixmap&, int sx=0, int sy=0, int sw=-1, int sh=-1);
145 virtual void drawPixmap(const TQPoint&, const TQPixmap&, const TQRect&sr);
146 virtual void drawPixmap(const TQPoint&, const TQPixmap&);
147 virtual void drawPixmap(const TQRect&, const TQPixmap&);
148 virtual void drawImage(int x, int y, const TQImage&, int sx = 0, int sy = 0, int sw = -1, int sh = -1, int conversionFlags = 0);
149 virtual void drawImage(const TQPoint&, const TQImage&, const TQRect&sr, int conversionFlags = 0);
150 virtual void drawImage(const TQPoint&, const TQImage&, int conversion_flags = 0);
151 virtual void drawImage(const TQRect&, const TQImage&);
152 virtual void drawTiledPixmap(int x, int y, int w, int h, const TQPixmap&, int sx=0, int sy=0);
153 virtual void drawTiledPixmap(const TQRect&, const TQPixmap&, const TQPoint&);
154 virtual void drawTiledPixmap(const TQRect&, const TQPixmap&);
155 //virtual void drawPicture(const TQPicture&);
156 //virtual void drawPicture(int x, int y, const TQPicture&);
157 //virtual void drawPicture(const TQPoint&, const TQPicture&);
158
159 virtual void fillRect(int x, int y, int w, int h, const TQBrush&);
160 virtual void fillRect(const TQRect&, const TQBrush&);
161 virtual void eraseRect(int x, int y, int w, int h);
162 virtual void eraseRect(const TQRect&);
163
164 virtual void drawText(int x, int y, const TQString&, int len = -1, TQPainter::TextDirection dir = TQPainter::Auto);
165 virtual void drawText(const TQPoint&, const TQString&, int len = -1, TQPainter::TextDirection dir = TQPainter::Auto);
166
167 virtual void drawText(int x, int y, const TQString&, int pos, int len, TQPainter::TextDirection dir = TQPainter::Auto);
168 virtual void drawText(const TQPoint&p, const TQString&, int pos, int len, TQPainter::TextDirection dir = TQPainter::Auto);
169
170 virtual void drawText(int x, int y, int w, int h, int flags, const TQString&, int len = -1, TQRect *br=0, TQTextParag **intern=0);
171 virtual void drawText(const TQRect&, int flags, const TQString&, int len = -1, TQRect *br=0, TQTextParag **intern=0);
172
173 virtual void drawTextItem(int x, int y, const TQTextItem&ti, int textflags = 0);
174 virtual void drawTextItem(const TQPoint& p, const TQTextItem&ti, int textflags = 0);
175
176 virtual TQRect boundingRect(int x, int y, int w, int h, int flags, const TQString&, int len = -1, TQTextParag **intern=0);
177 virtual TQRect boundingRect(const TQRect&, int flags, const TQString&, int len = -1, TQTextParag **intern=0);
178
179 virtual int tabStops() const;
180 virtual void setTabStops(int);
181 virtual int *tabArray() const;
182 virtual void setTabArray(int *);
183
184protected:
185 TQPainter m_painter;
186};
187
188#endif // KIS_TQPAINTDEVICE_CANVAS_PAINTER_H_
189