2020-08-01 03:04:26 +01:00
|
|
|
/*
|
2021-04-28 22:46:44 +02:00
|
|
|
* Copyright (c) 2020, the SerenityOS developers.
|
2020-08-01 03:04:26 +01:00
|
|
|
*
|
2021-04-22 01:24:48 -07:00
|
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
2020-08-01 03:04:26 +01:00
|
|
|
*/
|
|
|
|
|
|
|
|
#include <LibWeb/HTML/HTMLButtonElement.h>
|
|
|
|
|
|
|
|
namespace Web::HTML {
|
|
|
|
|
2022-02-18 21:00:52 +01:00
|
|
|
HTMLButtonElement::HTMLButtonElement(DOM::Document& document, DOM::QualifiedName qualified_name)
|
2021-10-14 16:18:49 +01:00
|
|
|
: FormAssociatedElement(document, move(qualified_name))
|
2020-08-01 03:04:26 +01:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
HTMLButtonElement::~HTMLButtonElement()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2022-03-01 21:06:29 +00: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-08-01 03:04:26 +01:00
|
|
|
}
|