Cursor.cs 910 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. using System.ComponentModel;
  2. using System.IO;
  3. namespace System.Windows.Forms
  4. {
  5. [TypeConverter(typeof(CursorConverter))]
  6. public sealed class Cursor : IDisposable
  7. {
  8. internal Input.Cursor cursor { get; }
  9. internal string name = "";
  10. public void Dispose()
  11. {
  12. cursor?.Dispose();
  13. }
  14. public override string ToString() => name;
  15. public Cursor(Stream stream)
  16. {
  17. cursor = new(stream, true);
  18. }
  19. internal Cursor(Input.Cursor cursor, string name)
  20. {
  21. this.cursor = cursor;
  22. this.name = name;
  23. }
  24. public static Drawing.Point Position => NativeMethods.GetMousePosition();
  25. public static Cursor Current
  26. {
  27. get => new Cursor(Input.Mouse.OverrideCursor, "");
  28. set => Input.Mouse.OverrideCursor = value?.cursor;
  29. }
  30. }
  31. }