Page.cpp 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /*
  2. * Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <LibWeb/Page/BrowsingContext.h>
  7. #include <LibWeb/Page/Page.h>
  8. namespace Web {
  9. Page::Page(PageClient& client)
  10. : m_client(client)
  11. {
  12. m_top_level_browsing_context = BrowsingContext::create(*this);
  13. }
  14. Page::~Page()
  15. {
  16. }
  17. BrowsingContext& Page::focused_context()
  18. {
  19. if (m_focused_context)
  20. return *m_focused_context;
  21. return top_level_browsing_context();
  22. }
  23. void Page::set_focused_browsing_context(Badge<EventHandler>, BrowsingContext& browsing_context)
  24. {
  25. m_focused_context = browsing_context.make_weak_ptr();
  26. }
  27. void Page::load(const URL& url)
  28. {
  29. top_level_browsing_context().loader().load(url, FrameLoader::Type::Navigation);
  30. }
  31. void Page::load(LoadRequest& request)
  32. {
  33. top_level_browsing_context().loader().load(request, FrameLoader::Type::Navigation);
  34. }
  35. void Page::load_html(const StringView& html, const URL& url)
  36. {
  37. top_level_browsing_context().loader().load_html(html, url);
  38. }
  39. Gfx::Palette Page::palette() const
  40. {
  41. return m_client.palette();
  42. }
  43. Gfx::IntRect Page::screen_rect() const
  44. {
  45. return m_client.screen_rect();
  46. }
  47. bool Page::handle_mousewheel(const Gfx::IntPoint& position, unsigned button, unsigned modifiers, int wheel_delta)
  48. {
  49. return top_level_browsing_context().event_handler().handle_mousewheel(position, button, modifiers, wheel_delta);
  50. }
  51. bool Page::handle_mouseup(const Gfx::IntPoint& position, unsigned button, unsigned modifiers)
  52. {
  53. return top_level_browsing_context().event_handler().handle_mouseup(position, button, modifiers);
  54. }
  55. bool Page::handle_mousedown(const Gfx::IntPoint& position, unsigned button, unsigned modifiers)
  56. {
  57. return top_level_browsing_context().event_handler().handle_mousedown(position, button, modifiers);
  58. }
  59. bool Page::handle_mousemove(const Gfx::IntPoint& position, unsigned buttons, unsigned modifiers)
  60. {
  61. return top_level_browsing_context().event_handler().handle_mousemove(position, buttons, modifiers);
  62. }
  63. bool Page::handle_keydown(KeyCode key, unsigned modifiers, u32 code_point)
  64. {
  65. return focused_context().event_handler().handle_keydown(key, modifiers, code_point);
  66. }
  67. }