// This file was generated by the Gtk# code generator. // Any changes made will be lost if regenerated. namespace WebKit { using System; using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; public enum WebKitNavigationType { LinkClicked, FormSubmitted, BackForward, Reload, FormResubmitted, Other } public static class WebKitNavigationActionMethods { [DllImport("libwebkit2gtk-4.0.so.37", CallingConvention = CallingConvention.Cdecl)] public static extern IntPtr webkit_navigation_action_copy(IntPtr navigation); [DllImport("libwebkit2gtk-4.0.so.37", CallingConvention = CallingConvention.Cdecl)] public static extern void webkit_navigation_action_free(IntPtr navigation); [DllImport("libwebkit2gtk-4.0.so.37", CallingConvention = CallingConvention.Cdecl)] public static extern WebKitNavigationType webkit_navigation_action_get_navigation_type(IntPtr navigation); [DllImport("libwebkit2gtk-4.0.so.37", CallingConvention = CallingConvention.Cdecl)] public static extern uint webkit_navigation_action_get_mouse_button(IntPtr navigation); [DllImport("libwebkit2gtk-4.0.so.37", CallingConvention = CallingConvention.Cdecl)] public static extern uint webkit_navigation_action_get_modifiers(IntPtr navigation); [DllImport("libwebkit2gtk-4.0.so.37", CallingConvention = CallingConvention.Cdecl)] public static extern IntPtr webkit_navigation_action_get_request(IntPtr navigation); [DllImport("libwebkit2gtk-4.0.so.37", CallingConvention = CallingConvention.Cdecl)] [return: MarshalAs(UnmanagedType.I1)] public static extern bool webkit_navigation_action_is_user_gesture(IntPtr navigation); [DllImport("libwebkit2gtk-4.0.so.37", CallingConvention = CallingConvention.Cdecl)] [return: MarshalAs(UnmanagedType.I1)] public static extern bool webkit_navigation_action_is_redirect(IntPtr navigation); } [StructLayout(LayoutKind.Sequential)] public struct WKNavigationAction { public WebKitNavigationType NavigationType; public uint MouseButton; public uint Modifiers; public IntPtr Request; // Pointer to WebKitURIRequest [MarshalAs(UnmanagedType.I1)] public bool IsUserGesture; [MarshalAs(UnmanagedType.I1)] public bool IsRedirect; // Convert IntPtr to WebKitNavigationAction public static WKNavigationAction PtrToStruct(IntPtr ptr) { return Marshal.PtrToStructure(ptr); } // Convert WebKitNavigationAction to IntPtr public IntPtr StructToPtr() { IntPtr ptr = Marshal.AllocHGlobal(Marshal.SizeOf()); Marshal.StructureToPtr(this, ptr, false); return ptr; } // Free the allocated memory public static void FreePtr(IntPtr ptr) { Marshal.FreeHGlobal(ptr); } // Create a managed copy of the native structure public static WKNavigationAction CreateManagedCopy(IntPtr ptr) { WKNavigationAction managedCopy = PtrToStruct(ptr); // If Request is not null, create a copy of WebKitURIRequest if (managedCopy.Request != IntPtr.Zero) { managedCopy.Request = WKURIRequest.CreateManagedCopy(managedCopy.Request); } return managedCopy; } // Dispose method to clean up resources public void Dispose() { if (Request != IntPtr.Zero) { WKURIRequest.FreePtr(Request); Request = IntPtr.Zero; } } } [StructLayout(LayoutKind.Sequential)] public struct WKURIRequest { // Add fields as needed public IntPtr Uri; // Assuming the URI is stored as a string pointer // Convert IntPtr to WebKitURIRequest public static WKURIRequest PtrToStruct(IntPtr ptr) { return Marshal.PtrToStructure(ptr); } // Convert WebKitURIRequest to IntPtr public IntPtr StructToPtr() { IntPtr ptr = Marshal.AllocHGlobal(Marshal.SizeOf()); Marshal.StructureToPtr(this, ptr, false); return ptr; } // Free the allocated memory public static void FreePtr(IntPtr ptr) { Marshal.FreeHGlobal(ptr); } // Create a managed copy of the native structure public static IntPtr CreateManagedCopy(IntPtr ptr) { WKURIRequest managedCopy = PtrToStruct(ptr); // If Uri is not null, create a copy of the string if (managedCopy.Uri != IntPtr.Zero) { string uriString = Marshal.PtrToStringAnsi(managedCopy.Uri); managedCopy.Uri = Marshal.StringToHGlobalAnsi(uriString); } return managedCopy.StructToPtr(); } } #region Autogenerated code [StructLayout(LayoutKind.Sequential)] public partial struct NavigationAction : IEquatable { public static WebKit.NavigationAction Zero = new WebKit.NavigationAction (); public static WebKit.NavigationAction New(IntPtr raw) { if (raw == IntPtr.Zero) return WebKit.NavigationAction.Zero; return (WebKit.NavigationAction) Marshal.PtrToStructure (raw, typeof (WebKit.NavigationAction)); } [UnmanagedFunctionPointer (CallingConvention.Cdecl)] delegate IntPtr d_webkit_navigation_action_get_type(); static d_webkit_navigation_action_get_type webkit_navigation_action_get_type = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.Webkit), "webkit_navigation_action_get_type")); public static GLib.GType GType { get { IntPtr raw_ret = webkit_navigation_action_get_type(); GLib.GType ret = new GLib.GType(raw_ret); return ret; } } [UnmanagedFunctionPointer (CallingConvention.Cdecl)] delegate uint d_webkit_navigation_action_get_modifiers(IntPtr raw); static d_webkit_navigation_action_get_modifiers webkit_navigation_action_get_modifiers = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.Webkit), "webkit_navigation_action_get_modifiers")); public uint Modifiers { get { IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf()); System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false); uint raw_ret = webkit_navigation_action_get_modifiers(this_as_native); uint ret = raw_ret; ReadNative (this_as_native, ref this); System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native); return ret; } } [UnmanagedFunctionPointer (CallingConvention.Cdecl)] delegate uint d_webkit_navigation_action_get_mouse_button(IntPtr raw); static d_webkit_navigation_action_get_mouse_button webkit_navigation_action_get_mouse_button = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.Webkit), "webkit_navigation_action_get_mouse_button")); public uint MouseButton { get { IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf()); System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false); uint raw_ret = webkit_navigation_action_get_mouse_button(this_as_native); uint ret = raw_ret; ReadNative (this_as_native, ref this); System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native); return ret; } } [UnmanagedFunctionPointer (CallingConvention.Cdecl)] delegate int d_webkit_navigation_action_get_navigation_type(IntPtr raw); static d_webkit_navigation_action_get_navigation_type webkit_navigation_action_get_navigation_type = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.Webkit), "webkit_navigation_action_get_navigation_type")); public WebKit.NavigationType NavigationType { get { IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf()); System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false); int raw_ret = webkit_navigation_action_get_navigation_type(this_as_native); WebKit.NavigationType ret = (WebKit.NavigationType) raw_ret; ReadNative (this_as_native, ref this); System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native); return ret; } } [UnmanagedFunctionPointer (CallingConvention.Cdecl)] delegate IntPtr d_webkit_navigation_action_get_request(IntPtr raw); static d_webkit_navigation_action_get_request webkit_navigation_action_get_request = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.Webkit), "webkit_navigation_action_get_request")); public WebKit.URIRequest Request { get { var nav = new WKNavigationAction(); var nativePtr = nav.StructToPtr(); var raw_ptr = WebKitNavigationActionMethods.webkit_navigation_action_get_request(nativePtr); // IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf()); // System.Runtime.InteropServices.Marshal.StructureToPtr(this, this_as_native, false); // IntPtr raw_ret = webkit_navigation_action_get_request(nativePtr); // WebKit.URIRequest ret = GLib.Object.GetObject(raw_ret) as WebKit.URIRequest; // ReadNative (nativePtr, ref this); System.Runtime.InteropServices.Marshal.FreeHGlobal (nativePtr); return new WebKit.URIRequest(raw_ptr); } } [UnmanagedFunctionPointer (CallingConvention.Cdecl)] delegate bool d_webkit_navigation_action_is_redirect(IntPtr raw); static d_webkit_navigation_action_is_redirect webkit_navigation_action_is_redirect = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.Webkit), "webkit_navigation_action_is_redirect")); public bool IsRedirect { get { IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf()); System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false); bool raw_ret = webkit_navigation_action_is_redirect(this_as_native); bool ret = raw_ret; ReadNative (this_as_native, ref this); System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native); return ret; } } [UnmanagedFunctionPointer (CallingConvention.Cdecl)] delegate bool d_webkit_navigation_action_is_user_gesture(IntPtr raw); static d_webkit_navigation_action_is_user_gesture webkit_navigation_action_is_user_gesture = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.Webkit), "webkit_navigation_action_is_user_gesture")); public bool IsUserGesture { get { IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf()); System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false); bool raw_ret = webkit_navigation_action_is_user_gesture(this_as_native); bool ret = raw_ret; ReadNative (this_as_native, ref this); System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native); return ret; } } static void ReadNative (IntPtr native, ref WebKit.NavigationAction target) { target = New (native); } public bool Equals (NavigationAction other) { return true; } public override bool Equals (object other) { return other is NavigationAction && Equals ((NavigationAction) other); } public override int GetHashCode () { return this.GetType ().FullName.GetHashCode (); } public static explicit operator GLib.Value (WebKit.NavigationAction boxed) { GLib.Value val = GLib.Value.Empty; val.Init (WebKit.NavigationAction.GType); val.Val = boxed; return val; } public static explicit operator WebKit.NavigationAction (GLib.Value val) { return (WebKit.NavigationAction) val.Val; } #endregion } }