mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-05-09 12:35:20 -05:00
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
1.0 KiB
C#
34 lines
1.0 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);
|
|
}
|
|
} |