mirror of
https://github.com/kwsch/PKHeX
synced 2024-12-25 11:53:11 +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
72 lines
2.5 KiB
C#
72 lines
2.5 KiB
C#
using System;
|
|
using System.Windows.Forms;
|
|
using PKHeX.Core;
|
|
using PKHeX.WinForms.Controls;
|
|
|
|
namespace PKHeX.WinForms
|
|
{
|
|
public sealed partial class SAV_BoxViewer : Form
|
|
{
|
|
private readonly SAVEditor parent;
|
|
|
|
public SAV_BoxViewer(SAVEditor p, SlotChangeManager m)
|
|
{
|
|
parent = p;
|
|
InitializeComponent();
|
|
int deltaW = Width - Box.BoxPokeGrid.Width;
|
|
int deltaH = Height - Box.BoxPokeGrid.Height;
|
|
Box.Editor = new BoxEdit(m.SE.SAV);
|
|
Box.Setup(m);
|
|
Box.InitializeGrid();
|
|
|
|
Width = Box.BoxPokeGrid.Width + deltaW + 2;
|
|
Height = Box.BoxPokeGrid.Height + deltaH + 2;
|
|
|
|
Box.RecenterControls();
|
|
Box.HorizontallyCenter(this);
|
|
Box.Reset();
|
|
CenterToParent();
|
|
|
|
AllowDrop = true;
|
|
GiveFeedback += (sender, e) => e.UseDefaultCursors = false;
|
|
DragEnter += Main_DragEnter;
|
|
DragDrop += (sender, e) =>
|
|
{
|
|
Cursor = DefaultCursor;
|
|
System.Media.SystemSounds.Asterisk.Play();
|
|
};
|
|
Owner = p.ParentForm;
|
|
|
|
MouseWheel += (s, e) =>
|
|
{
|
|
if (parent.menu.mnuVSD.Visible)
|
|
return;
|
|
Box.CurrentBox = e.Delta > 1 ? Box.Editor.MoveLeft() : Box.Editor.MoveRight();
|
|
};
|
|
|
|
foreach (PictureBox pb in Box.SlotPictureBoxes)
|
|
pb.ContextMenuStrip = parent.SlotPictureBoxes[0].ContextMenuStrip;
|
|
Box.ResetBoxNames(); // fix box names
|
|
Box.ResetSlots(); // refresh box background
|
|
p.EditEnv.Slots.Publisher.Subscribers.Add(Box);
|
|
}
|
|
|
|
public int CurrentBox => Box.CurrentBox;
|
|
private void PB_BoxSwap_Click(object sender, EventArgs e) => Box.CurrentBox = parent.SwapBoxesViewer(Box.CurrentBox);
|
|
|
|
private static void Main_DragEnter(object sender, DragEventArgs e)
|
|
{
|
|
if (e.AllowedEffect == (DragDropEffects.Copy | DragDropEffects.Link)) // external file
|
|
e.Effect = DragDropEffects.Copy;
|
|
else if (e.Data != null) // within
|
|
e.Effect = DragDropEffects.Move;
|
|
}
|
|
|
|
private void SAV_BoxViewer_FormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
// Remove viewer from manager list
|
|
Box.M?.Boxes.Remove(Box);
|
|
parent.EditEnv.Slots.Publisher.Subscribers.Remove(Box);
|
|
}
|
|
}
|
|
}
|