* dotnet format style --severity info Some changes were manually reverted. * dotnet format analyzers --serverity info Some changes have been minimally adapted. * Restore a few unused methods and variables * Silence dotnet format IDE0060 warnings * Silence dotnet format IDE0052 warnings * Silence dotnet format IDE0059 warnings * Address or silence dotnet format IDE1006 warnings * Address dotnet format CA1816 warnings * Address dotnet format CA1822 warnings * Address or silence dotnet format CA1069 warnings * Make dotnet format succeed in style mode * Address dotnet format CA1401 warnings * Address remaining dotnet format analyzer warnings * Address review comments * dotnet-format fixes after rebase * Address most dotnet format whitespace warnings * Apply dotnet format whitespace formatting A few of them have been manually reverted and the corresponding warning was silenced * Format if-blocks correctly * Another rebase, another dotnet format run * Run dotnet format whitespace after rebase * Run dotnet format style after rebase * Run dotnet format after rebase and remove unused usings - analyzers - style - whitespace * Add comments to disabled warnings * Remove a few unused parameters * Simplify properties and array initialization, Use const when possible, Remove trailing commas * Start working on disabled warnings * Fix and silence a few dotnet-format warnings again * Address IDE0260 warnings * Address a few disabled IDE0060 warnings * Silence IDE0060 in .editorconfig * Revert "Simplify properties and array initialization, Use const when possible, Remove trailing commas" This reverts commit 9462e4136c0a2100dc28b20cf9542e06790aa67e. * dotnet format whitespace after rebase * dotnet format pass with new editorconfig * Fix naming style issues * Apply suggestions from code review Co-authored-by: Ac_K <Acoustik666@gmail.com> * Revert one suggestion * Second dotnet format pass and fix build issues * Final pass of dotnet format * Add trailing commas * Fix formatting issues * Keep unnecessary assignment in IconColorPicker.cs * Use using declarations and extend resource lifetimes * Fix rebase issues * Adjust comment spacing * Fix typo * Fix naming issues * Apply suggestions from code review Co-authored-by: Ac_K <Acoustik666@gmail.com> * Revert unintentional change * Remove unused file * Remove static keyword from ViewModels Binding of static members doesn't work and is silently ignored. --------- Co-authored-by: Ac_K <Acoustik666@gmail.com>
126 lines
4.3 KiB
C#
126 lines
4.3 KiB
C#
using System;
|
|
using System.Diagnostics.CodeAnalysis;
|
|
using System.Runtime.InteropServices;
|
|
using System.Runtime.Versioning;
|
|
|
|
namespace Ryujinx.Ava.UI.Helpers
|
|
{
|
|
[SupportedOSPlatform("windows")]
|
|
internal partial class Win32NativeInterop
|
|
{
|
|
[Flags]
|
|
public enum ClassStyles : uint
|
|
{
|
|
CsClassdc = 0x40,
|
|
CsOwndc = 0x20,
|
|
}
|
|
|
|
[Flags]
|
|
public enum WindowStyles : uint
|
|
{
|
|
WsChild = 0x40000000,
|
|
}
|
|
|
|
public enum Cursors : uint
|
|
{
|
|
IdcArrow = 32512,
|
|
}
|
|
|
|
[SuppressMessage("Design", "CA1069: Enums values should not be duplicated")]
|
|
public enum WindowsMessages : uint
|
|
{
|
|
Mousemove = 0x0200,
|
|
Lbuttondown = 0x0201,
|
|
Lbuttonup = 0x0202,
|
|
Lbuttondblclk = 0x0203,
|
|
Rbuttondown = 0x0204,
|
|
Rbuttonup = 0x0205,
|
|
Rbuttondblclk = 0x0206,
|
|
Mbuttondown = 0x0207,
|
|
Mbuttonup = 0x0208,
|
|
Mbuttondblclk = 0x0209,
|
|
Mousewheel = 0x020A,
|
|
Xbuttondown = 0x020B,
|
|
Xbuttonup = 0x020C,
|
|
Xbuttondblclk = 0x020D,
|
|
Mousehwheel = 0x020E,
|
|
Mouselast = 0x020E,
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Winapi)]
|
|
internal delegate IntPtr WindowProc(IntPtr hWnd, WindowsMessages msg, IntPtr wParam, IntPtr lParam);
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct WndClassEx
|
|
{
|
|
public int cbSize;
|
|
public ClassStyles style;
|
|
public IntPtr lpfnWndProc; // not WndProc
|
|
public int cbClsExtra;
|
|
public int cbWndExtra;
|
|
public IntPtr hInstance;
|
|
public IntPtr hIcon;
|
|
public IntPtr hCursor;
|
|
public IntPtr hbrBackground;
|
|
public IntPtr lpszMenuName;
|
|
public IntPtr lpszClassName;
|
|
public IntPtr hIconSm;
|
|
|
|
public WndClassEx()
|
|
{
|
|
cbSize = Marshal.SizeOf<WndClassEx>();
|
|
}
|
|
}
|
|
|
|
public static IntPtr CreateEmptyCursor()
|
|
{
|
|
return CreateCursor(IntPtr.Zero, 0, 0, 1, 1, new byte[] { 0xFF }, new byte[] { 0x00 });
|
|
}
|
|
|
|
public static IntPtr CreateArrowCursor()
|
|
{
|
|
return LoadCursor(IntPtr.Zero, (IntPtr)Cursors.IdcArrow);
|
|
}
|
|
|
|
[LibraryImport("user32.dll")]
|
|
public static partial IntPtr SetCursor(IntPtr handle);
|
|
|
|
[LibraryImport("user32.dll")]
|
|
public static partial IntPtr CreateCursor(IntPtr hInst, int xHotSpot, int yHotSpot, int nWidth, int nHeight, byte[] pvAndPlane, byte[] pvXorPlane);
|
|
|
|
[LibraryImport("user32.dll", SetLastError = true, EntryPoint = "RegisterClassExW")]
|
|
public static partial ushort RegisterClassEx(ref WndClassEx param);
|
|
|
|
[LibraryImport("user32.dll", SetLastError = true, EntryPoint = "UnregisterClassW")]
|
|
public static partial short UnregisterClass([MarshalAs(UnmanagedType.LPWStr)] string lpClassName, IntPtr instance);
|
|
|
|
[LibraryImport("user32.dll", EntryPoint = "DefWindowProcW")]
|
|
public static partial IntPtr DefWindowProc(IntPtr hWnd, WindowsMessages msg, IntPtr wParam, IntPtr lParam);
|
|
|
|
[LibraryImport("kernel32.dll", EntryPoint = "GetModuleHandleA")]
|
|
public static partial IntPtr GetModuleHandle([MarshalAs(UnmanagedType.LPStr)] string lpModuleName);
|
|
|
|
[LibraryImport("user32.dll", SetLastError = true)]
|
|
[return: MarshalAs(UnmanagedType.Bool)]
|
|
public static partial bool DestroyWindow(IntPtr hwnd);
|
|
|
|
[LibraryImport("user32.dll", SetLastError = true, EntryPoint = "LoadCursorA")]
|
|
public static partial IntPtr LoadCursor(IntPtr hInstance, IntPtr lpCursorName);
|
|
|
|
[LibraryImport("user32.dll", SetLastError = true, EntryPoint = "CreateWindowExW")]
|
|
public static partial IntPtr CreateWindowEx(
|
|
uint dwExStyle,
|
|
[MarshalAs(UnmanagedType.LPWStr)] string lpClassName,
|
|
[MarshalAs(UnmanagedType.LPWStr)] string lpWindowName,
|
|
WindowStyles dwStyle,
|
|
int x,
|
|
int y,
|
|
int nWidth,
|
|
int nHeight,
|
|
IntPtr hWndParent,
|
|
IntPtr hMenu,
|
|
IntPtr hInstance,
|
|
IntPtr lpParam);
|
|
}
|
|
}
|