HTMLFieldSetElement.h [plain text]
#pragma once
#include "HTMLFormControlElement.h"
#include <wtf/HashSet.h>
namespace WebCore {
class FormAssociatedElement;
class HTMLFormControlsCollection;
class HTMLFieldSetElement final : public HTMLFormControlElement {
public:
static Ref<HTMLFieldSetElement> create(const QualifiedName&, Document&, HTMLFormElement*);
HTMLLegendElement* legend() const;
Ref<HTMLFormControlsCollection> elements();
Ref<HTMLCollection> elementsForNativeBindings();
const Vector<FormAssociatedElement*>& associatedElements() const;
unsigned length() const;
void addInvalidDescendant(const HTMLFormControlElement&);
void removeInvalidDescendant(const HTMLFormControlElement&);
private:
HTMLFieldSetElement(const QualifiedName&, Document&, HTMLFormElement*);
~HTMLFieldSetElement();
bool isEnumeratable() const final { return true; }
bool supportsFocus() const final;
RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) final;
const AtomicString& formControlType() const final;
bool computeWillValidate() const final { return false; }
void disabledAttributeChanged() final;
void disabledStateChanged() final;
void childrenChanged(const ChildChange&) final;
void didMoveToNewDocument(Document& oldDocument, Document& newDocument) final;
bool matchesValidPseudoClass() const final;
bool matchesInvalidPseudoClass() const final;
void updateAssociatedElements() const;
mutable Vector<FormAssociatedElement*> m_associatedElements;
mutable uint64_t m_documentVersion { 0 };
HashSet<const HTMLFormControlElement*> m_invalidDescendants;
bool m_hasDisabledAttribute { false };
};
}