RadioButtonGroups.h [plain text]
#pragma once
#include <memory>
#include <wtf/HashMap.h>
#include <wtf/Vector.h>
#include <wtf/text/AtomStringHash.h>
namespace WebCore {
class HTMLInputElement;
class RadioButtonGroup;
class RadioButtonGroups {
WTF_MAKE_FAST_ALLOCATED;
public:
RadioButtonGroups();
~RadioButtonGroups();
void addButton(HTMLInputElement&);
void updateCheckedState(HTMLInputElement&);
void requiredStateChanged(HTMLInputElement&);
void removeButton(HTMLInputElement&);
RefPtr<HTMLInputElement> checkedButtonForGroup(const AtomString& groupName) const;
bool hasCheckedButton(const HTMLInputElement&) const;
bool isInRequiredGroup(HTMLInputElement&) const;
Vector<Ref<HTMLInputElement>> groupMembers(const HTMLInputElement&) const;
private:
typedef HashMap<AtomString, std::unique_ptr<RadioButtonGroup>> NameToGroupMap;
NameToGroupMap m_nameToGroupMap;
};
}