From 175862a5f32896a530b5e5819e75e3db786c297b Mon Sep 17 00:00:00 2001 From: feos Date: Sat, 12 Nov 2016 17:52:53 +0300 Subject: [PATCH] tastudio analog editing: - mouse dragging during float edit mode updates the displayed value and fires restore on mouse up - Enter key exits float edit mode after applying the dragged value, while Escape exits it after ignoring the dragged value (should Escape cancel all changes?) - currently disabled switch to enter float edit mode by single click --- .../tools/TAStudio/TAStudio.Designer.cs | 57 +++++++++++-------- .../tools/TAStudio/TAStudio.ListView.cs | 26 ++++----- .../tools/TAStudio/TAStudio.MenuItems.cs | 6 ++ .../tools/TAStudio/TAStudio.cs | 2 + 4 files changed, 55 insertions(+), 36 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs index 53cd8554d0..22a47f010e 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs @@ -97,6 +97,7 @@ namespace BizHawk.Client.EmuHawk this.DrawInputByDraggingMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.applyPatternToPaintedInputToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.onlyOnAutoFireColumnsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.SingleClickFloatEditMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.UseInputKeysItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); this.BindMarkersToInputMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -638,6 +639,7 @@ namespace BizHawk.Client.EmuHawk this.DrawInputByDraggingMenuItem, this.applyPatternToPaintedInputToolStripMenuItem, this.onlyOnAutoFireColumnsToolStripMenuItem, + this.SingleClickFloatEditMenuItem, this.UseInputKeysItem, this.toolStripSeparator4, this.BindMarkersToInputMenuItem, @@ -657,21 +659,21 @@ namespace BizHawk.Client.EmuHawk // SetMaxUndoLevelsMenuItem // this.SetMaxUndoLevelsMenuItem.Name = "SetMaxUndoLevelsMenuItem"; - this.SetMaxUndoLevelsMenuItem.Size = new System.Drawing.Size(253, 22); + this.SetMaxUndoLevelsMenuItem.Size = new System.Drawing.Size(255, 22); this.SetMaxUndoLevelsMenuItem.Text = "Set max Undo Levels"; this.SetMaxUndoLevelsMenuItem.Click += new System.EventHandler(this.SetMaxUndoLevelsMenuItem_Click); // // SetBranchCellHoverIntervalMenuItem // this.SetBranchCellHoverIntervalMenuItem.Name = "SetBranchCellHoverIntervalMenuItem"; - this.SetBranchCellHoverIntervalMenuItem.Size = new System.Drawing.Size(253, 22); + this.SetBranchCellHoverIntervalMenuItem.Size = new System.Drawing.Size(255, 22); this.SetBranchCellHoverIntervalMenuItem.Text = "Set Branch Cell Hover Interval"; this.SetBranchCellHoverIntervalMenuItem.Click += new System.EventHandler(this.SetBranchCellHoverIntervalMenuItem_Click); // // SetSeekingCutoffIntervalMenuItem // this.SetSeekingCutoffIntervalMenuItem.Name = "SetSeekingCutoffIntervalMenuItem"; - this.SetSeekingCutoffIntervalMenuItem.Size = new System.Drawing.Size(253, 22); + this.SetSeekingCutoffIntervalMenuItem.Size = new System.Drawing.Size(255, 22); this.SetSeekingCutoffIntervalMenuItem.Text = "Set Seeking Cutoff Interval"; this.SetSeekingCutoffIntervalMenuItem.Visible = false; this.SetSeekingCutoffIntervalMenuItem.Click += new System.EventHandler(this.SetSeekingCutoffIntervalMenuItem_Click); @@ -679,7 +681,7 @@ namespace BizHawk.Client.EmuHawk // toolStripSeparator26 // this.toolStripSeparator26.Name = "toolStripSeparator26"; - this.toolStripSeparator26.Size = new System.Drawing.Size(250, 6); + this.toolStripSeparator26.Size = new System.Drawing.Size(252, 6); // // autosaveToolStripMenuItem // @@ -688,7 +690,7 @@ namespace BizHawk.Client.EmuHawk this.AutosaveAsBk2MenuItem, this.AutosaveAsBackupFileMenuItem}); this.autosaveToolStripMenuItem.Name = "autosaveToolStripMenuItem"; - this.autosaveToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.autosaveToolStripMenuItem.Size = new System.Drawing.Size(255, 22); this.autosaveToolStripMenuItem.Text = "Autosave"; // // SetAutosaveIntervalMenuItem @@ -715,19 +717,19 @@ namespace BizHawk.Client.EmuHawk // BackupPerFileSaveMenuItem // this.BackupPerFileSaveMenuItem.Name = "BackupPerFileSaveMenuItem"; - this.BackupPerFileSaveMenuItem.Size = new System.Drawing.Size(253, 22); + this.BackupPerFileSaveMenuItem.Size = new System.Drawing.Size(255, 22); this.BackupPerFileSaveMenuItem.Text = "Backup Per File Save"; this.BackupPerFileSaveMenuItem.Click += new System.EventHandler(this.BackupPerFileSaveMenuItem_Click); // // toolStripSeparator9 // this.toolStripSeparator9.Name = "toolStripSeparator9"; - this.toolStripSeparator9.Size = new System.Drawing.Size(250, 6); + this.toolStripSeparator9.Size = new System.Drawing.Size(252, 6); // // AutoRestoreOnMouseUpOnlyMenuItem // this.AutoRestoreOnMouseUpOnlyMenuItem.Name = "AutoRestoreOnMouseUpOnlyMenuItem"; - this.AutoRestoreOnMouseUpOnlyMenuItem.Size = new System.Drawing.Size(253, 22); + this.AutoRestoreOnMouseUpOnlyMenuItem.Size = new System.Drawing.Size(255, 22); this.AutoRestoreOnMouseUpOnlyMenuItem.Text = "Auto-restore on Mouse Up only"; this.AutoRestoreOnMouseUpOnlyMenuItem.Click += new System.EventHandler(this.AutoRestoreOnMouseUpOnlyMenuItem_Click); // @@ -735,13 +737,13 @@ namespace BizHawk.Client.EmuHawk // this.AutoadjustInputMenuItem.CheckOnClick = true; this.AutoadjustInputMenuItem.Name = "AutoadjustInputMenuItem"; - this.AutoadjustInputMenuItem.Size = new System.Drawing.Size(253, 22); + this.AutoadjustInputMenuItem.Size = new System.Drawing.Size(255, 22); this.AutoadjustInputMenuItem.Text = "Auto-adjust Input according to Lag"; // // DrawInputByDraggingMenuItem // this.DrawInputByDraggingMenuItem.Name = "DrawInputByDraggingMenuItem"; - this.DrawInputByDraggingMenuItem.Size = new System.Drawing.Size(253, 22); + this.DrawInputByDraggingMenuItem.Size = new System.Drawing.Size(255, 22); this.DrawInputByDraggingMenuItem.Text = "Draw Input by dragging"; this.DrawInputByDraggingMenuItem.Click += new System.EventHandler(this.DrawInputByDraggingMenuItem_Click); // @@ -749,7 +751,7 @@ namespace BizHawk.Client.EmuHawk // this.applyPatternToPaintedInputToolStripMenuItem.CheckOnClick = true; this.applyPatternToPaintedInputToolStripMenuItem.Name = "applyPatternToPaintedInputToolStripMenuItem"; - this.applyPatternToPaintedInputToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.applyPatternToPaintedInputToolStripMenuItem.Size = new System.Drawing.Size(255, 22); this.applyPatternToPaintedInputToolStripMenuItem.Text = "Apply Pattern to painted input"; this.applyPatternToPaintedInputToolStripMenuItem.CheckedChanged += new System.EventHandler(this.applyPatternToPaintedInputToolStripMenuItem_CheckedChanged); // @@ -760,20 +762,28 @@ namespace BizHawk.Client.EmuHawk this.onlyOnAutoFireColumnsToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; this.onlyOnAutoFireColumnsToolStripMenuItem.Enabled = false; this.onlyOnAutoFireColumnsToolStripMenuItem.Name = "onlyOnAutoFireColumnsToolStripMenuItem"; - this.onlyOnAutoFireColumnsToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.onlyOnAutoFireColumnsToolStripMenuItem.Size = new System.Drawing.Size(255, 22); this.onlyOnAutoFireColumnsToolStripMenuItem.Text = "Only on Auto-Fire columns"; // + // SingleClickFloatEditMenuItem + // + this.SingleClickFloatEditMenuItem.Enabled = false; + this.SingleClickFloatEditMenuItem.Name = "SingleClickFloatEditMenuItem"; + this.SingleClickFloatEditMenuItem.Size = new System.Drawing.Size(255, 22); + this.SingleClickFloatEditMenuItem.Text = "Enter Float Edit mode by single click"; + this.SingleClickFloatEditMenuItem.Click += new System.EventHandler(this.SingleClickFloatEditMenuItem_Click); + // // UseInputKeysItem // this.UseInputKeysItem.Enabled = false; this.UseInputKeysItem.Name = "UseInputKeysItem"; - this.UseInputKeysItem.Size = new System.Drawing.Size(253, 22); + this.UseInputKeysItem.Size = new System.Drawing.Size(255, 22); this.UseInputKeysItem.Text = "Use Input keys for Column Set"; // // toolStripSeparator4 // this.toolStripSeparator4.Name = "toolStripSeparator4"; - this.toolStripSeparator4.Size = new System.Drawing.Size(250, 6); + this.toolStripSeparator4.Size = new System.Drawing.Size(252, 6); // // BindMarkersToInputMenuItem // @@ -781,52 +791,52 @@ namespace BizHawk.Client.EmuHawk this.BindMarkersToInputMenuItem.CheckOnClick = true; this.BindMarkersToInputMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; this.BindMarkersToInputMenuItem.Name = "BindMarkersToInputMenuItem"; - this.BindMarkersToInputMenuItem.Size = new System.Drawing.Size(253, 22); + this.BindMarkersToInputMenuItem.Size = new System.Drawing.Size(255, 22); this.BindMarkersToInputMenuItem.Text = "Bind Markers to Input"; this.BindMarkersToInputMenuItem.Click += new System.EventHandler(this.BindMarkersToInputMenuItem_Click); // // EmptyNewMarkerNotesMenuItem // this.EmptyNewMarkerNotesMenuItem.Name = "EmptyNewMarkerNotesMenuItem"; - this.EmptyNewMarkerNotesMenuItem.Size = new System.Drawing.Size(253, 22); + this.EmptyNewMarkerNotesMenuItem.Size = new System.Drawing.Size(255, 22); this.EmptyNewMarkerNotesMenuItem.Text = "Empty new Marker Notes"; this.EmptyNewMarkerNotesMenuItem.Click += new System.EventHandler(this.EmptyNewMarkerNotesMenuItem_Click); // // toolStripSeparator13 // this.toolStripSeparator13.Name = "toolStripSeparator13"; - this.toolStripSeparator13.Size = new System.Drawing.Size(250, 6); + this.toolStripSeparator13.Size = new System.Drawing.Size(252, 6); // // BranchesRestoreEntireMovieMenuItem // this.BranchesRestoreEntireMovieMenuItem.Enabled = false; this.BranchesRestoreEntireMovieMenuItem.Name = "BranchesRestoreEntireMovieMenuItem"; - this.BranchesRestoreEntireMovieMenuItem.Size = new System.Drawing.Size(253, 22); + this.BranchesRestoreEntireMovieMenuItem.Size = new System.Drawing.Size(255, 22); this.BranchesRestoreEntireMovieMenuItem.Text = "Branches restore entire Movie"; // // OsdInBranchScreenshotsMenuItem // this.OsdInBranchScreenshotsMenuItem.Enabled = false; this.OsdInBranchScreenshotsMenuItem.Name = "OsdInBranchScreenshotsMenuItem"; - this.OsdInBranchScreenshotsMenuItem.Size = new System.Drawing.Size(253, 22); + this.OsdInBranchScreenshotsMenuItem.Size = new System.Drawing.Size(255, 22); this.OsdInBranchScreenshotsMenuItem.Text = "OSD in Branch screenshots"; // // toolStripSeparator14 // this.toolStripSeparator14.Name = "toolStripSeparator14"; - this.toolStripSeparator14.Size = new System.Drawing.Size(250, 6); + this.toolStripSeparator14.Size = new System.Drawing.Size(252, 6); // // AutopauseAtEndOfMovieMenuItem // this.AutopauseAtEndOfMovieMenuItem.Name = "AutopauseAtEndOfMovieMenuItem"; - this.AutopauseAtEndOfMovieMenuItem.Size = new System.Drawing.Size(253, 22); + this.AutopauseAtEndOfMovieMenuItem.Size = new System.Drawing.Size(255, 22); this.AutopauseAtEndOfMovieMenuItem.Text = "Autopause at end of Movie"; this.AutopauseAtEndOfMovieMenuItem.Click += new System.EventHandler(this.AutopauseAtEndMenuItem_Click); // // sepToolStripMenuItem // this.sepToolStripMenuItem.Name = "sepToolStripMenuItem"; - this.sepToolStripMenuItem.Size = new System.Drawing.Size(250, 6); + this.sepToolStripMenuItem.Size = new System.Drawing.Size(252, 6); // // autoHoldFireToolStripMenuItem // @@ -839,7 +849,7 @@ namespace BizHawk.Client.EmuHawk this.setpToolStripMenuItem, this.setCustomsToolStripMenuItem}); this.autoHoldFireToolStripMenuItem.Name = "autoHoldFireToolStripMenuItem"; - this.autoHoldFireToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.autoHoldFireToolStripMenuItem.Size = new System.Drawing.Size(255, 22); this.autoHoldFireToolStripMenuItem.Text = "Auto Hold/Fire"; // // keepSetPatternsToolStripMenuItem @@ -1802,5 +1812,6 @@ namespace BizHawk.Client.EmuHawk private System.Windows.Forms.ToolStripMenuItem SaveBackupMenuItem; private System.Windows.Forms.ToolStripMenuItem SaveBk2BackupMenuItem; private System.Windows.Forms.ToolStripMenuItem AutoRestoreOnMouseUpOnlyMenuItem; + private System.Windows.Forms.ToolStripMenuItem SingleClickFloatEditMenuItem; } } \ No newline at end of file diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs index 7eeea8b429..3770d072f5 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs @@ -523,7 +523,7 @@ namespace BizHawk.Client.EmuHawk _patternPaint = false; - if (e.Clicks != 2) + if (e.Clicks != 2 && !Settings.SingleClickFloatEdit) { CurrentTasMovie.ChangeLog.BeginNewBatch("Paint Float " + buttonName + " from frame " + frame); _startFloatDrawColumn = buttonName; @@ -609,6 +609,9 @@ namespace BizHawk.Client.EmuHawk if (_floatEditRow != -1 && _floatPaintState != CurrentTasMovie.GetFloatState(_floatEditRow, _floatEditColumn)) { floatEditRow = -1; + _triggerAutoRestore = true; + JumpToGreenzone(); + DoTriggeredAutoRestoreIfNeeded(); RefreshDialog(); } _floatPaintState = 0; @@ -931,6 +934,7 @@ namespace BizHawk.Client.EmuHawk value = rMin; CurrentTasMovie.SetFloatState(_floatEditRow, _floatEditColumn, value); + _floatTypedValue = value.ToString(); RefreshDialog(); } @@ -950,18 +954,6 @@ namespace BizHawk.Client.EmuHawk { GoToNextMarker(); } - else if (e.KeyCode == Keys.Escape) - { - if (_floatEditRow != -1) - { - _floatEditRow = -1; - } - else - { - // not using StopSeeking() here, since it has special logic and should only happen when seek frame is reached - CancelSeekContextMenuItem_Click(null, null); - } - } // SuuperW: Float Editing if (_floatEditRow != -1) @@ -1031,6 +1023,14 @@ namespace BizHawk.Client.EmuHawk else value = Convert.ToSingle(_floatTypedValue); } + else if (e.KeyCode == Keys.Enter) + { + if (_floatEditYPos != -1) + { + _floatEditYPos = -1; + } + floatEditRow = -1; + } else if (e.KeyCode == Keys.Escape) { if (_floatEditYPos != -1) // Cancel change from dragging cursor diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs index c797048093..bcafe2654d 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs @@ -790,6 +790,7 @@ namespace BizHawk.Client.EmuHawk AutosaveAsBk2MenuItem.Checked = Settings.AutosaveAsBk2; AutosaveAsBackupFileMenuItem.Checked = Settings.AutosaveAsBackupFile; BackupPerFileSaveMenuItem.Checked = Settings.BackupPerFileSave; + SingleClickFloatEditMenuItem.Checked = Settings.SingleClickFloatEdit; } private void SetMaxUndoLevelsMenuItem_Click(object sender, EventArgs e) @@ -903,6 +904,11 @@ namespace BizHawk.Client.EmuHawk onlyOnAutoFireColumnsToolStripMenuItem.Enabled = applyPatternToPaintedInputToolStripMenuItem.Checked; } + private void SingleClickFloatEditMenuItem_Click(object sender, EventArgs e) + { + Settings.SingleClickFloatEdit ^= true; + } + private void BindMarkersToInputMenuItem_Click(object sender, EventArgs e) { CurrentTasMovie.BindMarkersToInput = BindMarkersToInputMenuItem.Checked; diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index c3f2f59640..10c8315058 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -72,6 +72,7 @@ namespace BizHawk.Client.EmuHawk AutosaveAsBk2 = false; AutosaveAsBackupFile = false; BackupPerFileSave = false; + SingleClickFloatEdit = false; // default to taseditor fashion denoteStatesWithIcons = false; denoteStatesWithBGColor = true; @@ -95,6 +96,7 @@ namespace BizHawk.Client.EmuHawk public bool AutosaveAsBk2 { get; set; } public bool AutosaveAsBackupFile { get; set; } public bool BackupPerFileSave { get; set; } + public bool SingleClickFloatEdit { get; set; } public bool denoteStatesWithIcons { get; set; } public bool denoteStatesWithBGColor { get; set; }