mirror of
https://github.com/kwsch/PKHeX
synced 2024-11-27 22:40:22 +00:00
cce4707604
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
34 lines
No EOL
1 KiB
C#
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);
|
|
}
|
|
} |