Add OverScrolled in WebView 77/323277/2
authordongsug.song <dongsug.song@samsung.com>
Fri, 25 Apr 2025 05:04:04 +0000 (14:04 +0900)
committerdongsug.song <dongsug.song@samsung.com>
Fri, 25 Apr 2025 08:42:34 +0000 (17:42 +0900)
Change-Id: I452be9ae9ff65a6a03f7febc5a211d892aae92b2

automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-web-engine.cpp
automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp
dali-toolkit/devel-api/controls/web-view/web-view.cpp
dali-toolkit/devel-api/controls/web-view/web-view.h
dali-toolkit/internal/controls/web-view/web-view-impl.cpp
dali-toolkit/internal/controls/web-view/web-view-impl.h

index 759e6e872dece163ec57663440496c53797575d7..df12ce54053496c8d661301672f1099c7fe46950 100644 (file)
@@ -1478,6 +1478,9 @@ public:
   void RegisterScrollEdgeReachedCallback(WebEngineScrollEdgeReachedCallback callback) override
   {
   }
+  void RegisterOverScrolledCallback(WebEngineOverScrolledCallback callback) override
+  {
+  }
   void RegisterUrlChangedCallback(WebEngineUrlChangedCallback callback) override
   {
   }
@@ -1968,6 +1971,11 @@ public:
     mScrollEdgeReachedCallback = callback;
   }
 
+  void RegisterOverScrolledCallback(Dali::WebEnginePlugin::WebEngineOverScrolledCallback callback)
+  {
+    mOverScrolledCallback = callback;
+  }
+
   void RegisterUrlChangedCallback(Dali::WebEnginePlugin::WebEngineUrlChangedCallback callback)
   {
     mUrlChangedCallback = callback;
@@ -2122,6 +2130,7 @@ public:
   Dali::WebEnginePlugin::WebEnginePageLoadCallback                mPageLoadFinishedCallback;
   Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback           mPageLoadErrorCallback;
   Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback       mScrollEdgeReachedCallback;
+  Dali::WebEnginePlugin::WebEngineOverScrolledCallback            mOverScrolledCallback;
   Dali::WebEnginePlugin::WebEngineUrlChangedCallback              mUrlChangedCallback;
   Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback       mFormRepostDecidedCallback;
   Dali::WebEnginePlugin::WebEngineFrameRenderedCallback           mFrameRenderedCallback;
@@ -3010,6 +3019,11 @@ void WebEngine::RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngi
   Internal::Adaptor::GetImplementation(*this).RegisterScrollEdgeReachedCallback(callback);
 }
 
+void WebEngine::RegisterOverScrolledCallback(Dali::WebEnginePlugin::WebEngineOverScrolledCallback callback)
+{
+  Internal::Adaptor::GetImplementation(*this).RegisterOverScrolledCallback(callback);
+}
+
 void WebEngine::RegisterUrlChangedCallback(Dali::WebEnginePlugin::WebEngineUrlChangedCallback callback)
 {
   Internal::Adaptor::GetImplementation(*this).RegisterUrlChangedCallback(callback);
index a5639b1ae7455226e6d84474c86ae6eb7e64a8ca..c6dc38cecfb3744eaf0d5e2c6c31ef5fec667e91 100644 (file)
@@ -62,6 +62,7 @@ static int                                                                gPageL
 static int                                                                gPageLoadErrorCallbackCalled           = 0;
 static std::unique_ptr<Dali::WebEngineLoadError>                          gPageLoadErrorInstance                 = nullptr;
 static int                                                                gScrollEdgeReachedCallbackCalled       = 0;
+static int                                                                gOverScrolledCallbackCalled            = 0;
 static int                                                                gUrlChangedCallbackCalled              = 0;
 static int                                                                gEvaluateJavaScriptCallbackCalled      = 0;
 static int                                                                gJavaScriptAlertCallbackCalled         = 0;
@@ -164,6 +165,11 @@ static void OnNewWindowCreated(Dali::WebEnginePlugin*& outPlugin)
   outPlugin       = newView.GetPlugin();
 }
 
+static void OnOverScrolled(Dali::WebEnginePlugin::OverScrolled over)
+{
+  gOverScrolledCallbackCalled++;
+}
+
 static void OnUrlChanged(const std::string& url)
 {
   gUrlChangedCallbackCalled++;
@@ -1200,6 +1206,9 @@ int UtcDaliWebViewScrollBy(void)
   DALI_TEST_CHECK(output.x == 200 && output.y == 200);
   DALI_TEST_EQUALS(gScrollEdgeReachedCallbackCalled, 2, TEST_LOCATION);
 
+  view.RegisterOverScrolledCallback(&OnOverScrolled);
+  DALI_TEST_EQUALS(gOverScrolledCallbackCalled, 0, TEST_LOCATION);
+
   END_TEST;
 }
 
index 27fe02612b49fe5595f4418c1fc6f487c095093c..3d145b6e70f187fdff8d32d4cc57e3e80e4a486a 100755 (executable)
@@ -379,6 +379,11 @@ void WebView::RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngine
   Dali::Toolkit::GetImpl(*this).RegisterScrollEdgeReachedCallback(callback);
 }
 
+void WebView::RegisterOverScrolledCallback(Dali::WebEnginePlugin::WebEngineOverScrolledCallback callback)
+{
+  Dali::Toolkit::GetImpl(*this).RegisterOverScrolledCallback(callback);
+}
+
 void WebView::RegisterUrlChangedCallback(Dali::WebEnginePlugin::WebEngineUrlChangedCallback callback)
 {
   Dali::Toolkit::GetImpl(*this).RegisterUrlChangedCallback(callback);
index 3719c79d9beaeb2bb5dcf3747cb95aa8c6e0be99..7c8927fa0e6b76621859b961b40a2b3e7b5cc68f 100755 (executable)
@@ -709,6 +709,13 @@ public:
    */
   void RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback callback);
 
+  /**
+   * @brief Callback to be called when over scrolled.
+   *
+   * @param[in] callback
+   */
+  void RegisterOverScrolledCallback(Dali::WebEnginePlugin::WebEngineOverScrolledCallback callback);
+
   /**
    * @brief Callback to be called when url is changed.
    *
index 445c2a45230ce06fd5fd2c3a9295d39a5aa44c22..243aaaf537932c7e7d7c3cb9ec66d6a23c5b49e1 100644 (file)
@@ -830,6 +830,14 @@ void WebView::RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngine
   }
 }
 
+void WebView::RegisterOverScrolledCallback(Dali::WebEnginePlugin::WebEngineOverScrolledCallback callback)
+{
+  if(mWebEngine)
+  {
+    mWebEngine.RegisterOverScrolledCallback(callback);
+  }
+}
+
 void WebView::RegisterUrlChangedCallback(Dali::WebEnginePlugin::WebEngineUrlChangedCallback callback)
 {
   if(mWebEngine)
index ba517780f67eefccc72f55e9b84899c434992e56..64c343b8990fe9e3976f35454f6e8bb8c512f283 100644 (file)
@@ -377,6 +377,11 @@ public:
    */
   void RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback callback);
 
+  /**
+   * @copydoc Dali::Toolkit::WebView::RegisterOverScrolledCallback()
+   */
+  void RegisterOverScrolledCallback(Dali::WebEnginePlugin::WebEngineOverScrolledCallback callback);
+
   /**
    * @copydoc Dali::Toolkit::WebView::RegisterUrlChangedCallback()
    */