OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org> | 2 * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org> |
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2010 Rob Buis <buis@kde.org> | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2010 Rob Buis <buis@kde.org> |
4 * Copyright (C) 2007 Apple Inc. All rights reserved. | 4 * Copyright (C) 2007 Apple Inc. 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 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
329 } | 329 } |
330 | 330 |
331 void SVGSVGElement::forceRedraw() | 331 void SVGSVGElement::forceRedraw() |
332 { | 332 { |
333 // FIXME: Implement me (see bug 11275) | 333 // FIXME: Implement me (see bug 11275) |
334 } | 334 } |
335 | 335 |
336 PassRefPtr<NodeList> SVGSVGElement::collectIntersectionOrEnclosureList(const SVG
Rect& rect, SVGElement* referenceElement, CollectIntersectionOrEnclosure collect
) const | 336 PassRefPtr<NodeList> SVGSVGElement::collectIntersectionOrEnclosureList(const SVG
Rect& rect, SVGElement* referenceElement, CollectIntersectionOrEnclosure collect
) const |
337 { | 337 { |
338 Vector<RefPtr<Node> > nodes; | 338 Vector<RefPtr<Node> > nodes; |
339 Element* element = ElementTraversal::next(referenceElement ? referenceElemen
t : this); | 339 Element* element = ElementTraversal::next(*(referenceElement ? referenceElem
ent : this)); |
340 while (element) { | 340 while (element) { |
341 if (element->isSVGElement()) { | 341 if (element->isSVGElement()) { |
342 SVGElement* svgElement = toSVGElement(element); | 342 SVGElement* svgElement = toSVGElement(element); |
343 if (collect == CollectIntersectionList) { | 343 if (collect == CollectIntersectionList) { |
344 if (checkIntersection(svgElement, rect)) | 344 if (checkIntersection(svgElement, rect)) |
345 nodes.append(element); | 345 nodes.append(element); |
346 } else { | 346 } else { |
347 if (checkEnclosure(svgElement, rect)) | 347 if (checkEnclosure(svgElement, rect)) |
348 nodes.append(element); | 348 nodes.append(element); |
349 } | 349 } |
350 } | 350 } |
351 | 351 |
352 element = ElementTraversal::next(element, referenceElement ? referenceEl
ement : this); | 352 element = ElementTraversal::next(*element, referenceElement ? referenceE
lement : this); |
353 } | 353 } |
354 return StaticNodeList::adopt(nodes); | 354 return StaticNodeList::adopt(nodes); |
355 } | 355 } |
356 | 356 |
357 PassRefPtr<NodeList> SVGSVGElement::getIntersectionList(const SVGRect& rect, SVG
Element* referenceElement) const | 357 PassRefPtr<NodeList> SVGSVGElement::getIntersectionList(const SVGRect& rect, SVG
Element* referenceElement) const |
358 { | 358 { |
359 return collectIntersectionOrEnclosureList(rect, referenceElement, CollectInt
ersectionList); | 359 return collectIntersectionOrEnclosureList(rect, referenceElement, CollectInt
ersectionList); |
360 } | 360 } |
361 | 361 |
362 PassRefPtr<NodeList> SVGSVGElement::getEnclosureList(const SVGRect& rect, SVGEle
ment* referenceElement) const | 362 PassRefPtr<NodeList> SVGSVGElement::getEnclosureList(const SVGRect& rect, SVGEle
ment* referenceElement) const |
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
767 // getElementById on SVGSVGElement is restricted to only the child subtree defin
ed by the <svg> element. | 767 // getElementById on SVGSVGElement is restricted to only the child subtree defin
ed by the <svg> element. |
768 // See http://www.w3.org/TR/SVG11/struct.html#InterfaceSVGSVGElement | 768 // See http://www.w3.org/TR/SVG11/struct.html#InterfaceSVGSVGElement |
769 Element* SVGSVGElement::getElementById(const AtomicString& id) const | 769 Element* SVGSVGElement::getElementById(const AtomicString& id) const |
770 { | 770 { |
771 Element* element = treeScope().getElementById(id); | 771 Element* element = treeScope().getElementById(id); |
772 if (element && element->isDescendantOf(this)) | 772 if (element && element->isDescendantOf(this)) |
773 return element; | 773 return element; |
774 | 774 |
775 // Fall back to traversing our subtree. Duplicate ids are allowed, the first
found will | 775 // Fall back to traversing our subtree. Duplicate ids are allowed, the first
found will |
776 // be returned. | 776 // be returned. |
777 for (Node* node = firstChild(); node; node = NodeTraversal::next(node, this)
) { | 777 for (Node* node = firstChild(); node; node = NodeTraversal::next(*node, this
)) { |
778 if (!node->isElementNode()) | 778 if (!node->isElementNode()) |
779 continue; | 779 continue; |
780 | 780 |
781 Element* element = toElement(node); | 781 Element* element = toElement(node); |
782 if (element->getIdAttribute() == id) | 782 if (element->getIdAttribute() == id) |
783 return element; | 783 return element; |
784 } | 784 } |
785 return 0; | 785 return 0; |
786 } | 786 } |
787 | 787 |
788 } | 788 } |
OLD | NEW |