HTMLLegendElement.cpp [plain text]
#include "config.h"
#include "HTMLLegendElement.h"
#include "HTMLNames.h"
#include "RenderLegend.h"
namespace WebCore {
using namespace HTMLNames;
HTMLLegendElement::HTMLLegendElement(Document *doc, HTMLFormElement *f)
: HTMLGenericFormElement(legendTag, doc, f)
{
}
HTMLLegendElement::~HTMLLegendElement()
{
}
bool HTMLLegendElement::isFocusable() const
{
return false;
}
RenderObject* HTMLLegendElement::createRenderer(RenderArena* arena, RenderStyle* style)
{
if (style->contentData())
return RenderObject::createObject(this, style);
return new (arena) RenderLegend(this);
}
const AtomicString& HTMLLegendElement::type() const
{
static const AtomicString legend("legend");
return legend;
}
String HTMLLegendElement::accessKey() const
{
return getAttribute(accesskeyAttr);
}
void HTMLLegendElement::setAccessKey(const String &value)
{
setAttribute(accesskeyAttr, value);
}
String HTMLLegendElement::align() const
{
return getAttribute(alignAttr);
}
void HTMLLegendElement::setAlign(const String &value)
{
setAttribute(alignAttr, value);
}
Element *HTMLLegendElement::formElement()
{
Node *fieldset = parentNode();
while (fieldset && !fieldset->hasTagName(fieldsetTag))
fieldset = fieldset->parentNode();
if (!fieldset)
return 0;
Node *node = fieldset;
while ((node = node->traverseNextNode(fieldset))) {
if (node->isHTMLElement()) {
HTMLElement *element = static_cast<HTMLElement *>(node);
if (!element->hasLocalName(legendTag) && element->isGenericFormElement())
return element;
}
}
return 0;
}
void HTMLLegendElement::focus(bool)
{
if (Element *element = formElement())
element->focus(false);
}
void HTMLLegendElement::accessKeyAction(bool sendToAnyElement)
{
if (Element *element = formElement())
element->accessKeyAction(sendToAnyElement);
}
}