KHTML
SVGStopElement.cpp
Go to the documentation of this file.
00001 /* 00002 Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> 00003 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org> 00004 00005 This file is part of the KDE project 00006 00007 This library is free software; you can redistribute it and/or 00008 modify it under the terms of the GNU Library General Public 00009 License as published by the Free Software Foundation; either 00010 version 2 of the License, or (at your option) any later version. 00011 00012 This library is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 Library General Public License for more details. 00016 00017 You should have received a copy of the GNU Library General Public License 00018 along with this library; see the file COPYING.LIB. If not, write to 00019 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00020 Boston, MA 02110-1301, USA. 00021 */ 00022 00023 #include "config.h" 00024 #include "wtf/Platform.h" 00025 00026 #if ENABLE(SVG) 00027 #include "SVGStopElement.h" 00028 00029 #include "Document.h" 00030 #include "RenderSVGGradientStop.h" 00031 #include "SVGGradientElement.h" 00032 #include "SVGNames.h" 00033 00034 namespace WebCore { 00035 00036 SVGStopElement::SVGStopElement(const QualifiedName& tagName, Document* doc) 00037 : SVGStyledElement(tagName, doc) 00038 , m_offset(0.0f) 00039 { 00040 } 00041 00042 SVGStopElement::~SVGStopElement() 00043 { 00044 } 00045 00046 ANIMATED_PROPERTY_DEFINITIONS(SVGStopElement, float, Number, number, Offset, offset, SVGNames::offsetAttr, m_offset) 00047 00048 void SVGStopElement::parseMappedAttribute(MappedAttribute* attr) 00049 { 00050 if (attr->name() == SVGNames::offsetAttr) { 00051 const String& value = attr->value(); 00052 kDebug() << "parse offset:" << value << endl; 00053 if (value.endsWith("%")) 00054 setOffsetBaseValue(value.substring(0, value.length() - 1).toFloat() / 100.0f); 00055 else 00056 setOffsetBaseValue(value.toFloat()); 00057 00058 setChanged(); 00059 } else 00060 SVGStyledElement::parseMappedAttribute(attr); 00061 } 00062 00063 RenderObject* SVGStopElement::createRenderer(RenderArena* arena, RenderStyle*) 00064 { 00065 return new (arena) RenderSVGGradientStop(this); 00066 } 00067 00068 // KHTML ElementImpl pure virtual method 00069 quint32 SVGStopElement::id() const 00070 { 00071 return SVGNames::stopTag.id(); 00072 } 00073 00074 } 00075 00076 #endif // ENABLE(SVG)
KDE 4.6 API Reference