| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org> | 2 * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org> |
| 3 * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org> | 3 * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org> |
| 4 * Copyright (C) Research In Motion Limited 2011. All rights reserved. | 4 * Copyright (C) Research In Motion Limited 2011. All rights reserved. |
| 5 * | 5 * |
| 6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
| 7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
| 8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
| 9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
| 10 * | 10 * |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 44 namespace WebCore { | 44 namespace WebCore { |
| 45 | 45 |
| 46 // Animated property definitions | 46 // Animated property definitions |
| 47 DEFINE_ANIMATED_STRING(SVGTRefElement, XLinkNames::hrefAttr, Href, href) | 47 DEFINE_ANIMATED_STRING(SVGTRefElement, XLinkNames::hrefAttr, Href, href) |
| 48 | 48 |
| 49 BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGTRefElement) | 49 BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGTRefElement) |
| 50 REGISTER_LOCAL_ANIMATED_PROPERTY(href) | 50 REGISTER_LOCAL_ANIMATED_PROPERTY(href) |
| 51 REGISTER_PARENT_ANIMATED_PROPERTIES(SVGTextPositioningElement) | 51 REGISTER_PARENT_ANIMATED_PROPERTIES(SVGTextPositioningElement) |
| 52 END_REGISTER_ANIMATED_PROPERTIES | 52 END_REGISTER_ANIMATED_PROPERTIES |
| 53 | 53 |
| 54 PassRefPtr<SVGTRefElement> SVGTRefElement::create(const QualifiedName& tagName,
Document* document) | 54 PassRefPtr<SVGTRefElement> SVGTRefElement::create(const QualifiedName& tagName,
Document& document) |
| 55 { | 55 { |
| 56 RefPtr<SVGTRefElement> element = adoptRef(new SVGTRefElement(tagName, docume
nt)); | 56 RefPtr<SVGTRefElement> element = adoptRef(new SVGTRefElement(tagName, docume
nt)); |
| 57 element->ensureUserAgentShadowRoot(); | 57 element->ensureUserAgentShadowRoot(); |
| 58 return element.release(); | 58 return element.release(); |
| 59 } | 59 } |
| 60 | 60 |
| 61 class SVGTRefTargetEventListener : public EventListener { | 61 class SVGTRefTargetEventListener : public EventListener { |
| 62 public: | 62 public: |
| 63 static PassRefPtr<SVGTRefTargetEventListener> create(SVGTRefElement* trefEle
ment) | 63 static PassRefPtr<SVGTRefTargetEventListener> create(SVGTRefElement* trefEle
ment) |
| 64 { | 64 { |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 124 void SVGTRefTargetEventListener::handleEvent(ScriptExecutionContext*, Event* eve
nt) | 124 void SVGTRefTargetEventListener::handleEvent(ScriptExecutionContext*, Event* eve
nt) |
| 125 { | 125 { |
| 126 ASSERT(isAttached()); | 126 ASSERT(isAttached()); |
| 127 | 127 |
| 128 if (event->type() == eventNames().DOMSubtreeModifiedEvent && m_trefElement !
= event->target()) | 128 if (event->type() == eventNames().DOMSubtreeModifiedEvent && m_trefElement !
= event->target()) |
| 129 m_trefElement->updateReferencedText(m_target.get()); | 129 m_trefElement->updateReferencedText(m_target.get()); |
| 130 else if (event->type() == eventNames().DOMNodeRemovedFromDocumentEvent) | 130 else if (event->type() == eventNames().DOMNodeRemovedFromDocumentEvent) |
| 131 m_trefElement->detachTarget(); | 131 m_trefElement->detachTarget(); |
| 132 } | 132 } |
| 133 | 133 |
| 134 inline SVGTRefElement::SVGTRefElement(const QualifiedName& tagName, Document* do
cument) | 134 inline SVGTRefElement::SVGTRefElement(const QualifiedName& tagName, Document& do
cument) |
| 135 : SVGTextPositioningElement(tagName, document) | 135 : SVGTextPositioningElement(tagName, document) |
| 136 , m_targetListener(SVGTRefTargetEventListener::create(this)) | 136 , m_targetListener(SVGTRefTargetEventListener::create(this)) |
| 137 { | 137 { |
| 138 ASSERT(hasTagName(SVGNames::trefTag)); | 138 ASSERT(hasTagName(SVGNames::trefTag)); |
| 139 ScriptWrappable::init(this); | 139 ScriptWrappable::init(this); |
| 140 registerAnimatedPropertiesForSVGTRefElement(); | 140 registerAnimatedPropertiesForSVGTRefElement(); |
| 141 | 141 |
| 142 UseCounter::count(document, UseCounter::SVGTRefElement); | 142 UseCounter::count(&document, UseCounter::SVGTRefElement); |
| 143 } | 143 } |
| 144 | 144 |
| 145 SVGTRefElement::~SVGTRefElement() | 145 SVGTRefElement::~SVGTRefElement() |
| 146 { | 146 { |
| 147 m_targetListener->detach(); | 147 m_targetListener->detach(); |
| 148 } | 148 } |
| 149 | 149 |
| 150 void SVGTRefElement::updateReferencedText(Element* target) | 150 void SVGTRefElement::updateReferencedText(Element* target) |
| 151 { | 151 { |
| 152 if (target) | 152 if (target) |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 276 } | 276 } |
| 277 | 277 |
| 278 void SVGTRefElement::removedFrom(ContainerNode* rootParent) | 278 void SVGTRefElement::removedFrom(ContainerNode* rootParent) |
| 279 { | 279 { |
| 280 SVGElement::removedFrom(rootParent); | 280 SVGElement::removedFrom(rootParent); |
| 281 if (rootParent->inDocument()) | 281 if (rootParent->inDocument()) |
| 282 m_targetListener->detach(); | 282 m_targetListener->detach(); |
| 283 } | 283 } |
| 284 | 284 |
| 285 } | 285 } |
| OLD | NEW |