GlobalEventHandlers.h 5.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. /*
  2. * Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/Forward.h>
  8. #include <LibWeb/Forward.h>
  9. #define ENUMERATE_GLOBAL_EVENT_HANDLERS(E) \
  10. E(onabort, HTML::EventNames::abort) \
  11. E(onauxclick, UIEvents::EventNames::auxclick) \
  12. E(onblur, HTML::EventNames::blur) \
  13. E(oncancel, HTML::EventNames::cancel) \
  14. E(oncanplay, HTML::EventNames::canplay) \
  15. E(oncanplaythrough, HTML::EventNames::canplaythrough) \
  16. E(onchange, HTML::EventNames::change) \
  17. E(onclick, UIEvents::EventNames::click) \
  18. E(onclose, HTML::EventNames::close) \
  19. E(oncontextmenu, HTML::EventNames::contextmenu) \
  20. E(oncuechange, HTML::EventNames::cuechange) \
  21. E(ondblclick, UIEvents::EventNames::dblclick) \
  22. E(ondrag, HTML::EventNames::drag) \
  23. E(ondragend, HTML::EventNames::dragend) \
  24. E(ondragenter, HTML::EventNames::dragenter) \
  25. E(ondragleave, HTML::EventNames::dragleave) \
  26. E(ondragover, HTML::EventNames::dragover) \
  27. E(ondragstart, HTML::EventNames::dragstart) \
  28. E(ondrop, HTML::EventNames::drop) \
  29. E(ondurationchange, HTML::EventNames::durationchange) \
  30. E(onemptied, HTML::EventNames::emptied) \
  31. E(onended, HTML::EventNames::ended) \
  32. E(onerror, HTML::EventNames::error) \
  33. E(onfocus, HTML::EventNames::focus) \
  34. E(onformdata, HTML::EventNames::formdata) \
  35. E(oninput, HTML::EventNames::input) \
  36. E(oninvalid, HTML::EventNames::invalid) \
  37. E(onkeydown, UIEvents::EventNames::keydown) \
  38. E(onkeypress, UIEvents::EventNames::keypress) \
  39. E(onkeyup, UIEvents::EventNames::keyup) \
  40. E(onload, HTML::EventNames::load) \
  41. E(onloadeddata, HTML::EventNames::loadeddata) \
  42. E(onloadedmetadata, HTML::EventNames::loadedmetadata) \
  43. E(onloadstart, HTML::EventNames::loadstart) \
  44. E(onmousedown, UIEvents::EventNames::mousedown) \
  45. E(onmouseenter, UIEvents::EventNames::mouseenter) \
  46. E(onmouseleave, UIEvents::EventNames::mouseleave) \
  47. E(onmousemove, UIEvents::EventNames::mousemove) \
  48. E(onmouseout, UIEvents::EventNames::mouseout) \
  49. E(onmouseover, UIEvents::EventNames::mouseover) \
  50. E(onmouseup, UIEvents::EventNames::mouseup) \
  51. E(onpause, HTML::EventNames::pause) \
  52. E(onplay, HTML::EventNames::play) \
  53. E(onplaying, HTML::EventNames::playing) \
  54. E(onprogress, HTML::EventNames::progress) \
  55. E(onratechange, HTML::EventNames::ratechange) \
  56. E(onreset, HTML::EventNames::reset) \
  57. E(onresize, HTML::EventNames::resize) \
  58. E(onscroll, HTML::EventNames::scroll) \
  59. E(onsecuritypolicyviolation, HTML::EventNames::securitypolicyviolation) \
  60. E(onseeked, HTML::EventNames::seeked) \
  61. E(onseeking, HTML::EventNames::seeking) \
  62. E(onselect, HTML::EventNames::select) \
  63. E(onslotchange, HTML::EventNames::slotchange) \
  64. E(onstalled, HTML::EventNames::stalled) \
  65. E(onsubmit, HTML::EventNames::submit) \
  66. E(onsuspend, HTML::EventNames::suspend) \
  67. E(ontimeupdate, HTML::EventNames::timeupdate) \
  68. E(ontoggle, HTML::EventNames::toggle) \
  69. E(onvolumechange, HTML::EventNames::volumechange) \
  70. E(onwaiting, HTML::EventNames::waiting) \
  71. E(onwebkitanimationend, HTML::EventNames::webkitAnimationEnd) \
  72. E(onwebkitanimationiteration, HTML::EventNames::webkitAnimationIteration) \
  73. E(onwebkitanimationstart, HTML::EventNames::webkitAnimationStart) \
  74. E(onwebkittransitionend, HTML::EventNames::webkitTransitionEnd) \
  75. E(onwheel, UIEvents::EventNames::wheel)
  76. namespace Web::HTML {
  77. class GlobalEventHandlers {
  78. public:
  79. virtual ~GlobalEventHandlers();
  80. #undef __ENUMERATE
  81. #define __ENUMERATE(attribute_name, event_name) \
  82. void set_##attribute_name(WebIDL::CallbackType*); \
  83. WebIDL::CallbackType* attribute_name();
  84. ENUMERATE_GLOBAL_EVENT_HANDLERS(__ENUMERATE)
  85. #undef __ENUMERATE
  86. protected:
  87. virtual DOM::EventTarget& global_event_handlers_to_event_target(FlyString const& event_name) = 0;
  88. };
  89. }