diff --git a/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.cpp b/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.cpp index fcd03c2112..4d7fd01e3b 100644 --- a/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.cpp +++ b/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.cpp @@ -10,74 +10,17 @@ namespace Web::XHR { -HTML::EventHandler XMLHttpRequestEventTarget::onabort() -{ - return event_handler_attribute(Web::XHR::EventNames::abort); -} - -void XMLHttpRequestEventTarget::set_onabort(HTML::EventHandler value) -{ - set_event_handler_attribute(Web::XHR::EventNames::abort, move(value)); -} - -HTML::EventHandler XMLHttpRequestEventTarget::onloadstart() -{ - return event_handler_attribute(Web::XHR::EventNames::loadstart); -} - -void XMLHttpRequestEventTarget::set_onloadstart(HTML::EventHandler value) -{ - set_event_handler_attribute(Web::XHR::EventNames::loadstart, move(value)); -} - -HTML::EventHandler XMLHttpRequestEventTarget::onloadend() -{ - return event_handler_attribute(Web::XHR::EventNames::loadend); -} - -void XMLHttpRequestEventTarget::set_onloadend(HTML::EventHandler value) -{ - set_event_handler_attribute(Web::XHR::EventNames::loadend, move(value)); -} - -HTML::EventHandler XMLHttpRequestEventTarget::onprogress() -{ - return event_handler_attribute(Web::XHR::EventNames::progress); -} - -void XMLHttpRequestEventTarget::set_onprogress(HTML::EventHandler value) -{ - set_event_handler_attribute(Web::XHR::EventNames::progress, move(value)); -} - -HTML::EventHandler XMLHttpRequestEventTarget::onerror() -{ - return event_handler_attribute(Web::XHR::EventNames::error); -} - -void XMLHttpRequestEventTarget::set_onerror(HTML::EventHandler value) -{ - set_event_handler_attribute(Web::XHR::EventNames::error, move(value)); -} - -HTML::EventHandler XMLHttpRequestEventTarget::onload() -{ - return event_handler_attribute(Web::XHR::EventNames::load); -} - -void XMLHttpRequestEventTarget::set_onload(HTML::EventHandler value) -{ - set_event_handler_attribute(Web::XHR::EventNames::load, move(value)); -} - -HTML::EventHandler XMLHttpRequestEventTarget::ontimeout() -{ - return event_handler_attribute(Web::XHR::EventNames::timeout); -} - -void XMLHttpRequestEventTarget::set_ontimeout(HTML::EventHandler value) -{ - set_event_handler_attribute(Web::XHR::EventNames::timeout, move(value)); -} +#undef __ENUMERATE +#define __ENUMERATE(attribute_name, event_name) \ + void XMLHttpRequestEventTarget::set_##attribute_name(HTML::EventHandler value) \ + { \ + set_event_handler_attribute(event_name, move(value)); \ + } \ + HTML::EventHandler XMLHttpRequestEventTarget::attribute_name() \ + { \ + return event_handler_attribute(event_name); \ + } +ENUMERATE_XML_HTTP_REQUEST_EVENT_TARGET_EVENT_HANDLERS(__ENUMERATE) +#undef __ENUMERATE } diff --git a/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.h b/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.h index 5e4a063528..043d72b134 100644 --- a/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.h +++ b/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.h @@ -12,6 +12,15 @@ namespace Web::XHR { +#define ENUMERATE_XML_HTTP_REQUEST_EVENT_TARGET_EVENT_HANDLERS(E) \ + E(onloadstart, XHR::EventNames::loadstart) \ + E(onprogress, XHR::EventNames::progress) \ + E(onabort, XHR::EventNames::abort) \ + E(onerror, XHR::EventNames::error) \ + E(onload, XHR::EventNames::load) \ + E(ontimeout, XHR::EventNames::timeout) \ + E(onloadend, XHR::EventNames::loadend) + class XMLHttpRequestEventTarget : public DOM::EventTarget , public Bindings::Wrappable { @@ -20,20 +29,12 @@ public: virtual ~XMLHttpRequestEventTarget() override {}; - HTML::EventHandler onloadstart(); - void set_onloadstart(HTML::EventHandler); - HTML::EventHandler onprogress(); - void set_onprogress(HTML::EventHandler); - HTML::EventHandler onabort(); - void set_onabort(HTML::EventHandler); - HTML::EventHandler onerror(); - void set_onerror(HTML::EventHandler); - HTML::EventHandler onload(); - void set_onload(HTML::EventHandler); - HTML::EventHandler ontimeout(); - void set_ontimeout(HTML::EventHandler); - HTML::EventHandler onloadend(); - void set_onloadend(HTML::EventHandler); +#undef __ENUMERATE +#define __ENUMERATE(attribute_name, event_name) \ + void set_##attribute_name(HTML::EventHandler); \ + HTML::EventHandler attribute_name(); + ENUMERATE_XML_HTTP_REQUEST_EVENT_TARGET_EVENT_HANDLERS(__ENUMERATE) +#undef __ENUMERATE protected: explicit XMLHttpRequestEventTarget(Bindings::ScriptExecutionContext& script_execution_context)