From a664591218eebf1d470b4d47cd14bf9ea1c03473 Mon Sep 17 00:00:00 2001 From: adelikat Date: Mon, 14 Jul 2014 01:49:37 +0000 Subject: [PATCH] TAStudio - right-click + mousewheel logic --- .../tools/TAStudio/TAStudio.Designer.cs | 1 + .../tools/TAStudio/TAStudio.ListView.cs | 68 +++++++++++++------ 2 files changed, 47 insertions(+), 22 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs index f7d6ef7a1a..6655e91d1c 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs @@ -692,6 +692,7 @@ namespace BizHawk.Client.EmuHawk this.TasView.View = System.Windows.Forms.View.Details; this.TasView.SelectedIndexChanged += new System.EventHandler(this.TasView_SelectedIndexChanged); this.TasView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.TasView_MouseDown); + this.TasView.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.TasView_MouseWheel); this.TasView.MouseUp += new System.Windows.Forms.MouseEventHandler(this.TasView_MouseUp); // // Frame diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs index 943e43eb27..5c92275c82 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs @@ -15,6 +15,7 @@ namespace BizHawk.Client.EmuHawk private float _floatPaintState; private bool _startMarkerDrag; private bool _startFrameDrag; + private bool _rightMouseHeld = false; #region Query callbacks @@ -83,35 +84,42 @@ namespace BizHawk.Client.EmuHawk { if (TasView.PointedCell.Row.HasValue && !string.IsNullOrEmpty(TasView.PointedCell.Column)) { - if (TasView.PointedCell.Column == MarkerColumnName) + if (e.Button == MouseButtons.Left) { - _startMarkerDrag = true; - GoToFrame(TasView.PointedCell.Row.Value - 1); - } - else if (TasView.PointedCell.Column == FrameColumnName) - { - _startFrameDrag = true; - } - else - { - var frame = TasView.PointedCell.Row.Value; - var buttonName = TasView.PointedCell.Column; - - if (Global.MovieSession.MovieControllerAdapter.Type.BoolButtons.Contains(buttonName)) + if (TasView.PointedCell.Column == MarkerColumnName) { - _tas.ToggleBoolState(TasView.PointedCell.Row.Value, TasView.PointedCell.Column); - GoToLastEmulatedFrameIfNecessary(TasView.PointedCell.Row.Value); - TasView.Refresh(); - - _startBoolDrawColumn = TasView.PointedCell.Column; - _boolPaintState = _tas.BoolIsPressed(frame, buttonName); + _startMarkerDrag = true; + GoToFrame(TasView.PointedCell.Row.Value - 1); + } + else if (TasView.PointedCell.Column == FrameColumnName) + { + _startFrameDrag = true; } else { - _startFloatDrawColumn = TasView.PointedCell.Column; - _floatPaintState = _tas.GetFloatValue(frame, buttonName); + var frame = TasView.PointedCell.Row.Value; + var buttonName = TasView.PointedCell.Column; + + if (Global.MovieSession.MovieControllerAdapter.Type.BoolButtons.Contains(buttonName)) + { + _tas.ToggleBoolState(TasView.PointedCell.Row.Value, TasView.PointedCell.Column); + GoToLastEmulatedFrameIfNecessary(TasView.PointedCell.Row.Value); + TasView.Refresh(); + + _startBoolDrawColumn = TasView.PointedCell.Column; + _boolPaintState = _tas.BoolIsPressed(frame, buttonName); + } + else + { + _startFloatDrawColumn = TasView.PointedCell.Column; + _floatPaintState = _tas.GetFloatValue(frame, buttonName); + } } } + else if (e.Button == MouseButtons.Right) + { + _rightMouseHeld = true; + } } } @@ -122,6 +130,7 @@ namespace BizHawk.Client.EmuHawk _startBoolDrawColumn = string.Empty; _startFloatDrawColumn = string.Empty; _floatPaintState = 0; + _rightMouseHeld = false; } private void TasView_PointedCellChanged(object sender, TasListView.CellEventArgs e) @@ -183,6 +192,21 @@ namespace BizHawk.Client.EmuHawk } } + private void TasView_MouseWheel(object sender, MouseEventArgs e) + { + if (_rightMouseHeld) + { + if (e.Delta < 0) + { + GoToFrame(Global.Emulator.Frame); + } + else + { + GoToFrame(Global.Emulator.Frame - 2); + } + } + } + private void TasView_SelectedIndexChanged(object sender, EventArgs e) { SetSplicer();