Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(121)

Side by Side Diff: Source/WebCore/html/HTMLFieldSetElement.cpp

Issue 10542040: Merge 118725 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1132/
Patch Set: Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/WebCore/html/HTMLFieldSetElement.h ('k') | Source/WebCore/html/HTMLFormControlElement.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 27 matching lines...) Expand all
38 : HTMLFormControlElement(tagName, document, form) 38 : HTMLFormControlElement(tagName, document, form)
39 { 39 {
40 ASSERT(hasTagName(fieldsetTag)); 40 ASSERT(hasTagName(fieldsetTag));
41 } 41 }
42 42
43 PassRefPtr<HTMLFieldSetElement> HTMLFieldSetElement::create(const QualifiedName& tagName, Document* document, HTMLFormElement* form) 43 PassRefPtr<HTMLFieldSetElement> HTMLFieldSetElement::create(const QualifiedName& tagName, Document* document, HTMLFormElement* form)
44 { 44 {
45 return adoptRef(new HTMLFieldSetElement(tagName, document, form)); 45 return adoptRef(new HTMLFieldSetElement(tagName, document, form));
46 } 46 }
47 47
48 void HTMLFieldSetElement::invalidateDisabledStateUnder(Element* base)
49 {
50 for (Node* currentNode = base->traverseNextNode(base); currentNode; currentN ode = currentNode->traverseNextNode(base)) {
51 if (currentNode && currentNode->isElementNode() && toElement(currentNode )->isFormControlElement())
52 static_cast<HTMLFormControlElement*>(currentNode)->ancestorDisabledS tateWasChanged();
53 }
54 }
55
48 void HTMLFieldSetElement::disabledAttributeChanged() 56 void HTMLFieldSetElement::disabledAttributeChanged()
49 { 57 {
50 // This element must be updated before the style of nodes in its subtree get s recalculated. 58 // This element must be updated before the style of nodes in its subtree get s recalculated.
51 HTMLFormControlElement::disabledAttributeChanged(); 59 HTMLFormControlElement::disabledAttributeChanged();
60 invalidateDisabledStateUnder(this);
61 }
52 62
53 for (Node* currentNode = this->traverseNextNode(this); currentNode; currentN ode = currentNode->traverseNextNode(this)) { 63 void HTMLFieldSetElement::childrenChanged(bool changedByParser, Node* beforeChan ge, Node* afterChange, int childCountDelta)
54 if (currentNode && currentNode->isElementNode() && toElement(currentNode )->isFormControlElement()) 64 {
55 static_cast<HTMLFormControlElement*>(currentNode)->ancestorDisabledS tateWasChanged(); 65 HTMLFormControlElement::childrenChanged(changedByParser, beforeChange, after Change, childCountDelta);
66 for (Element* element = firstElementChild(); element; element = element->nex tElementSibling()) {
67 if (element->hasTagName(legendTag))
68 invalidateDisabledStateUnder(element);
56 } 69 }
57 } 70 }
58 71
59 bool HTMLFieldSetElement::supportsFocus() const 72 bool HTMLFieldSetElement::supportsFocus() const
60 { 73 {
61 return HTMLElement::supportsFocus(); 74 return HTMLElement::supportsFocus();
62 } 75 }
63 76
64 const AtomicString& HTMLFieldSetElement::formControlType() const 77 const AtomicString& HTMLFieldSetElement::formControlType() const
65 { 78 {
66 DEFINE_STATIC_LOCAL(const AtomicString, fieldset, ("fieldset")); 79 DEFINE_STATIC_LOCAL(const AtomicString, fieldset, ("fieldset"));
67 return fieldset; 80 return fieldset;
68 } 81 }
69 82
70 RenderObject* HTMLFieldSetElement::createRenderer(RenderArena* arena, RenderStyl e*) 83 RenderObject* HTMLFieldSetElement::createRenderer(RenderArena* arena, RenderStyl e*)
71 { 84 {
72 return new (arena) RenderFieldset(this); 85 return new (arena) RenderFieldset(this);
73 } 86 }
74 87
75 HTMLLegendElement* HTMLFieldSetElement::legend() const 88 HTMLLegendElement* HTMLFieldSetElement::legend() const
76 { 89 {
77 for (Element* node = firstElementChild(); node; node = node->nextElementSibl ing()) { 90 for (Element* node = firstElementChild(); node; node = node->nextElementSibl ing()) {
78 if (node->hasTagName(legendTag)) 91 if (node->hasTagName(legendTag))
79 return static_cast<HTMLLegendElement*>(node); 92 return static_cast<HTMLLegendElement*>(node);
80 } 93 }
81 return 0; 94 return 0;
82 } 95 }
83 96
84 } // namespace 97 } // namespace
OLDNEW
« no previous file with comments | « Source/WebCore/html/HTMLFieldSetElement.h ('k') | Source/WebCore/html/HTMLFormControlElement.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698