mirror of
https://github.com/kwsch/PKHeX
synced 2024-12-01 00:09:14 +00:00
39d11f5f2f
dont bother trycatching stuff that shouldn't fail
85 lines
2.4 KiB
C#
85 lines
2.4 KiB
C#
using System;
|
|
using System.Drawing;
|
|
using System.Windows.Forms;
|
|
using PKHeX.Core;
|
|
using PKHeX.Drawing;
|
|
|
|
using static PKHeX.Core.MessageStrings;
|
|
|
|
namespace PKHeX.WinForms
|
|
{
|
|
public partial class QR : Form
|
|
{
|
|
private readonly PKM pkm;
|
|
private readonly Image icon;
|
|
private Image qr;
|
|
|
|
private readonly string[] Lines;
|
|
private string extraText;
|
|
|
|
public QR(Image qr, Image icon, params string[] lines)
|
|
{
|
|
InitializeComponent();
|
|
this.qr = qr;
|
|
this.icon = icon;
|
|
Lines = lines;
|
|
|
|
const int stretch = 50;
|
|
Height += stretch;
|
|
RefreshImage();
|
|
}
|
|
|
|
public QR(Image qr, Image icon, PKM pk, params string[] lines)
|
|
{
|
|
InitializeComponent();
|
|
this.qr = qr;
|
|
this.icon = icon;
|
|
Lines = lines;
|
|
|
|
const int stretch = 50;
|
|
Height += stretch;
|
|
|
|
pkm = pk;
|
|
// Layer on Text
|
|
if (pkm.Format == 7 && pkm is PK7 pk7)
|
|
{
|
|
Height += 40;
|
|
ReloadQRData(pk7);
|
|
}
|
|
RefreshImage();
|
|
}
|
|
|
|
private void ReloadQRData(PK7 pk7)
|
|
{
|
|
var box = (int)NUD_Box.Value - 1;
|
|
var slot = (int)NUD_Slot.Value - 1;
|
|
var copies = (int)NUD_Copies.Value;
|
|
extraText = $" (Box {box + 1}, Slot {slot + 1}, {copies} cop{(copies > 1 ? "ies" : "y")})";
|
|
qr = QREncode.GenerateQRCode7(pk7, box, slot, copies);
|
|
}
|
|
|
|
private void RefreshImage()
|
|
{
|
|
SuspendLayout();
|
|
ResumeLayout();
|
|
Font font = !Main.Unicode ? Font : FontUtil.GetPKXFont(8.25f);
|
|
PB_QR.BackgroundImage = QRImageUtil.GetQRImageExtended(font, qr, icon, PB_QR.Width, PB_QR.Height, Lines, extraText);
|
|
}
|
|
|
|
private void PB_QR_Click(object sender, EventArgs e)
|
|
{
|
|
if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, MsgQRClipboardImage))
|
|
return;
|
|
try { Clipboard.SetImage(PB_QR.BackgroundImage); }
|
|
catch { WinFormsUtil.Alert(MsgQRClipboardFail); }
|
|
}
|
|
|
|
private void UpdateBoxSlotCopies(object sender, EventArgs e)
|
|
{
|
|
if (!(pkm is PK7 pk7))
|
|
throw new ArgumentException("Can't update QR7 if pkm isn't a PK7!");
|
|
ReloadQRData(pk7);
|
|
RefreshImage();
|
|
}
|
|
}
|
|
}
|