2020-07-31 23:04:26 -03:00
|
|
|
/*
|
2021-04-28 17:46:44 -03:00
|
|
|
* Copyright (c) 2020, the SerenityOS developers.
|
2020-07-31 23:04:26 -03:00
|
|
|
*
|
2021-04-22 05:24:48 -03:00
|
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
2020-07-31 23:04:26 -03:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include <LibWeb/HTML/HTMLButtonElement.h>
|
|
|
|
|
|
|
|
|
|
namespace Web::HTML {
|
|
|
|
|
|
2022-02-18 17:00:52 -03:00
|
|
|
HTMLButtonElement::HTMLButtonElement(DOM::Document& document, DOM::QualifiedName qualified_name)
|
2021-10-14 12:18:49 -03:00
|
|
|
: FormAssociatedElement(document, move(qualified_name))
|
2020-07-31 23:04:26 -03:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HTMLButtonElement::~HTMLButtonElement()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2022-03-01 18:06:29 -03:00
|
|
|
String HTMLButtonElement::type() const
|
|
|
|
|
{
|
|
|
|
|
auto value = attribute(HTML::AttributeNames::type);
|
|
|
|
|
|
|
|
|
|
#define __ENUMERATE_HTML_BUTTON_TYPE_ATTRIBUTE(keyword, _) \
|
|
|
|
|
if (value.equals_ignoring_case(#keyword)) \
|
|
|
|
|
return #keyword;
|
|
|
|
|
ENUMERATE_HTML_BUTTON_TYPE_ATTRIBUTES
|
|
|
|
|
#undef __ENUMERATE_HTML_BUTTON_TYPE_ATTRIBUTE
|
|
|
|
|
|
|
|
|
|
// The missing value default and invalid value default are the Submit Button state.
|
|
|
|
|
return "submit";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HTMLButtonElement::TypeAttributeState HTMLButtonElement::type_state() const
|
|
|
|
|
{
|
|
|
|
|
auto value = attribute(HTML::AttributeNames::type);
|
|
|
|
|
|
|
|
|
|
#define __ENUMERATE_HTML_BUTTON_TYPE_ATTRIBUTE(keyword, state) \
|
|
|
|
|
if (value.equals_ignoring_case(#keyword)) \
|
|
|
|
|
return HTMLButtonElement::TypeAttributeState::state;
|
|
|
|
|
ENUMERATE_HTML_BUTTON_TYPE_ATTRIBUTES
|
|
|
|
|
#undef __ENUMERATE_HTML_BUTTON_TYPE_ATTRIBUTE
|
|
|
|
|
|
|
|
|
|
// The missing value default and invalid value default are the Submit Button state.
|
|
|
|
|
return HTMLButtonElement::TypeAttributeState::Submit;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void HTMLButtonElement::set_type(String const& type)
|
|
|
|
|
{
|
|
|
|
|
set_attribute(HTML::AttributeNames::type, type);
|
|
|
|
|
}
|
|
|
|
|
|
2020-07-31 23:04:26 -03:00
|
|
|
}
|