mirror of
https://github.com/kwsch/PKHeX
synced 2025-01-05 09:08:45 +00:00
b81a1e1e29
Increase abstraction for arbitrary slot get/set operations, and fracture SAV4 behavior for each game type. Adds: Undo/Redo of party slot changes Fixes: Fixed Gen5 daycare slot 2 reading, and EXP reading Fixes: Some slot color glitchiness Fixed: Box layout editor now hides the flag label if no flags are present Fixed: Gen7 box flags are now shown (unknown purpose lol) Changed: savefile objects are generally smaller (removed a few shared offset fields)
59 lines
No EOL
1.5 KiB
C#
59 lines
No EOL
1.5 KiB
C#
using System.Drawing;
|
|
using System.Windows.Forms;
|
|
using PKHeX.Core;
|
|
|
|
namespace PKHeX.WinForms.Controls
|
|
{
|
|
public class DragManager
|
|
{
|
|
public SlotChangeInfo<Cursor> Info { get; private set; }
|
|
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()
|
|
{
|
|
Info = new SlotChangeInfo<Cursor>();
|
|
}
|
|
|
|
public void Reset() => Info.Reset();
|
|
|
|
public Point MouseDownPosition { private get; set; }
|
|
public bool CanStartDrag => Info.LeftMouseIsDown && !Cursor.Position.Equals(MouseDownPosition);
|
|
}
|
|
|
|
public class SlotChangeInfo<T>
|
|
{
|
|
public bool LeftMouseIsDown { get; set; }
|
|
public bool DragDropInProgress { get; set; }
|
|
|
|
public T Cursor { get; set; }
|
|
public string CurrentPath { get; set; }
|
|
|
|
public ISlotInfo Source { get; set; }
|
|
public ISlotInfo Destination { get; set; }
|
|
|
|
public SlotChangeInfo()
|
|
{
|
|
Reset();
|
|
}
|
|
|
|
public void Reset()
|
|
{
|
|
LeftMouseIsDown = DragDropInProgress = false;
|
|
CurrentPath = null;
|
|
Cursor = default;
|
|
}
|
|
|
|
public bool SameLocation => Source?.Equals(Destination) ?? false;
|
|
}
|
|
} |