Verify Views files against decompiled, extract embedded types
Fixed files: - SkiaImageButton.cs: Added SVG support with multi-path search - SkiaNavigationPage.cs: Added LinuxApplication.IsGtkMode check - SkiaRefreshView.cs: Added ICommand support (Command, CommandParameter) - SkiaTemplatedView.cs: Added missing using statements Extracted embedded types to separate files (matching decompiled pattern): - From SkiaMenuBar.cs: MenuBarItem, MenuItem, SkiaMenuFlyout, MenuItemClickedEventArgs - From SkiaNavigationPage.cs: NavigationEventArgs - From SkiaTabbedPage.cs: TabItem - From SkiaVisualStateManager.cs: SkiaVisualStateGroupList, SkiaVisualStateGroup, SkiaVisualState, SkiaVisualStateSetter - From SkiaSwipeView.cs: SwipeItem, SwipeStartedEventArgs, SwipeEndedEventArgs - From SkiaFlyoutPage.cs: FlyoutLayoutBehavior (already separate) - From SkiaIndicatorView.cs: IndicatorShape (already separate) - From SkiaBorder.cs: SkiaFrame - From SkiaCarouselView.cs: PositionChangedEventArgs - From SkiaCollectionView.cs: SkiaSelectionMode, ItemsLayoutOrientation - From SkiaContentPresenter.cs: LayoutAlignment Verified matching decompiled: - SkiaContextMenu.cs, SkiaFlexLayout.cs, SkiaGraphicsView.cs Build: 0 errors 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
226
Interop/X11.cs
Normal file
226
Interop/X11.cs
Normal file
@@ -0,0 +1,226 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Microsoft.Maui.Platform.Linux.Interop;
|
||||
|
||||
internal static partial class X11
|
||||
{
|
||||
private const string LibX11 = "libX11.so.6";
|
||||
|
||||
public const int ZPixmap = 2;
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial IntPtr XOpenDisplay(IntPtr displayName);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XCloseDisplay(IntPtr display);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XDefaultScreen(IntPtr display);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial IntPtr XRootWindow(IntPtr display, int screenNumber);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XDisplayWidth(IntPtr display, int screenNumber);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XDisplayHeight(IntPtr display, int screenNumber);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XDefaultDepth(IntPtr display, int screenNumber);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial IntPtr XDefaultVisual(IntPtr display, int screenNumber);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial IntPtr XDefaultColormap(IntPtr display, int screenNumber);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XFlush(IntPtr display);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XSync(IntPtr display, [MarshalAs(UnmanagedType.Bool)] bool discard);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial IntPtr XCreateSimpleWindow(
|
||||
IntPtr display, IntPtr parent,
|
||||
int x, int y, uint width, uint height,
|
||||
uint borderWidth, ulong border, ulong background);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial IntPtr XCreateWindow(
|
||||
IntPtr display, IntPtr parent,
|
||||
int x, int y, uint width, uint height, uint borderWidth,
|
||||
int depth, uint windowClass, IntPtr visual,
|
||||
ulong valueMask, ref XSetWindowAttributes attributes);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XDestroyWindow(IntPtr display, IntPtr window);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XMapWindow(IntPtr display, IntPtr window);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XUnmapWindow(IntPtr display, IntPtr window);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XMoveWindow(IntPtr display, IntPtr window, int x, int y);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XResizeWindow(IntPtr display, IntPtr window, uint width, uint height);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XMoveResizeWindow(IntPtr display, IntPtr window, int x, int y, uint width, uint height);
|
||||
|
||||
[LibraryImport(LibX11, StringMarshalling = StringMarshalling.Utf8)]
|
||||
public static partial int XStoreName(IntPtr display, IntPtr window, string windowName);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XRaiseWindow(IntPtr display, IntPtr window);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XLowerWindow(IntPtr display, IntPtr window);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XSelectInput(IntPtr display, IntPtr window, long eventMask);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XNextEvent(IntPtr display, out XEvent eventReturn);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XPeekEvent(IntPtr display, out XEvent eventReturn);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XPending(IntPtr display);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
[return: MarshalAs(UnmanagedType.Bool)]
|
||||
public static partial bool XCheckTypedWindowEvent(IntPtr display, IntPtr window, int eventType, out XEvent eventReturn);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XSendEvent(
|
||||
IntPtr display, IntPtr window,
|
||||
[MarshalAs(UnmanagedType.Bool)] bool propagate,
|
||||
long eventMask, ref XEvent eventSend);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial ulong XKeycodeToKeysym(IntPtr display, int keycode, int index);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XLookupString(
|
||||
ref XKeyEvent keyEvent, IntPtr bufferReturn, int bytesBuffer,
|
||||
out ulong keysymReturn, IntPtr statusInOut);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XGrabKeyboard(
|
||||
IntPtr display, IntPtr grabWindow,
|
||||
[MarshalAs(UnmanagedType.Bool)] bool ownerEvents,
|
||||
int pointerMode, int keyboardMode, ulong time);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XUngrabKeyboard(IntPtr display, ulong time);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XGrabPointer(
|
||||
IntPtr display, IntPtr grabWindow,
|
||||
[MarshalAs(UnmanagedType.Bool)] bool ownerEvents,
|
||||
uint eventMask, int pointerMode, int keyboardMode,
|
||||
IntPtr confineTo, IntPtr cursor, ulong time);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XUngrabPointer(IntPtr display, ulong time);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
[return: MarshalAs(UnmanagedType.Bool)]
|
||||
public static partial bool XQueryPointer(
|
||||
IntPtr display, IntPtr window,
|
||||
out IntPtr rootReturn, out IntPtr childReturn,
|
||||
out int rootX, out int rootY,
|
||||
out int winX, out int winY,
|
||||
out uint maskReturn);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XWarpPointer(
|
||||
IntPtr display, IntPtr srcWindow, IntPtr destWindow,
|
||||
int srcX, int srcY, uint srcWidth, uint srcHeight,
|
||||
int destX, int destY);
|
||||
|
||||
[LibraryImport(LibX11, StringMarshalling = StringMarshalling.Utf8)]
|
||||
public static partial IntPtr XInternAtom(IntPtr display, string atomName, [MarshalAs(UnmanagedType.Bool)] bool onlyIfExists);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XChangeProperty(
|
||||
IntPtr display, IntPtr window, IntPtr property, IntPtr type,
|
||||
int format, int mode, IntPtr data, int nelements);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XGetWindowProperty(
|
||||
IntPtr display, IntPtr window, IntPtr property,
|
||||
long longOffset, long longLength,
|
||||
[MarshalAs(UnmanagedType.Bool)] bool delete, IntPtr reqType,
|
||||
out IntPtr actualTypeReturn, out int actualFormatReturn,
|
||||
out IntPtr nitemsReturn, out IntPtr bytesAfterReturn,
|
||||
out IntPtr propReturn);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XDeleteProperty(IntPtr display, IntPtr window, IntPtr property);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XSetSelectionOwner(IntPtr display, IntPtr selection, IntPtr owner, ulong time);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial IntPtr XGetSelectionOwner(IntPtr display, IntPtr selection);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XConvertSelection(
|
||||
IntPtr display, IntPtr selection, IntPtr target,
|
||||
IntPtr property, IntPtr requestor, ulong time);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XFree(IntPtr data);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial IntPtr XCreateGC(IntPtr display, IntPtr drawable, ulong valueMask, IntPtr values);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XFreeGC(IntPtr display, IntPtr gc);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XCopyArea(
|
||||
IntPtr display, IntPtr src, IntPtr dest, IntPtr gc,
|
||||
int srcX, int srcY, uint width, uint height, int destX, int destY);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial IntPtr XCreateFontCursor(IntPtr display, uint shape);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XFreeCursor(IntPtr display, IntPtr cursor);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XDefineCursor(IntPtr display, IntPtr window, IntPtr cursor);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XUndefineCursor(IntPtr display, IntPtr window);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XConnectionNumber(IntPtr display);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial IntPtr XCreateImage(
|
||||
IntPtr display, IntPtr visual, uint depth, int format, int offset,
|
||||
IntPtr data, uint width, uint height, int bitmapPad, int bytesPerLine);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XPutImage(
|
||||
IntPtr display, IntPtr drawable, IntPtr gc, IntPtr image,
|
||||
int srcX, int srcY, int destX, int destY, uint width, uint height);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial int XDestroyImage(IntPtr image);
|
||||
|
||||
[LibraryImport(LibX11)]
|
||||
public static partial IntPtr XDefaultGC(IntPtr display, int screen);
|
||||
}
|
||||
Reference in New Issue
Block a user