Reviewed by Mitz.
[WebKit-https.git] / WebCore / platform / graphics / svg / qt / SVGPaintServerSolidQt.cpp
1 /*
2     Copyright (C) 2006 Nikolas Zimmermann <wildfox@kde.org>
3
4     This file is part of the KDE project
5
6     This library is free software; you can redistribute it and/or
7     modify it under the terms of the GNU Library General Public
8     License as published by the Free Software Foundation; either
9     version 2 of the License, or (at your option) any later version.
10
11     This library is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14     Library General Public License for more details.
15
16     You should have received a copy of the GNU Library General Public License
17     aint with this library; see the file COPYING.LIB.  If not, write to
18     the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19     Boston, MA 02111-1307, USA.
20 */
21
22 #include "config.h"
23
24 #ifdef SVG_SUPPORT
25 #include "SVGPaintServerSolid.h"
26
27 #include "KRenderingDeviceQt.h"
28 #include "RenderPath.h"
29
30 namespace WebCore {
31
32 bool SVGPaintServerSolid::setup(KRenderingDeviceContext* context, const RenderObject* object, SVGPaintTargetType type) const
33 {
34     KRenderingDeviceContextQt* qtContext = static_cast<KRenderingDeviceContextQt*>(context);
35
36     RenderStyle* renderStyle = object->style();
37     // TODO? qtContext->painter().setOpacity(renderStyle->opacity());
38
39     QColor c = color();
40
41     if ((type & APPLY_TO_FILL) && renderStyle->svgStyle()->hasFill()) {
42         c.setAlphaF(renderStyle->svgStyle()->fillOpacity());
43
44         QBrush brush(c);
45         qtContext->painter().setBrush(brush);
46         qtContext->setFillRule(renderStyle->svgStyle()->fillRule());
47
48         /* if(isPaintingText()) ... */
49     }
50
51     if((type & APPLY_TO_STROKE) && renderStyle->svgStyle()->hasStroke()) {
52         c.setAlphaF(renderStyle->svgStyle()->strokeOpacity());
53
54         QPen pen(c);
55         setPenProperties(object, renderStyle, pen);
56         qtContext->painter().setPen(pen);
57
58         /* if(isPaintingText()) ... */
59     }
60
61     return true;
62 }
63
64 } // namespace WebCore
65
66 #endif
67
68 // vim:ts=4:noet