93 lines
1.8 KiB
C#
93 lines
1.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
|
|
namespace BizHawk.Client.EmuHawk
|
|
{
|
|
public partial class ExceptionBox : Form
|
|
{
|
|
public ExceptionBox(Exception ex)
|
|
{
|
|
InitializeComponent();
|
|
txtException.Text = ex.ToString();
|
|
timer1.Start();
|
|
}
|
|
|
|
public ExceptionBox(string str)
|
|
{
|
|
InitializeComponent();
|
|
txtException.Text = str;
|
|
timer1.Start();
|
|
}
|
|
|
|
private void btnCopy_Click(object sender, EventArgs e)
|
|
{
|
|
DoCopy();
|
|
}
|
|
|
|
void DoCopy()
|
|
{
|
|
string txt = txtException.Text;
|
|
Clipboard.SetText(txt);
|
|
try
|
|
{
|
|
if (Clipboard.GetText() == txt)
|
|
{
|
|
lblDone.Text = "Done!";
|
|
lblDone.ForeColor = SystemColors.ControlText;
|
|
return;
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
}
|
|
|
|
lblDone.Text = "ERROR!";
|
|
lblDone.ForeColor = SystemColors.ControlText;
|
|
}
|
|
|
|
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
|
{
|
|
if (keyData == (Keys.C | Keys.Control))
|
|
{
|
|
DoCopy();
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
private void btnOK_Click(object sender, EventArgs e)
|
|
{
|
|
Close();
|
|
}
|
|
|
|
private void timer1_Tick(object sender, EventArgs e)
|
|
{
|
|
int a = lblDone.ForeColor.A - 16;
|
|
if (a < 0) a = 0;
|
|
lblDone.ForeColor = Color.FromArgb(a, lblDone.ForeColor);
|
|
}
|
|
|
|
//http://stackoverflow.com/questions/2636065/alpha-in-forecolor
|
|
class MyLabel : Label
|
|
{
|
|
protected override void OnPaint(PaintEventArgs e)
|
|
{
|
|
Rectangle rc = this.ClientRectangle;
|
|
StringFormat fmt = new StringFormat(StringFormat.GenericTypographic);
|
|
using (var br = new SolidBrush(this.ForeColor))
|
|
{
|
|
e.Graphics.DrawString(this.Text, this.Font, br, rc, fmt);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|