PKHeX/PKHeX.WinForms/Controls/Slots/DragManager.cs
Kurt cce4707604
Enable nullable for winforms csproj (#3037)
Handle all warnings
obviously the usage of null! could potentially be avoided if the object init wasn't such garbage, but here we are with years of old junk and lack of abstraction in the GUI project
2020-10-18 11:02:39 -07:00

34 lines
No EOL
1 KiB
C#

using System.Drawing;
using System.Windows.Forms;
namespace PKHeX.WinForms.Controls
{
public sealed class DragManager
{
public SlotChangeInfo<Cursor, PictureBox> Info { get; private set; } = new SlotChangeInfo<Cursor, PictureBox>();
public event DragEventHandler? RequestExternalDragDrop;
public void RequestDD(object sender, DragEventArgs e) => RequestExternalDragDrop?.Invoke(sender, e);
public void SetCursor(Form? f, Cursor? z)
{
if (f != null)
f.Cursor = z;
Info.Cursor = z;
}
public void ResetCursor(Form? sender)
{
SetCursor(sender, Cursors.Default);
}
public void Initialize()
{
Info = new SlotChangeInfo<Cursor, PictureBox>();
}
public void Reset() => Info.Reset();
public Point MouseDownPosition { private get; set; }
public bool CanStartDrag => Info.LeftMouseIsDown && !Cursor.Position.Equals(MouseDownPosition);
}
}