PKHeX/PKHeX.WinForms/Controls/Slots/DragManager.cs

34 lines
997 B
C#
Raw Normal View History

using System.Drawing;
using System.Windows.Forms;
namespace PKHeX.WinForms.Controls
{
public sealed class DragManager
{
public SlotChangeInfo<Cursor, PictureBox> Info { get; private set; } = new();
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);
}
}