From 81e0ce66da0e8411d8ae88e846ce7386f58e604d Mon Sep 17 00:00:00 2001 From: "huayong.xu" Date: Tue, 10 Oct 2023 20:21:00 +0800 Subject: [PATCH] [Tizen] Add WebView APIs for fullscreen, text found, etc. Change-Id: I94e98d022ce75e76e6c883a03fd0b31cd4086ec9 --- .../devel-api/controls/web-view/web-view.cpp | 25 ++++++++++++++ .../devel-api/controls/web-view/web-view.h | 33 ++++++++++++++++++ .../internal/controls/web-view/web-view-impl.cpp | 40 ++++++++++++++++++++++ .../internal/controls/web-view/web-view-impl.h | 25 ++++++++++++++ 4 files changed, 123 insertions(+) diff --git a/dali-toolkit/devel-api/controls/web-view/web-view.cpp b/dali-toolkit/devel-api/controls/web-view/web-view.cpp index 63d9cca..3b0f3b6 100755 --- a/dali-toolkit/devel-api/controls/web-view/web-view.cpp +++ b/dali-toolkit/devel-api/controls/web-view/web-view.cpp @@ -264,6 +264,11 @@ bool WebView::CreateHitTestAsynchronously(int32_t x, int32_t y, Dali::WebEngineH return Dali::Toolkit::GetImpl(*this).CreateHitTestAsynchronously(x, y, mode, callback); } +void WebView::ExitFullscreen() +{ + Dali::Toolkit::GetImpl(*this).ExitFullscreen(); +} + void WebView::ClearHistory() { Dali::Toolkit::GetImpl(*this).ClearHistory(); @@ -379,6 +384,11 @@ void WebView::RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::Web Dali::Toolkit::GetImpl(*this).RegisterNavigationPolicyDecidedCallback(callback); } +void WebView::RegisterNewWindowPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNewWindowPolicyDecidedCallback callback) +{ + Dali::Toolkit::GetImpl(*this).RegisterNewWindowPolicyDecidedCallback(callback); +} + void WebView::RegisterNewWindowCreatedCallback(Dali::WebEnginePlugin::WebEngineNewWindowCreatedCallback callback) { Dali::Toolkit::GetImpl(*this).RegisterNewWindowCreatedCallback(callback); @@ -409,6 +419,21 @@ void WebView::RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngine Dali::Toolkit::GetImpl(*this).RegisterContextMenuHiddenCallback(callback); } +void WebView::RegisterFullscreenEnteredCallback(Dali::WebEnginePlugin::WebEngineFullscreenEnteredCallback callback) +{ + Dali::Toolkit::GetImpl(*this).RegisterFullscreenEnteredCallback(callback); +} + +void WebView::RegisterFullscreenExitedCallback(Dali::WebEnginePlugin::WebEngineFullscreenExitedCallback callback) +{ + Dali::Toolkit::GetImpl(*this).RegisterFullscreenExitedCallback(callback); +} + +void WebView::RegisterTextFoundCallback(Dali::WebEnginePlugin::WebEngineTextFoundCallback callback) +{ + Dali::Toolkit::GetImpl(*this).RegisterTextFoundCallback(callback); +} + void WebView::GetPlainTextAsynchronously(Dali::WebEnginePlugin::PlainTextReceivedCallback callback) { Dali::Toolkit::GetImpl(*this).GetPlainTextAsynchronously(callback); diff --git a/dali-toolkit/devel-api/controls/web-view/web-view.h b/dali-toolkit/devel-api/controls/web-view/web-view.h index 0ee8af7..42b78bc 100755 --- a/dali-toolkit/devel-api/controls/web-view/web-view.h +++ b/dali-toolkit/devel-api/controls/web-view/web-view.h @@ -543,6 +543,11 @@ public: bool CreateHitTestAsynchronously(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode, Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback callback); /** + * @brief Exit fullscreen. + */ + void ExitFullscreen(); + + /** * @brief Clear the history of Web. */ void ClearHistory(); @@ -710,6 +715,13 @@ public: void RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback); /** + * @brief Callback to be called when new window policy would be decided. + * + * @param[in] callback + */ + void RegisterNewWindowPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNewWindowPolicyDecidedCallback callback); + + /** * @brief Callback to be called when a new window would be created. * * @param[in] callback @@ -752,6 +764,27 @@ public: void RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback callback); /** + * @brief Callback to be called when fullscreen would be entered. + * + * @param[in] callback + */ + void RegisterFullscreenEnteredCallback(Dali::WebEnginePlugin::WebEngineFullscreenEnteredCallback callback); + + /** + * @brief Callback to be called when fullscreen would be exited. + * + * @param[in] callback + */ + void RegisterFullscreenExitedCallback(Dali::WebEnginePlugin::WebEngineFullscreenExitedCallback callback); + + /** + * @brief Callback to be called when text would be found. + * + * @param[in] callback + */ + void RegisterTextFoundCallback(Dali::WebEnginePlugin::WebEngineTextFoundCallback callback); + + /** * @brief Get a plain text of current web page asynchronously. * * @param[in] callback The callback function called asynchronously. diff --git a/dali-toolkit/internal/controls/web-view/web-view-impl.cpp b/dali-toolkit/internal/controls/web-view/web-view-impl.cpp index 237df2e..c7e8748 100755 --- a/dali-toolkit/internal/controls/web-view/web-view-impl.cpp +++ b/dali-toolkit/internal/controls/web-view/web-view-impl.cpp @@ -569,6 +569,14 @@ bool WebView::CheckVideoPlayingAsynchronously(Dali::WebEnginePlugin::VideoPlayin return mWebEngine ? mWebEngine.CheckVideoPlayingAsynchronously(callback) : false; } +void WebView::ExitFullscreen() +{ + if(mWebEngine) + { + mWebEngine.ExitFullscreen(); + } +} + void WebView::RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::GeolocationPermissionCallback callback) { if(mWebEngine) @@ -705,6 +713,14 @@ void WebView::RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::Web } } +void WebView::RegisterNewWindowPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNewWindowPolicyDecidedCallback callback) +{ + if(mWebEngine) + { + mWebEngine.RegisterNewWindowPolicyDecidedCallback(callback); + } +} + void WebView::RegisterNewWindowCreatedCallback(Dali::WebEnginePlugin::WebEngineNewWindowCreatedCallback callback) { if(mWebEngine) @@ -753,6 +769,30 @@ void WebView::RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngine } } +void WebView::RegisterFullscreenEnteredCallback(Dali::WebEnginePlugin::WebEngineFullscreenEnteredCallback callback) +{ + if(mWebEngine) + { + mWebEngine.RegisterFullscreenEnteredCallback(callback); + } +} + +void WebView::RegisterFullscreenExitedCallback(Dali::WebEnginePlugin::WebEngineFullscreenExitedCallback callback) +{ + if(mWebEngine) + { + mWebEngine.RegisterFullscreenExitedCallback(callback); + } +} + +void WebView::RegisterTextFoundCallback(Dali::WebEnginePlugin::WebEngineTextFoundCallback callback) +{ + if(mWebEngine) + { + mWebEngine.RegisterTextFoundCallback(callback); + } +} + void WebView::GetPlainTextAsynchronously(Dali::WebEnginePlugin::PlainTextReceivedCallback callback) { if(mWebEngine) diff --git a/dali-toolkit/internal/controls/web-view/web-view-impl.h b/dali-toolkit/internal/controls/web-view/web-view-impl.h index 9350996..646a047 100755 --- a/dali-toolkit/internal/controls/web-view/web-view-impl.h +++ b/dali-toolkit/internal/controls/web-view/web-view-impl.h @@ -314,6 +314,11 @@ public: bool CheckVideoPlayingAsynchronously(Dali::WebEnginePlugin::VideoPlayingCallback callback); /** + * @copydoc Dali::Toolkit::WebView::ExitFullscreen() + */ + void ExitFullscreen(); + + /** * @copydoc Dali::Toolkit::WebView::RegisterGeolocationPermissionCallback() */ void RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::GeolocationPermissionCallback callback); @@ -379,6 +384,11 @@ public: void RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback); /** + * @copydoc Dali::Toolkit::WebView::RegisterNewWindowPolicyDecidedCallback() + */ + void RegisterNewWindowPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNewWindowPolicyDecidedCallback callback); + + /** * @copydoc Dali::Toolkit::WebView::RegisterNewWindowCreatedCallback() */ void RegisterNewWindowCreatedCallback(Dali::WebEnginePlugin::WebEngineNewWindowCreatedCallback callback); @@ -409,6 +419,21 @@ public: void RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback callback); /** + * @copydoc Dali::Toolkit::WebView::RegisterFullscreenEnteredCallback() + */ + void RegisterFullscreenEnteredCallback(Dali::WebEnginePlugin::WebEngineFullscreenEnteredCallback callback); + + /** + * @copydoc Dali::Toolkit::WebView::RegisterFullscreenExitedCallback() + */ + void RegisterFullscreenExitedCallback(Dali::WebEnginePlugin::WebEngineFullscreenExitedCallback callback); + + /** + * @copydoc Dali::Toolkit::WebView::RegisterTextFoundCallback() + */ + void RegisterTextFoundCallback(Dali::WebEnginePlugin::WebEngineTextFoundCallback callback); + + /** * @copydoc Dali::Toolkit::WebView::GetPlainTextAsynchronously() */ void GetPlainTextAsynchronously(Dali::WebEnginePlugin::PlainTextReceivedCallback callback); -- 2.7.4