Add OverScrolled in WebView 78/323278/1
authordongsug.song <dongsug.song@samsung.com>
Fri, 25 Apr 2025 05:05:28 +0000 (14:05 +0900)
committerdongsug.song <dongsug.song@samsung.com>
Fri, 25 Apr 2025 05:05:28 +0000 (14:05 +0900)
Change-Id: I1fecabf6339fbf29afef1c8e6051bcb92d61644d

dali-extension/web-engine-chromium/tizen-web-engine-chromium.cpp
dali-extension/web-engine-chromium/tizen-web-engine-chromium.h
dali-extension/web-engine-lwe/tizen-web-engine-lwe.cpp
dali-extension/web-engine-lwe/tizen-web-engine-lwe.h

index 97651f426e3aa9150d60a7badef7154303ba15e5..7c5b010561bd5dc3168b40e52f0add191b721226 100644 (file)
@@ -219,6 +219,10 @@ void TizenWebEngineChromium::InitWebView(bool incognito)
   evas_object_smart_callback_add(mWebView, "edge,right", &TizenWebEngineChromium::OnEdgeRight, this);
   evas_object_smart_callback_add(mWebView, "edge,top", &TizenWebEngineChromium::OnEdgeTop, this);
   evas_object_smart_callback_add(mWebView, "edge,bottom", &TizenWebEngineChromium::OnEdgeBottom, this);
+  evas_object_smart_callback_add(mWebView, "overscrolled,left", &TizenWebEngineChromium::OnOverScrolledLeft, this);
+  evas_object_smart_callback_add(mWebView, "overscrolled,right", &TizenWebEngineChromium::OnOverScrolledRight, this);
+  evas_object_smart_callback_add(mWebView, "overscrolled,top", &TizenWebEngineChromium::OnOverScrolledTop, this);
+  evas_object_smart_callback_add(mWebView, "overscrolled,bottom", &TizenWebEngineChromium::OnOverScrolledBottom, this);
   evas_object_smart_callback_add(mWebView, "form,repost,warning,show", &TizenWebEngineChromium::OnFormRepostDecided, this);
   evas_object_smart_callback_add(mWebView, "policy,response,decide", &TizenWebEngineChromium::OnResponsePolicyDecided, this);
   evas_object_smart_callback_add(mWebView, "policy,navigation,decide", &TizenWebEngineChromium::OnNavigationPolicyDecided, this);
@@ -999,6 +1003,11 @@ void TizenWebEngineChromium::RegisterScrollEdgeReachedCallback(WebEngineScrollEd
   mScrollEdgeReachedCallback = callback;
 }
 
+void TizenWebEngineChromium::RegisterOverScrolledCallback(WebEngineOverScrolledCallback callback)
+{
+  mOverScrolledCallback = callback;
+}
+
 void TizenWebEngineChromium::RegisterUrlChangedCallback(WebEngineUrlChangedCallback callback)
 {
   mUrlChangedCallback = callback;
@@ -1251,6 +1260,34 @@ void TizenWebEngineChromium::OnEdgeBottom(void* data, Evas_Object*, void*)
   ExecuteCallback(pThis->mScrollEdgeReachedCallback, Dali::WebEnginePlugin::ScrollEdge::BOTTOM);
 }
 
+void TizenWebEngineChromium::OnOverScrolledLeft(void* data, Evas_Object*, void*)
+{
+  DALI_LOG_RELEASE_INFO("#OverScrolled : LEFT\n");
+  auto pThis = static_cast<TizenWebEngineChromium*>(data);
+  ExecuteCallback(pThis->mOverScrolledCallback, Dali::WebEnginePlugin::OverScrolled::LEFT);
+}
+
+void TizenWebEngineChromium::OnOverScrolledRight(void* data, Evas_Object*, void*)
+{
+  DALI_LOG_RELEASE_INFO("#OverScrolled : RIGHT\n");
+  auto pThis = static_cast<TizenWebEngineChromium*>(data);
+  ExecuteCallback(pThis->mOverScrolledCallback, Dali::WebEnginePlugin::OverScrolled::RIGHT);
+}
+
+void TizenWebEngineChromium::OnOverScrolledTop(void* data, Evas_Object*, void*)
+{
+  DALI_LOG_RELEASE_INFO("#OverScrolled : TOP\n");
+  auto pThis = static_cast<TizenWebEngineChromium*>(data);
+  ExecuteCallback(pThis->mOverScrolledCallback, Dali::WebEnginePlugin::OverScrolled::TOP);
+}
+
+void TizenWebEngineChromium::OnOverScrolledBottom(void* data, Evas_Object*, void*)
+{
+  DALI_LOG_RELEASE_INFO("#OverScrolled : BOTTOM\n");
+  auto pThis = static_cast<TizenWebEngineChromium*>(data);
+  ExecuteCallback(pThis->mOverScrolledCallback, Dali::WebEnginePlugin::OverScrolled::BOTTOM);
+}
+
 void TizenWebEngineChromium::OnFormRepostDecided(void* data, Evas_Object*, void* eventInfo)
 {
   DALI_LOG_RELEASE_INFO("#FormRepostDecidedRequest\n");
index e3efee60b5c7b39a543756054aba3e72d754bdcb..e96aed2da315047a476df12ad4a65c7382ea5b29 100644 (file)
@@ -502,6 +502,11 @@ public:
    */
   void RegisterScrollEdgeReachedCallback(WebEngineScrollEdgeReachedCallback callback) override;
 
+  /**
+   * @copydoc Dali::WebEnginePlugin::RegisterOverScrolledCallback()
+   */
+  void RegisterOverScrolledCallback(WebEngineOverScrolledCallback callback) override;
+
   /**
    * @copydoc Dali::WebEnginePlugin::RegisterUrlChangedCallback()
    */
@@ -643,6 +648,10 @@ private:
   static void OnEdgeRight(void* data, Evas_Object*, void*);
   static void OnEdgeTop(void* data, Evas_Object*, void*);
   static void OnEdgeBottom(void* data, Evas_Object*, void*);
+  static void OnOverScrolledLeft(void* data, Evas_Object*, void*);
+  static void OnOverScrolledRight(void* data, Evas_Object*, void*);
+  static void OnOverScrolledTop(void* data, Evas_Object*, void*);
+  static void OnOverScrolledBottom(void* data, Evas_Object*, void*);
   static void OnFormRepostDecided(void* data, Evas_Object*, void* eventInfo);
   static void OnResponsePolicyDecided(void* data, Evas_Object*, void* policy);
   static void OnNavigationPolicyDecided(void* data, Evas_Object*, void* policy);
@@ -699,6 +708,7 @@ private:
   WebEnginePageLoadErrorCallback           mLoadErrorCallback;
   WebEngineUrlChangedCallback              mUrlChangedCallback;
   WebEngineScrollEdgeReachedCallback       mScrollEdgeReachedCallback;
+  WebEngineOverScrolledCallback            mOverScrolledCallback;
   WebEngineFormRepostDecidedCallback       mFormRepostDecidedCallback;
   WebEngineConsoleMessageReceivedCallback  mConsoleMessageReceivedCallback;
   WebEngineResponsePolicyDecidedCallback   mResponsePolicyDecidedCallback;
index d5d7302fedc44aab99ccb720ee7f1e8c3094849c..ddb688700abff0b3c95a4a27e9a3221c4a609ae7 100644 (file)
@@ -1933,6 +1933,11 @@ void TizenWebEngineLWE::RegisterScrollEdgeReachedCallback(WebEngineScrollEdgeRea
   // NOT IMPLEMENTED
 }
 
+void TizenWebEngineLWE::RegisterOverScrolledCallback(WebEngineOverScrolledCallback callback)
+{
+  // NOT IMPLEMENTED
+}
+
 void TizenWebEngineLWE::RegisterUrlChangedCallback(WebEngineUrlChangedCallback callback)
 {
   // NOT IMPLEMENTED
index fad2882a3e27d47a95a91c59c0b8b49db299bf67..3cfcea4cf36adf1a819444a28d04e947192e521d 100644 (file)
@@ -505,6 +505,11 @@ public:
    */
   void RegisterScrollEdgeReachedCallback(WebEngineScrollEdgeReachedCallback callback) override;
 
+  /**
+   * @copydoc Dali::WebEnginePlugin::RegisterOverScrolledCallback()
+   */
+  void RegisterOverScrolledCallback(WebEngineOverScrolledCallback callback) override;
+
   /**
    * @copydoc Dali::WebEnginePlugin::RegisterUrlChangedCallback()
    */