Hex Editor - better location for the poke dialog, don't attempt to highlight non-visible addresses (fixes some bad drawing when highlighting and scrolling)

This commit is contained in:
adelikat 2015-01-19 01:49:56 +00:00
parent ebf7273cbe
commit 1c6d6f57bc
1 changed files with 21 additions and 18 deletions

View File

@ -1458,7 +1458,7 @@ namespace BizHawk.Client.EmuHawk
{ {
var poke = new RamPoke var poke = new RamPoke
{ {
InitialLocation = PointToScreen(GetAddressCoordinates(addresses[0])), InitialLocation = this.ChildPointToScreen(AddressLabel),
ParentTool = this ParentTool = this
}; };
@ -1985,24 +1985,27 @@ namespace BizHawk.Client.EmuHawk
foreach (var address in _secondaryHighlightedAddresses) foreach (var address in _secondaryHighlightedAddresses)
{ {
var point = GetAddressCoordinates(address); if (IsVisible(address))
var textX = (int)GetTextX(address);
var textpoint = new Point(textX, point.Y);
var rect = new Rectangle(point, new Size(fontWidth * 2 * DataSize + 2, fontHeight));
e.Graphics.DrawRectangle(new Pen(Brushes.Black), rect);
var textrect = new Rectangle(textpoint, new Size(fontWidth * DataSize, fontHeight));
if (Global.CheatList.IsActive(_domain, (int)address))
{ {
e.Graphics.FillRectangle(new SolidBrush(Global.Config.HexHighlightFreezeColor), rect); var point = GetAddressCoordinates(address);
e.Graphics.FillRectangle(new SolidBrush(Global.Config.HexHighlightFreezeColor), textrect); var textX = (int)GetTextX(address);
} var textpoint = new Point(textX, point.Y);
else
{ var rect = new Rectangle(point, new Size(fontWidth * 2 * DataSize + 2, fontHeight));
e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(0x77FFD4D4)), rect); e.Graphics.DrawRectangle(new Pen(Brushes.Black), rect);
e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(0x77FFD4D4)), textrect);
var textrect = new Rectangle(textpoint, new Size(fontWidth * DataSize, fontHeight));
if (Global.CheatList.IsActive(_domain, (int)address))
{
e.Graphics.FillRectangle(new SolidBrush(Global.Config.HexHighlightFreezeColor), rect);
e.Graphics.FillRectangle(new SolidBrush(Global.Config.HexHighlightFreezeColor), textrect);
}
else
{
e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(0x77FFD4D4)), rect);
e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(0x77FFD4D4)), textrect);
}
} }
} }