Parent Directory
|
Revision Log
|
Patch
--- trunk/RomCheater/Docking/UI/UIMemoryViewer.cs 2012/05/31 08:10:25 201 +++ trunk/RomCheater/Docking/UI/UIMemoryViewer.cs 2012/05/31 09:03:53 203 @@ -15,6 +15,7 @@ { public partial class UIMemoryViewer : UserControl, IProcessConfig, IAcceptsPlugin<IConfigPlugin>//, IAcceptsMemoryRange { + private bool first_load = true; public UIMemoryViewer() { InitializeComponent(); @@ -40,7 +41,24 @@ lblAddressMarker.Text = lblAddressMarker.Text + string.Format("{0:X2} ", i); } this.AcceptedPlugin = null; this.AcceptedProcess = null; + + txtAddresses.MouseWheel += new MouseEventHandler(txtAddresses_MouseWheel); + txtData.MouseWheel += new MouseEventHandler(txtData_MouseWheel); } + + private void GetFirstNonZeroByte() + { + if (!DesignMode) + { + Sojaner.MemoryScanner.ProcessMemoryReader reader = new Sojaner.MemoryScanner.ProcessMemoryReader(); + reader.ReadProcess = this.AcceptedProcess; + reader.OpenProcess(); + uint addr = 0; + reader.ReadFirstNonZeroByte(MemoryStart, MemorySize, out addr); + GotoAddress(addr); + } + } + #region IProcessConfig Members private Process _AcceptedProcess; public Process AcceptedProcess @@ -51,6 +69,8 @@ _AcceptedProcess = value; update_timer.Enabled = (value != null); UpdateEnabled = update_timer.Enabled; + if (value != null) + GetFirstNonZeroByte(); } } #endregion @@ -359,6 +379,45 @@ private void txtData_KeyDown(object sender, KeyEventArgs e) { this.Handle_KeyDown(sender, e); } private void ramScroll_Scroll(object sender, ScrollEventArgs e) { this.Handle_Scroll(sender, e); } + + private ScrollEventArgs GetMouseWheelScrollChange(int WheelDelta) + { + ScrollEventArgs args = new ScrollEventArgs(ScrollEventType.SmallIncrement,1); + if (WheelDelta < 0) + { + //// negative: scroll down + //// SmallDecrement -or- LargeDecrement + //if (WheelDelta <= small_scroll_change) + //{ + // args = new ScrollEventArgs(ScrollEventType.SmallDecrement,(int)small_scroll_change); + //} + //if (WheelDelta > small_scroll_change && WheelDelta <= large_scroll_change) + //{ + // args = new ScrollEventArgs(ScrollEventType.LargeDecrement, (int)large_scroll_change); + //} + args = new ScrollEventArgs(ScrollEventType.SmallIncrement, 1); + } + else + { + //// positive: scroll up + //// SmallIncrement -or- LargeIncrement + //if (WheelDelta <= small_scroll_change) + //{ + // args = new ScrollEventArgs(ScrollEventType.SmallIncrement, (int)small_scroll_change); + //} + //if (WheelDelta > small_scroll_change && WheelDelta <= large_scroll_change) + //{ + // args = new ScrollEventArgs(ScrollEventType.LargeIncrement, (int)large_scroll_change); + //} + args = new ScrollEventArgs(ScrollEventType.SmallDecrement, 1); + } + return args; + } + + void txtAddresses_MouseWheel(object sender, MouseEventArgs e) { this.Handle_Scroll(sender, GetMouseWheelScrollChange(e.Delta)); } + void txtData_MouseWheel(object sender, MouseEventArgs e) { this.Handle_Scroll(sender, GetMouseWheelScrollChange(e.Delta)); } + + private void Handle_Scroll(object sender, ScrollEventArgs e) { //isScrolling = true; @@ -374,14 +433,28 @@ switch (e.Type) { case ScrollEventType.SmallDecrement: - this.CURRENT_TOP_ADDR -= (small_scroll_change); + if (this.CURRENT_TOP_ADDR == 0 && ((this.CURRENT_TOP_ADDR - small_scroll_change) > this.CURRENT_TOP_ADDR)) + { + this.CURRENT_TOP_ADDR = ORIGINAL_ADDR; + } + else + { + this.CURRENT_TOP_ADDR -= (small_scroll_change); + } break; case ScrollEventType.SmallIncrement: this.CURRENT_TOP_ADDR += (small_scroll_change); break; case ScrollEventType.LargeDecrement: - this.CURRENT_TOP_ADDR -= (large_scroll_change); + if (this.CURRENT_TOP_ADDR == 0 && ((this.CURRENT_TOP_ADDR - large_scroll_change) > this.CURRENT_TOP_ADDR)) + { + this.CURRENT_TOP_ADDR = ORIGINAL_ADDR; + } + else + { + this.CURRENT_TOP_ADDR -= (large_scroll_change); + } break; case ScrollEventType.LargeIncrement: this.CURRENT_TOP_ADDR += (large_scroll_change);
ViewVC Help | |
Powered by ViewVC 1.1.22 |