EventWrapperFactory.cpp 1001 B

12345678910111213141516171819202122232425262728
  1. /*
  2. * Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <LibWeb/Bindings/CloseEventWrapper.h>
  7. #include <LibWeb/Bindings/EventWrapper.h>
  8. #include <LibWeb/Bindings/EventWrapperFactory.h>
  9. #include <LibWeb/Bindings/MessageEventWrapper.h>
  10. #include <LibWeb/Bindings/MouseEventWrapper.h>
  11. namespace Web {
  12. namespace Bindings {
  13. EventWrapper* wrap(JS::GlobalObject& global_object, DOM::Event& event)
  14. {
  15. if (is<HTML::MessageEvent>(event))
  16. return static_cast<MessageEventWrapper*>(wrap_impl(global_object, static_cast<HTML::MessageEvent&>(event)));
  17. if (is<HTML::CloseEvent>(event))
  18. return static_cast<CloseEventWrapper*>(wrap_impl(global_object, static_cast<HTML::CloseEvent&>(event)));
  19. if (is<UIEvents::MouseEvent>(event))
  20. return static_cast<MouseEventWrapper*>(wrap_impl(global_object, static_cast<UIEvents::MouseEvent&>(event)));
  21. return static_cast<EventWrapper*>(wrap_impl(global_object, event));
  22. }
  23. }
  24. }