[global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebView_RegisterScrollEdgeReachedCallback")]
public static extern void RegisterScrollEdgeReachedCallback(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+ [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebView_RegisterOverScrolledCallback")]
+ public static extern void RegisterOverScrolledCallback(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
[global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebView_RegisterUrlChangedCallback")]
public static extern void RegisterUrlChangedCallback(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
--- /dev/null
+/*
+ * Copyright (c) 2025 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+using System;
+using System.ComponentModel;
+
+namespace Tizen.NUI
+{
+ /// <summary>
+ /// Event arguments that passed via the WebView.OverScrolled.
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public class WebViewOverScrolledEventArgs : EventArgs
+ {
+ internal WebViewOverScrolledEventArgs(Over e)
+ {
+ OverScrolled = e;
+ }
+
+ /// <summary>
+ /// The enumeration for over scrolled.
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public enum Over
+ {
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ Left,
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ Right,
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ Top,
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ Bottom,
+ }
+
+ /// <summary>
+ /// The over scolled direction, e.g. left, right, etc.
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public Over OverScrolled { get; }
+ }
+}
private EventHandler<WebViewScrollEdgeReachedEventArgs> scrollEdgeReachedEventHandler;
private WebViewScrollEdgeReachedCallback scrollEdgeReachedCallback;
+ private EventHandler<WebViewOverScrolledEventArgs> overScrolledEventHandler;
+ private WebViewOverScrolledCallback overScrolledCallback;
+
private EventHandler<WebViewUrlChangedEventArgs> urlChangedEventHandler;
private WebViewUrlChangedCallback urlChangedCallback;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
private delegate void WebViewScrollEdgeReachedCallback(int edge);
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ private delegate void WebViewOverScrolledCallback(int overscrolled);
+
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
private delegate void WebViewUrlChangedCallback(string pageUrl);
}
}
+ /// <summary>
+ /// Event for the OverScrolled signal which can be used to subscribe or unsubscribe the event handler.<br />
+ /// This signal is emitted when web view is over scrolled.<br />
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public event EventHandler<WebViewOverScrolledEventArgs> OverScrolled
+ {
+ add
+ {
+ if (overScrolledEventHandler == null)
+ {
+ overScrolledCallback = OnOverScrolled;
+ IntPtr ip = Marshal.GetFunctionPointerForDelegate(overScrolledCallback);
+ Interop.WebView.RegisterOverScrolledCallback(SwigCPtr, new HandleRef(this, ip));
+ }
+ overScrolledEventHandler += value;
+ }
+ remove
+ {
+ overScrolledEventHandler -= value;
+ if (overScrolledEventHandler == null)
+ {
+ IntPtr ip = IntPtr.Zero;
+ Interop.WebView.RegisterOverScrolledCallback(SwigCPtr, new HandleRef(this, ip));
+ }
+ }
+ }
+
/// <summary>
/// Event for the UrlChanged signal which can be used to subscribe or unsubscribe the event handler.<br />
/// This signal is emitted when url is changed.<br />
scrollEdgeReachedEventHandler?.Invoke(this, new WebViewScrollEdgeReachedEventArgs((WebViewScrollEdgeReachedEventArgs.Edge)edge));
}
+ private void OnOverScrolled(int over)
+ {
+ overScrolledEventHandler?.Invoke(this, new WebViewOverScrolledEventArgs((WebViewOverScrolledEventArgs.Over)over));
+ }
+
private void OnUrlChanged(string pageUrl)
{
urlChangedEventHandler?.Invoke(this, new WebViewUrlChangedEventArgs(pageUrl));