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