2 Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
3 2004, 2005, 2006 Rob Buis <buis@kde.org>
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.
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.
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.
22 #include "wtf/Platform.h"
25 #include "SVGURIReference.h"
28 #include "SVGStyledElement.h"
29 #include "XLinkNames.h"
33 SVGURIReference::SVGURIReference()
37 SVGURIReference::~SVGURIReference()
41 ANIMATED_PROPERTY_DEFINITIONS_WITH_CONTEXT(SVGURIReference
, String
, String
, string
, Href
, href
, XLinkNames::hrefAttr
, m_href
)
43 bool SVGURIReference::parseMappedAttribute(MappedAttribute
* attr
)
45 kDebug() << "parse" << attr
->localName() << attr
->value() << endl
;
46 if (/*FIXME khtml vtokarev attr->name().matches(XLinkNames::hrefAttr)*/attr
->localName() == "href") {
47 kDebug() << "set href base value" << attr
->value() << endl
;
48 setHrefBaseValue(attr
->value());
55 bool SVGURIReference::isKnownAttribute(const QualifiedName
& attrName
)
57 return attrName
.matches(XLinkNames::hrefAttr
);
60 String
SVGURIReference::getTarget(const String
& url
)
62 if (url
.startsWith("url(")) { // URI References, ie. fill:url(#target)
63 unsigned int start
= url
.find('#') + 1;
64 unsigned int end
= url
.reverseFind(')');
66 return url
.substring(start
, end
- start
);
67 } else if (url
.find('#') > -1) { // format is #target
68 unsigned int start
= url
.find('#') + 1;
69 return url
.substring(start
, url
.length() - start
);
70 } else // Normal Reference, ie. style="color-profile:changeColor"