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
This commit is contained in:
feos 2016-11-12 17:52:53 +03:00
parent f760b355e0
commit 175862a5f3
4 changed files with 55 additions and 36 deletions

View File

@ -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;
}
}

View File

@ -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

View File

@ -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;

View File

@ -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; }