KHTML
SVGPaintServerSolidQt.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "config.h"
00023 #include "wtf/Platform.h"
00024
00025 #if ENABLE(SVG)
00026 #include "SVGPaintServerSolid.h"
00027
00028 #include "RenderPath.h"
00029
00030 #include <QPainter>
00031
00032 namespace WebCore {
00033
00034 bool SVGPaintServerSolid::setup(QPainter* painter, QPainterPath* painterPath, const RenderObject* object, SVGPaintTargetType type, bool isPaintingText) const
00035 {
00036
00037
00038
00039 RenderStyle* renderStyle = object->style();
00040
00041
00042 QColor c = color();
00043
00044 if ((type & ApplyToFillTargetType) && renderStyle->svgStyle()->hasFill()) {
00045 c.setAlphaF(renderStyle->svgStyle()->fillOpacity());
00046
00047 QBrush brush(c);
00048 painter->setBrush(brush);
00049 if (painterPath)
00050 painterPath->setFillRule(renderStyle->svgStyle()->fillRule() == RULE_EVENODD ? Qt::OddEvenFill : Qt::WindingFill);
00051
00052
00053 if (isPaintingText && !(type & ApplyToStrokeTargetType))
00054 painter->setPen(c);
00055 }
00056
00057 if ((type & ApplyToStrokeTargetType) && renderStyle->svgStyle()->hasStroke()) {
00058 c.setAlphaF(renderStyle->svgStyle()->strokeOpacity());
00059
00060 QPen pen(c);
00061 setPenProperties(object, renderStyle, pen);
00062 painter->setPen(pen);
00063
00064
00065 }
00066
00067 return true;
00068 }
00069
00070 }
00071
00072 #endif
00073
00074