GlobalEventHandlers.h 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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(onfocusin, HTML::EventNames::focusin) \
  35. E(onfocusout, HTML::EventNames::focusout) \
  36. E(onformdata, HTML::EventNames::formdata) \
  37. E(oninput, HTML::EventNames::input) \
  38. E(oninvalid, HTML::EventNames::invalid) \
  39. E(onkeydown, UIEvents::EventNames::keydown) \
  40. E(onkeypress, UIEvents::EventNames::keypress) \
  41. E(onkeyup, UIEvents::EventNames::keyup) \
  42. E(onload, HTML::EventNames::load) \
  43. E(onloadeddata, HTML::EventNames::loadeddata) \
  44. E(onloadedmetadata, HTML::EventNames::loadedmetadata) \
  45. E(onloadstart, HTML::EventNames::loadstart) \
  46. E(onmousedown, UIEvents::EventNames::mousedown) \
  47. E(onmouseenter, UIEvents::EventNames::mouseenter) \
  48. E(onmouseleave, UIEvents::EventNames::mouseleave) \
  49. E(onmousemove, UIEvents::EventNames::mousemove) \
  50. E(onmouseout, UIEvents::EventNames::mouseout) \
  51. E(onmouseover, UIEvents::EventNames::mouseover) \
  52. E(onmouseup, UIEvents::EventNames::mouseup) \
  53. E(onpause, HTML::EventNames::pause) \
  54. E(onplay, HTML::EventNames::play) \
  55. E(onplaying, HTML::EventNames::playing) \
  56. E(onprogress, HTML::EventNames::progress) \
  57. E(onratechange, HTML::EventNames::ratechange) \
  58. E(onreset, HTML::EventNames::reset) \
  59. E(onresize, HTML::EventNames::resize) \
  60. E(onscroll, HTML::EventNames::scroll) \
  61. E(onsecuritypolicyviolation, HTML::EventNames::securitypolicyviolation) \
  62. E(onseeked, HTML::EventNames::seeked) \
  63. E(onseeking, HTML::EventNames::seeking) \
  64. E(onselect, HTML::EventNames::select) \
  65. E(onselectionchange, HTML::EventNames::selectionchange) \
  66. E(onslotchange, HTML::EventNames::slotchange) \
  67. E(onstalled, HTML::EventNames::stalled) \
  68. E(onsubmit, HTML::EventNames::submit) \
  69. E(onsuspend, HTML::EventNames::suspend) \
  70. E(ontimeupdate, HTML::EventNames::timeupdate) \
  71. E(ontoggle, HTML::EventNames::toggle) \
  72. E(onvolumechange, HTML::EventNames::volumechange) \
  73. E(onwaiting, HTML::EventNames::waiting) \
  74. E(onwebkitanimationend, HTML::EventNames::webkitAnimationEnd) \
  75. E(onwebkitanimationiteration, HTML::EventNames::webkitAnimationIteration) \
  76. E(onwebkitanimationstart, HTML::EventNames::webkitAnimationStart) \
  77. E(onwebkittransitionend, HTML::EventNames::webkitTransitionEnd) \
  78. E(onwheel, UIEvents::EventNames::wheel)
  79. namespace Web::HTML {
  80. class GlobalEventHandlers {
  81. public:
  82. virtual ~GlobalEventHandlers();
  83. #undef __ENUMERATE
  84. #define __ENUMERATE(attribute_name, event_name) \
  85. void set_##attribute_name(WebIDL::CallbackType*); \
  86. WebIDL::CallbackType* attribute_name();
  87. ENUMERATE_GLOBAL_EVENT_HANDLERS(__ENUMERATE)
  88. #undef __ENUMERATE
  89. protected:
  90. virtual JS::GCPtr<DOM::EventTarget> global_event_handlers_to_event_target(FlyString const& event_name) = 0;
  91. };
  92. }