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 |