OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1997 Martin Jones (mjones@kde.org) | 2 * Copyright (C) 1997 Martin Jones (mjones@kde.org) |
3 * (C) 1997 Torben Weis (weis@kde.org) | 3 * (C) 1997 Torben Weis (weis@kde.org) |
4 * (C) 1998 Waldo Bastian (bastian@kde.org) | 4 * (C) 1998 Waldo Bastian (bastian@kde.org) |
5 * (C) 1999 Lars Knoll (knoll@kde.org) | 5 * (C) 1999 Lars Knoll (knoll@kde.org) |
6 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 6 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
7 * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2010, 2011 Apple Inc. All rights
reserved. | 7 * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2010, 2011 Apple Inc. All rights
reserved. |
8 * | 8 * |
9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 ScriptWrappable::init(this); | 58 ScriptWrappable::init(this); |
59 } | 59 } |
60 | 60 |
61 PassRefPtr<HTMLTableElement> HTMLTableElement::create(Document& document) | 61 PassRefPtr<HTMLTableElement> HTMLTableElement::create(Document& document) |
62 { | 62 { |
63 return adoptRef(new HTMLTableElement(document)); | 63 return adoptRef(new HTMLTableElement(document)); |
64 } | 64 } |
65 | 65 |
66 HTMLTableCaptionElement* HTMLTableElement::caption() const | 66 HTMLTableCaptionElement* HTMLTableElement::caption() const |
67 { | 67 { |
68 for (Node* child = firstChild(); child; child = child->nextSibling()) { | 68 for (Element* child = ElementTraversal::firstWithin(*this); child; child = E
lementTraversal::nextSibling(*child)) { |
69 if (child->hasTagName(captionTag)) | 69 if (child->hasTagName(captionTag)) |
70 return toHTMLTableCaptionElement(child); | 70 return toHTMLTableCaptionElement(child); |
71 } | 71 } |
72 return 0; | 72 return 0; |
73 } | 73 } |
74 | 74 |
75 void HTMLTableElement::setCaption(PassRefPtr<HTMLTableCaptionElement> newCaption
, ExceptionState& exceptionState) | 75 void HTMLTableElement::setCaption(PassRefPtr<HTMLTableCaptionElement> newCaption
, ExceptionState& exceptionState) |
76 { | 76 { |
77 deleteCaption(); | 77 deleteCaption(); |
78 insertBefore(newCaption, firstChild(), exceptionState); | 78 insertBefore(newCaption, firstChild(), exceptionState); |
79 } | 79 } |
80 | 80 |
81 HTMLTableSectionElement* HTMLTableElement::tHead() const | 81 HTMLTableSectionElement* HTMLTableElement::tHead() const |
82 { | 82 { |
83 for (Node* child = firstChild(); child; child = child->nextSibling()) { | 83 for (Element* child = ElementTraversal::firstWithin(*this); child; child = E
lementTraversal::nextSibling(*child)) { |
84 if (child->hasTagName(theadTag)) | 84 if (child->hasTagName(theadTag)) |
85 return toHTMLTableSectionElement(child); | 85 return toHTMLTableSectionElement(child); |
86 } | 86 } |
87 return 0; | 87 return 0; |
88 } | 88 } |
89 | 89 |
90 void HTMLTableElement::setTHead(PassRefPtr<HTMLTableSectionElement> newHead, Exc
eptionState& exceptionState) | 90 void HTMLTableElement::setTHead(PassRefPtr<HTMLTableSectionElement> newHead, Exc
eptionState& exceptionState) |
91 { | 91 { |
92 deleteTHead(); | 92 deleteTHead(); |
93 | 93 |
94 Node* child; | 94 Element* child; |
95 for (child = firstChild(); child; child = child->nextSibling()) | 95 for (child = ElementTraversal::firstWithin(*this); child; child = ElementTra
versal::nextSibling(*child)) { |
96 if (child->isElementNode() && !child->hasTagName(captionTag) && !child->
hasTagName(colgroupTag)) | 96 if (!child->hasTagName(captionTag) && !child->hasTagName(colgroupTag)) |
97 break; | 97 break; |
| 98 } |
98 | 99 |
99 insertBefore(newHead, child, exceptionState); | 100 insertBefore(newHead, child, exceptionState); |
100 } | 101 } |
101 | 102 |
102 HTMLTableSectionElement* HTMLTableElement::tFoot() const | 103 HTMLTableSectionElement* HTMLTableElement::tFoot() const |
103 { | 104 { |
104 for (Node* child = firstChild(); child; child = child->nextSibling()) { | 105 for (Element* child = ElementTraversal::firstWithin(*this); child; child = E
lementTraversal::nextSibling(*child)) { |
105 if (child->hasTagName(tfootTag)) | 106 if (child->hasTagName(tfootTag)) |
106 return toHTMLTableSectionElement(child); | 107 return toHTMLTableSectionElement(child); |
107 } | 108 } |
108 return 0; | 109 return 0; |
109 } | 110 } |
110 | 111 |
111 void HTMLTableElement::setTFoot(PassRefPtr<HTMLTableSectionElement> newFoot, Exc
eptionState& exceptionState) | 112 void HTMLTableElement::setTFoot(PassRefPtr<HTMLTableSectionElement> newFoot, Exc
eptionState& exceptionState) |
112 { | 113 { |
113 deleteTFoot(); | 114 deleteTFoot(); |
114 | 115 |
115 Node* child; | 116 Element* child; |
116 for (child = firstChild(); child; child = child->nextSibling()) | 117 for (child = ElementTraversal::firstWithin(*this); child; child = ElementTra
versal::nextSibling(*child)) { |
117 if (child->isElementNode() && !child->hasTagName(captionTag) && !child->
hasTagName(colgroupTag) && !child->hasTagName(theadTag)) | 118 if (!child->hasTagName(captionTag) && !child->hasTagName(colgroupTag) &&
!child->hasTagName(theadTag)) |
118 break; | 119 break; |
| 120 } |
119 | 121 |
120 insertBefore(newFoot, child, exceptionState); | 122 insertBefore(newFoot, child, exceptionState); |
121 } | 123 } |
122 | 124 |
123 PassRefPtr<HTMLElement> HTMLTableElement::createTHead() | 125 PassRefPtr<HTMLElement> HTMLTableElement::createTHead() |
124 { | 126 { |
125 if (HTMLTableSectionElement* existingHead = tHead()) | 127 if (HTMLTableSectionElement* existingHead = tHead()) |
126 return existingHead; | 128 return existingHead; |
127 RefPtr<HTMLTableSectionElement> head = HTMLTableSectionElement::create(thead
Tag, document()); | 129 RefPtr<HTMLTableSectionElement> head = HTMLTableSectionElement::create(thead
Tag, document()); |
128 setTHead(head, IGNORE_EXCEPTION); | 130 setTHead(head, IGNORE_EXCEPTION); |
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
567 { | 569 { |
568 return getAttribute(rulesAttr); | 570 return getAttribute(rulesAttr); |
569 } | 571 } |
570 | 572 |
571 const AtomicString& HTMLTableElement::summary() const | 573 const AtomicString& HTMLTableElement::summary() const |
572 { | 574 { |
573 return getAttribute(summaryAttr); | 575 return getAttribute(summaryAttr); |
574 } | 576 } |
575 | 577 |
576 } | 578 } |
OLD | NEW |