2012-06-24 03:45:56 +00:00
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Drawing;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
2013-11-03 03:54:37 +00:00
|
|
|
|
namespace BizHawk.Client.EmuHawk
|
2012-06-24 03:45:56 +00:00
|
|
|
|
{
|
|
|
|
|
public partial class HexFind : Form
|
|
|
|
|
{
|
|
|
|
|
private Point location;
|
|
|
|
|
public HexFind()
|
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void SetInitialValue(string value)
|
|
|
|
|
{
|
|
|
|
|
FindBox.Text = value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void SetLocation(Point p)
|
|
|
|
|
{
|
|
|
|
|
location = p;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void HexFind_Load(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (location.X > 0 && location.Y > 0)
|
2012-09-03 01:17:03 +00:00
|
|
|
|
{
|
2013-04-14 23:56:45 +00:00
|
|
|
|
Location = location;
|
2012-09-03 01:17:03 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private string GetFindBoxChars()
|
|
|
|
|
{
|
|
|
|
|
if (String.IsNullOrWhiteSpace(FindBox.Text))
|
|
|
|
|
{
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
else if (HexRadio.Checked)
|
|
|
|
|
{
|
|
|
|
|
return FindBox.Text;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2013-04-14 23:56:45 +00:00
|
|
|
|
List<byte> bytes = FindBox.Text.Select(c => Convert.ToByte(c)).ToList();
|
2012-09-03 01:17:03 +00:00
|
|
|
|
|
|
|
|
|
StringBuilder bytestring = new StringBuilder();
|
|
|
|
|
foreach (byte b in bytes)
|
|
|
|
|
{
|
|
|
|
|
bytestring.Append(String.Format("{0:X2}", b));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return bytestring.ToString();
|
|
|
|
|
}
|
2012-06-24 03:45:56 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void Find_Prev_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2013-11-02 20:25:53 +00:00
|
|
|
|
GlobalWinF.Tools.HexEditor.FindPrev(GetFindBoxChars(), false);
|
2012-06-24 03:45:56 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void Find_Next_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
2013-11-02 20:25:53 +00:00
|
|
|
|
GlobalWinF.Tools.HexEditor.FindNext(GetFindBoxChars(), false);
|
2012-09-03 01:17:03 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void ChangeCasing()
|
|
|
|
|
{
|
|
|
|
|
if (HexRadio.Checked)
|
|
|
|
|
{
|
|
|
|
|
FindBox.CharacterCasing = CharacterCasing.Upper;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
FindBox.CharacterCasing = CharacterCasing.Normal;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void HexRadio_CheckedChanged(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
ChangeCasing();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void TextRadio_CheckedChanged(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
ChangeCasing();
|
2012-06-24 03:45:56 +00:00
|
|
|
|
}
|
2012-09-23 23:20:30 +00:00
|
|
|
|
|
|
|
|
|
private void FindBox_KeyDown(object sender, KeyEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (e.KeyData == Keys.Enter)
|
|
|
|
|
{
|
2013-11-02 20:25:53 +00:00
|
|
|
|
GlobalWinF.Tools.HexEditor.FindNext(GetFindBoxChars(), false);
|
2012-09-23 23:20:30 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2012-06-24 03:45:56 +00:00
|
|
|
|
}
|
|
|
|
|
}
|