GlobalEventHandlers.cpp 1.3 KB

12345678910111213141516171819202122232425262728293031
  1. /*
  2. * Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <LibWeb/DOM/EventTarget.h>
  7. #include <LibWeb/HTML/EventNames.h>
  8. #include <LibWeb/HTML/GlobalEventHandlers.h>
  9. #include <LibWeb/UIEvents/EventNames.h>
  10. namespace Web::HTML {
  11. #undef __ENUMERATE
  12. #define __ENUMERATE(attribute_name, event_name) \
  13. void GlobalEventHandlers::set_##attribute_name(WebIDL::CallbackType* value) \
  14. { \
  15. if (auto event_target = global_event_handlers_to_event_target(event_name)) \
  16. event_target->set_event_handler_attribute(event_name, value); \
  17. } \
  18. WebIDL::CallbackType* GlobalEventHandlers::attribute_name() \
  19. { \
  20. if (auto event_target = global_event_handlers_to_event_target(event_name)) \
  21. return event_target->event_handler_attribute(event_name); \
  22. return nullptr; \
  23. }
  24. ENUMERATE_GLOBAL_EVENT_HANDLERS(__ENUMERATE)
  25. #undef __ENUMERATE
  26. GlobalEventHandlers::~GlobalEventHandlers() = default;
  27. }