OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
5 * Copyright (C) 2004, 2005, 2006, 2010 Apple Inc. All rights reserved. | 5 * Copyright (C) 2004, 2005, 2006, 2010 Apple Inc. All rights reserved. |
6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) |
7 * | 7 * |
8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 ScriptWrappable::init(this); | 45 ScriptWrappable::init(this); |
46 } | 46 } |
47 | 47 |
48 PassRefPtr<HTMLFieldSetElement> HTMLFieldSetElement::create(const QualifiedName&
tagName, Document& document, HTMLFormElement* form) | 48 PassRefPtr<HTMLFieldSetElement> HTMLFieldSetElement::create(const QualifiedName&
tagName, Document& document, HTMLFormElement* form) |
49 { | 49 { |
50 return adoptRef(new HTMLFieldSetElement(tagName, document, form)); | 50 return adoptRef(new HTMLFieldSetElement(tagName, document, form)); |
51 } | 51 } |
52 | 52 |
53 void HTMLFieldSetElement::invalidateDisabledStateUnder(Element* base) | 53 void HTMLFieldSetElement::invalidateDisabledStateUnder(Element* base) |
54 { | 54 { |
55 for (Element* element = ElementTraversal::firstWithin(base); element; elemen
t = ElementTraversal::next(element, base)) { | 55 for (Element* element = ElementTraversal::firstWithin(base); element; elemen
t = ElementTraversal::next(*element, base)) { |
56 if (element->isFormControlElement()) | 56 if (element->isFormControlElement()) |
57 toHTMLFormControlElement(element)->ancestorDisabledStateWasChanged()
; | 57 toHTMLFormControlElement(element)->ancestorDisabledStateWasChanged()
; |
58 } | 58 } |
59 } | 59 } |
60 | 60 |
61 void HTMLFieldSetElement::disabledAttributeChanged() | 61 void HTMLFieldSetElement::disabledAttributeChanged() |
62 { | 62 { |
63 // This element must be updated before the style of nodes in its subtree get
s recalculated. | 63 // This element must be updated before the style of nodes in its subtree get
s recalculated. |
64 HTMLFormControlElement::disabledAttributeChanged(); | 64 HTMLFormControlElement::disabledAttributeChanged(); |
65 invalidateDisabledStateUnder(this); | 65 invalidateDisabledStateUnder(this); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 void HTMLFieldSetElement::refreshElementsIfNeeded() const | 107 void HTMLFieldSetElement::refreshElementsIfNeeded() const |
108 { | 108 { |
109 uint64_t docVersion = document().domTreeVersion(); | 109 uint64_t docVersion = document().domTreeVersion(); |
110 if (m_documentVersion == docVersion) | 110 if (m_documentVersion == docVersion) |
111 return; | 111 return; |
112 | 112 |
113 m_documentVersion = docVersion; | 113 m_documentVersion = docVersion; |
114 | 114 |
115 m_associatedElements.clear(); | 115 m_associatedElements.clear(); |
116 | 116 |
117 for (Element* element = ElementTraversal::firstWithin(this); element; elemen
t = ElementTraversal::next(element, this)) { | 117 for (Element* element = ElementTraversal::firstWithin(this); element; elemen
t = ElementTraversal::next(*element, this)) { |
118 if (element->hasTagName(objectTag)) { | 118 if (element->hasTagName(objectTag)) { |
119 m_associatedElements.append(toHTMLObjectElement(element)); | 119 m_associatedElements.append(toHTMLObjectElement(element)); |
120 continue; | 120 continue; |
121 } | 121 } |
122 | 122 |
123 if (!element->isFormControlElement()) | 123 if (!element->isFormControlElement()) |
124 continue; | 124 continue; |
125 | 125 |
126 m_associatedElements.append(toHTMLFormControlElement(element)); | 126 m_associatedElements.append(toHTMLFormControlElement(element)); |
127 } | 127 } |
128 } | 128 } |
129 | 129 |
130 const Vector<FormAssociatedElement*>& HTMLFieldSetElement::associatedElements()
const | 130 const Vector<FormAssociatedElement*>& HTMLFieldSetElement::associatedElements()
const |
131 { | 131 { |
132 refreshElementsIfNeeded(); | 132 refreshElementsIfNeeded(); |
133 return m_associatedElements; | 133 return m_associatedElements; |
134 } | 134 } |
135 | 135 |
136 unsigned HTMLFieldSetElement::length() const | 136 unsigned HTMLFieldSetElement::length() const |
137 { | 137 { |
138 refreshElementsIfNeeded(); | 138 refreshElementsIfNeeded(); |
139 unsigned len = 0; | 139 unsigned len = 0; |
140 for (unsigned i = 0; i < m_associatedElements.size(); ++i) | 140 for (unsigned i = 0; i < m_associatedElements.size(); ++i) |
141 if (m_associatedElements[i]->isEnumeratable()) | 141 if (m_associatedElements[i]->isEnumeratable()) |
142 ++len; | 142 ++len; |
143 return len; | 143 return len; |
144 } | 144 } |
145 | 145 |
146 } // namespace | 146 } // namespace |
OLD | NEW |