1 /* 2 Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox (at) kde.org> 3 2004, 2005, 2006, 2007 Rob Buis <buis (at) kde.org> 4 5 This library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Library General Public 7 License as published by the Free Software Foundation; either 8 version 2 of the License, or (at your option) any later version. 9 10 This library is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Library General Public License for more details. 14 15 You should have received a copy of the GNU Library General Public License 16 along with this library; see the file COPYING.LIB. If not, write to 17 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 18 Boston, MA 02110-1301, USA. 19 */ 20 21 #include "config.h" 22 #if ENABLE(SVG) 23 #include "SVGPaint.h" 24 25 namespace WebCore { 26 27 SVGPaint::SVGPaint() 28 : m_paintType(SVG_PAINTTYPE_UNKNOWN) 29 { 30 } 31 32 SVGPaint::SVGPaint(const String& uri) 33 : m_paintType(SVG_PAINTTYPE_URI_RGBCOLOR) 34 { 35 setUri(uri); 36 } 37 38 SVGPaint::SVGPaint(SVGPaintType paintType) 39 : m_paintType(paintType) 40 { 41 } 42 43 SVGPaint::SVGPaint(SVGPaintType paintType, const String& uri, const String& rgbPaint, const String&) 44 : SVGColor(rgbPaint) 45 , m_paintType(paintType) 46 { 47 setUri(uri); 48 } 49 50 SVGPaint::SVGPaint(const Color& c) 51 : SVGColor(c) 52 , m_paintType(SVG_PAINTTYPE_RGBCOLOR) 53 { 54 } 55 56 SVGPaint::SVGPaint(const String& uri, const Color& c) 57 : SVGColor(c) 58 , m_paintType(SVG_PAINTTYPE_URI_RGBCOLOR) 59 { 60 setUri(uri); 61 } 62 63 SVGPaint::~SVGPaint() 64 { 65 } 66 67 SVGPaint* SVGPaint::defaultFill() 68 { 69 static SVGPaint* _defaultFill = new SVGPaint(Color::black); 70 return _defaultFill; 71 } 72 73 SVGPaint* SVGPaint::defaultStroke() 74 { 75 static SVGPaint* _defaultStroke = new SVGPaint(SVG_PAINTTYPE_NONE); 76 return _defaultStroke; 77 } 78 79 String SVGPaint::uri() const 80 { 81 return m_uri; 82 } 83 84 void SVGPaint::setUri(const String& uri) 85 { 86 m_uri = uri; 87 } 88 89 void SVGPaint::setPaint(SVGPaintType paintType, const String& uri, const String& rgbPaint, const String&, ExceptionCode&) 90 { 91 m_paintType = paintType; 92 93 if (m_paintType == SVG_PAINTTYPE_URI) 94 setUri(uri); 95 else if (m_paintType == SVG_PAINTTYPE_RGBCOLOR) 96 setRGBColor(rgbPaint); 97 } 98 99 String SVGPaint::cssText() const 100 { 101 if (m_paintType == SVG_PAINTTYPE_NONE) 102 return "none"; 103 else if (m_paintType == SVG_PAINTTYPE_CURRENTCOLOR) 104 return "currentColor"; 105 else if (m_paintType == SVG_PAINTTYPE_URI) 106 return "url(" + m_uri + ")"; 107 108 return SVGColor::cssText(); 109 } 110 111 } 112 113 // vim:ts=4:noet 114 #endif // ENABLE(SVG) 115 116