PKHeX/PKHeX.WinForms/Controls/SAV Editor/DragManager.cs
Kurt bf6c25eca7 Break up SlotChangeManager logic
A little bit cleaner when the logic is separated
Keep an abstraction of BoxEdit to cache the current box contents.
Already fetched to show sprites; any future fetches (for preview text /
hover sprite) can reuse the already fetched pkm data.

Should probably rewrite this stuff completely, but effort better spent
elsewhere
2019-08-20 19:50:28 -07:00

33 lines
No EOL
911 B
C#

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