8 #ifndef SCPAINTEREX_CAIRO_H
9 #define SCPAINTEREX_CAIRO_H
12 #include "scpainterexbase.h"
22 virtual Capabilities capabilities() {
return transparencies; }
24 virtual int supportedColorModes() {
return (
int) rgbMode; }
25 virtual ColorMode preferredColorMode() {
return rgbMode; }
26 virtual ImageMode imageMode() {
return rgbImages; }
34 virtual void setWorldMatrix(
const QTransform & );
35 virtual const QTransform worldMatrix();
36 virtual void translate(
double,
double );
37 virtual void rotate(
double );
38 virtual void scale(
double,
double );
41 virtual void moveTo(
const double &,
const double & );
42 virtual void lineTo(
const double &,
const double & );
44 virtual void newPath();
45 virtual void closePath();
46 virtual void fillPath();
47 virtual void strokePath();
48 virtual void setFillRule(
bool fillRule );
49 virtual bool fillRule() {
return m_fillRule; }
50 virtual void setFillMode(
int fill );
51 virtual int fillMode() {
return m_fillMode; }
52 virtual void setStrokeMode(
int fill );
53 virtual int strokeMode() {
return m_strokeMode; }
54 virtual void setGradient( VGradientEx::Type mode,
FPoint orig,
FPoint vec,
FPoint foc,
double scale,
double skew);
55 virtual void setPattern(
ScPattern *pattern,
double scaleX,
double scaleY,
double offsetX,
double offsetY,
double rotation,
double skewX,
double skewY,
bool mirrorX,
bool mirrorY);
57 virtual void setMaskMode(
int mask );
58 virtual void setGradientMask(VGradientEx::Type mode,
FPoint orig,
FPoint vec,
FPoint foc,
double scale,
double skew);
59 virtual void setPatternMask(
ScPattern *pattern,
double scaleX,
double scaleY,
double offsetX,
double offsetY,
double rotation,
double skewX,
double skewY,
bool mirrorX,
bool mirrorY);
67 virtual void setClipPath();
69 virtual void drawImage(
ScImage *image, ScPainterExBase::ImageMode mode );
70 virtual void setupPolygon(
FPointArray *points,
bool closed =
true);
71 virtual void drawPolygon();
72 virtual void drawPolyLine();
74 virtual void drawRect(
double,
double,
double,
double);
80 virtual void setPen(
const ScColorShade &c,
double w, Qt::PenStyle st, Qt::PenCapStyle ca, Qt::PenJoinStyle jo );
81 virtual void setPenOpacity(
double op );
82 virtual void setLineWidth(
double w);
83 virtual void setDash(
const QVector<double>& array,
double ofs);
85 virtual void setBrushOpacity(
double op );
86 virtual void setOpacity(
double op );
87 virtual void setFont(
const QFont &f );
92 virtual void restore();
94 virtual void setRasterOp(
int op );
95 virtual void setBlendModeFill(
int blendMode );
96 virtual void setBlendModeStroke(
int blendMode );
99 void fillPathHelper();
100 void strokePathHelper();
103 void drawLinearGradient(
VGradientEx& gradient,
const QRect& rect );
104 void drawCircularGradient(
VGradientEx& gradient,
const QRect& rect );
105 void drawFourColorGradient(
const QRect& rect );
106 void drawDiamondGradient(
VGradientEx& gradient,
const QRect& rect );
107 void drawMeshGradient(
const QRect& rect );
108 void drawFreeMeshGradient(
const QRect& rect );
111 void strokeLinearGradient(
VGradientEx& gradient );
112 void strokeCircularGradient(
VGradientEx& gradient );
114 void getClipPathDimensions( QRect& r );
118 unsigned int m_width;
119 unsigned int m_height;
123 int m_blendModeLayer;
125 int m_blendModeStroke;
133 double m_patternScaleX;
134 double m_patternScaleY;
135 double m_patternOffsetX;
136 double m_patternOffsetY;
137 double m_patternRotation;
138 double m_patternSkewX;
139 double m_patternSkewY;
140 bool m_patternMirrorX;
141 bool m_patternMirrorY;
156 QList<QList<meshPoint> > m_meshGradientArray;
157 QList<meshGradientPatch> m_meshGradientPatches;
159 double m_gradientScale;
160 double m_gradientSkew;
163 double m_strokeTrans;
168 double m_maskPatternScaleX;
169 double m_maskPatternScaleY;
170 double m_maskPatternOffsetX;
171 double m_maskPatternOffsetY;
172 double m_maskPatternRotation;
173 double m_maskPatternSkewX;
174 double m_maskPatternSkewY;
175 bool m_maskPatternMirrorX;
176 bool m_maskPatternMirrorY;
177 double m_maskGradientScale;
178 double m_maskGradientSkew;
181 bool m_convertToGray;
184 Qt::PenCapStyle m_lineEnd;
186 Qt::PenJoinStyle m_lineJoin;
188 QVector<double> m_array;
191 QStack<QTransform> m_stack;
197 QColor transformColor(
ScColorShade& colorShade,
double trans );
198 void transformImage( QImage& image );
200 QStack<int> m_gStates;
Definition: scpainterex_cairo.h:16
Definition: sccolorshade.h:29
Definition: scpattern.h:36
A point with floating point precision.
Definition: fpoint.h:43
the Document Class
Definition: scribusdoc.h:90
Definition: vgradientex.h:80
Definition: scpainterexbase.h:50
Definition: fpointarray.h:42