LadybirdWebView.h 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /*
  2. * Copyright (c) 2023-2024, Tim Flynn <trflynn89@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/Forward.h>
  8. #include <LibGfx/Forward.h>
  9. #include <LibURL/Forward.h>
  10. #include <LibWeb/CSS/PreferredColorScheme.h>
  11. #include <LibWeb/CSS/PreferredContrast.h>
  12. #include <LibWeb/CSS/PreferredMotion.h>
  13. #include <LibWeb/HTML/ActivateTab.h>
  14. #include <LibWeb/HTML/AudioPlayState.h>
  15. #include <LibWebView/Forward.h>
  16. #import <Cocoa/Cocoa.h>
  17. @protocol LadybirdWebViewObserver <NSObject>
  18. - (String const&)onCreateNewTab:(Optional<URL::URL> const&)url
  19. activateTab:(Web::HTML::ActivateTab)activate_tab;
  20. - (String const&)onCreateNewTab:(StringView)html
  21. url:(URL::URL const&)url
  22. activateTab:(Web::HTML::ActivateTab)activate_tab;
  23. - (String const&)onCreateChildTab:(Optional<URL::URL> const&)url
  24. activateTab:(Web::HTML::ActivateTab)activate_tab
  25. pageIndex:(u64)page_index;
  26. - (void)loadURL:(URL::URL const&)url;
  27. - (void)onLoadStart:(URL::URL const&)url isRedirect:(BOOL)is_redirect;
  28. - (void)onLoadFinish:(URL::URL const&)url;
  29. - (void)onURLChange:(URL::URL const&)url;
  30. - (void)onBackNavigationEnabled:(BOOL)back_enabled
  31. forwardNavigationEnabled:(BOOL)forward_enabled;
  32. - (void)onTitleChange:(ByteString const&)title;
  33. - (void)onFaviconChange:(Gfx::Bitmap const&)bitmap;
  34. - (void)onAudioPlayStateChange:(Web::HTML::AudioPlayState)play_state;
  35. - (void)onFindInPageResult:(size_t)current_match_index
  36. totalMatchCount:(Optional<size_t> const&)total_match_count;
  37. @end
  38. @interface LadybirdWebView : NSView <NSMenuDelegate>
  39. - (instancetype)init:(id<LadybirdWebViewObserver>)observer;
  40. - (instancetype)initAsChild:(id<LadybirdWebViewObserver>)observer
  41. parent:(LadybirdWebView*)parent
  42. pageIndex:(u64)page_index;
  43. - (void)loadURL:(URL::URL const&)url;
  44. - (void)loadHTML:(StringView)html;
  45. - (void)navigateBack;
  46. - (void)navigateForward;
  47. - (void)reload;
  48. - (WebView::ViewImplementation&)view;
  49. - (String const&)handle;
  50. - (void)setWindowPosition:(Gfx::IntPoint)position;
  51. - (void)setWindowSize:(Gfx::IntSize)size;
  52. - (void)handleResize;
  53. - (void)handleDevicePixelRatioChange;
  54. - (void)handleVisibility:(BOOL)is_visible;
  55. - (void)setPreferredColorScheme:(Web::CSS::PreferredColorScheme)color_scheme;
  56. - (void)setPreferredContrast:(Web::CSS::PreferredContrast)contrast;
  57. - (void)setPreferredMotion:(Web::CSS::PreferredMotion)motion;
  58. - (void)findInPage:(NSString*)query
  59. caseSensitivity:(CaseSensitivity)case_sensitivity;
  60. - (void)findInPageNextMatch;
  61. - (void)findInPagePreviousMatch;
  62. - (void)zoomIn;
  63. - (void)zoomOut;
  64. - (void)resetZoom;
  65. - (float)zoomLevel;
  66. - (void)debugRequest:(ByteString const&)request argument:(ByteString const&)argument;
  67. - (void)setEnableAutoplay:(BOOL)enabled;
  68. - (void)viewSource;
  69. @end