TAStudio - convert to IToolFormAutoConfig

This commit is contained in:
adelikat 2015-01-01 18:10:07 +00:00
parent dbdc92e7e2
commit 6fb88a0105
5 changed files with 874 additions and 1040 deletions

View File

@ -342,11 +342,8 @@ namespace BizHawk.Client.Common
#endregion
// TAStudio Dialog
public ToolDialogSettings TAStudioSettings = new ToolDialogSettings();
public RecentFiles RecentTas = new RecentFiles(8);
public TasStateManagerSettings DefaultTasProjSettings = new TasStateManagerSettings();
public bool AutoloadTAStudio = false;
public bool AutoloadTAStudioProject = false;
public bool TAStudioDrawInput = true;
public bool TAStudioAutoPause = true;
public bool TAStudioAutoRestoreLastPosition = false;

View File

@ -372,11 +372,6 @@ namespace BizHawk.Client.EmuHawk
GlobalWin.Tools.LoadGameGenieEc();
}
if (Global.Config.AutoloadTAStudio)
{
GlobalWin.Tools.Load<TAStudio>();
}
if (Global.Config.AutoloadVirtualPad)
{
GlobalWin.Tools.Load<VirtualpadTool>();

File diff suppressed because it is too large Load Diff

View File

@ -35,7 +35,7 @@ namespace BizHawk.Client.EmuHawk
{
RecentSubMenu.DropDownItems.Clear();
RecentSubMenu.DropDownItems.AddRange(
Global.Config.RecentTas.RecentMenu(DummyLoadProject));
Global.Config.RecentTas.RecentMenu(DummyLoadProject, true));
}
private void NewTasMenuItem_Click(object sender, EventArgs e)
@ -533,7 +533,7 @@ namespace BizHawk.Client.EmuHawk
AutopauseAtEndOfMovieMenuItem.Checked = Global.Config.TAStudioAutoPause;
EmptyNewMarkerNotesMenuItem.Checked = Global.Config.TAStudioEmptyMarkers;
RotateMenuItem.ShortcutKeyDisplayString = TasView.RotateHotkeyStr;
}
private void DrawInputByDraggingMenuItem_Click(object sender, EventArgs e)
@ -551,12 +551,6 @@ namespace BizHawk.Client.EmuHawk
Global.Config.TAStudioAutoPause ^= true;
}
private void RotateMenuItem_Click(object sender, EventArgs e)
{
TasView.HorizontalOrientation ^= true;
CurrentTasMovie.FlagChanges();
}
#endregion
#region Metadata
@ -611,49 +605,13 @@ namespace BizHawk.Client.EmuHawk
private void SettingsSubMenu_DropDownOpened(object sender, EventArgs e)
{
SaveWindowPositionMenuItem.Checked = Global.Config.TAStudioSettings.SaveWindowPosition;
AutoloadMenuItem.Checked = Global.Config.AutoloadTAStudio;
AutoloadProjectMenuItem.Checked = Global.Config.AutoloadTAStudioProject;
AlwaysOnTopMenuItem.Checked = Global.Config.TAStudioSettings.TopMost;
FloatingWindowMenuItem.Checked = Global.Config.TAStudioSettings.FloatingWindow;
RotateMenuItem.ShortcutKeyDisplayString = TasView.RotateHotkeyStr;
}
private void AutoloadMenuItem_Click(object sender, EventArgs e)
private void RotateMenuItem_Click(object sender, EventArgs e)
{
Global.Config.AutoloadTAStudio ^= true;
}
private void AutoloadProjectMenuItem_Click(object sender, EventArgs e)
{
Global.Config.AutoloadTAStudioProject ^= true;
}
private void SaveWindowPositionMenuItem_Click(object sender, EventArgs e)
{
Global.Config.TAStudioSettings.SaveWindowPosition ^= true;
}
private void AlwaysOnTopMenuItem_Click(object sender, EventArgs e)
{
Global.Config.TAStudioSettings.TopMost ^= true;
TopMost = Global.Config.TAStudioSettings.TopMost;
}
private void FloatingWindowMenuItem_Click(object sender, EventArgs e)
{
Global.Config.TAStudioSettings.FloatingWindow ^= true;
RefreshFloatingWindowControl();
}
private void RestoreDefaultSettingsMenuItem_Click(object sender, EventArgs e)
{
Size = new Size(_defaultWidth, _defaultHeight);
Global.Config.TAStudioSettings.SaveWindowPosition = true;
Global.Config.TAStudioSettings.TopMost = false;
Global.Config.TAStudioSettings.FloatingWindow = false;
RefreshFloatingWindowControl();
TasView.HorizontalOrientation ^= true;
CurrentTasMovie.FlagChanges();
}
#endregion

View File

@ -16,7 +16,7 @@ using BizHawk.Client.EmuHawk.ToolExtensions;
namespace BizHawk.Client.EmuHawk
{
public partial class TAStudio : Form, IToolForm, IControlMainform
public partial class TAStudio : Form, IToolFormAutoConfig, IControlMainform
{
// TODO: UI flow that conveniently allows to start from savestate
private const string MarkerColumnName = "MarkerColumn";
@ -24,8 +24,6 @@ namespace BizHawk.Client.EmuHawk
private readonly List<TasClipboardEntry> _tasClipboard = new List<TasClipboardEntry>();
private int _defaultWidth;
private int _defaultHeight;
private MovieEndAction _originalEndAction; // The movie end behavior selected by the user (that is overridden by TAStudio)
private Dictionary<string, string> GenerateColumnNames()
{
@ -51,8 +49,6 @@ namespace BizHawk.Client.EmuHawk
TasView.QueryItemText += TasView_QueryItemText;
TasView.QueryItemBkColor += TasView_QueryItemBkColor;
TasView.QueryItemIcon += TasView_QueryItemIcon;
TopMost = Global.Config.TAStudioSettings.TopMost;
TasView.InputPaintingMode = Global.Config.TAStudioDrawInput;
TasView.PointedCellChanged += TasView_PointedCellChanged;
TasView.MultiSelect = true;
@ -278,30 +274,6 @@ namespace BizHawk.Client.EmuHawk
}
}
private void LoadConfigSettings()
{
_defaultWidth = Size.Width;
_defaultHeight = Size.Height;
if (Global.Config.TAStudioSettings.UseWindowPosition)
{
Location = Global.Config.TAStudioSettings.WindowPosition;
}
if (Global.Config.TAStudioSettings.UseWindowSize)
{
Size = Global.Config.TAStudioSettings.WindowSize;
}
}
private void SaveConfigSettings()
{
Global.Config.TAStudioSettings.Wndx = Location.X;
Global.Config.TAStudioSettings.Wndy = Location.Y;
Global.Config.TAStudioSettings.Width = Right - Left;
Global.Config.TAStudioSettings.Height = Bottom - Top;
}
private void StartAtNearestFrameAndEmulate(int frame)
{
CurrentTasMovie.SwitchToPlay();
@ -364,11 +336,6 @@ namespace BizHawk.Client.EmuHawk
SplicerStatusLabel.Text = message;
}
private void RefreshFloatingWindowControl()
{
Owner = Global.Config.TAStudioSettings.FloatingWindow ? null : GlobalWin.MainForm;
}
public void CallAddMarkerPopUp(int? frame = null)
{
var markerFrame = frame ?? TasView.LastSelectedIndex ?? Emulator.Frame;
@ -527,7 +494,6 @@ namespace BizHawk.Client.EmuHawk
private void Tastudio_Load(object sender, EventArgs e)
{
InitializeOnLoad();
LoadConfigSettings();
SetColumnsFromCurrentStickies();
if (VersionInfo.DeveloperBuild)
@ -571,7 +537,7 @@ namespace BizHawk.Client.EmuHawk
}
// Start Scenario 3: No movie, but user wants to autload their last project
else if (Global.Config.AutoloadTAStudioProject && !string.IsNullOrEmpty(Global.Config.RecentTas.MostRecent))
else if (Global.Config.RecentTas.AutoLoad && !string.IsNullOrEmpty(Global.Config.RecentTas.MostRecent))
{
var result = LoadProject(Global.Config.RecentTas.MostRecent);
if (!result)
@ -600,7 +566,6 @@ namespace BizHawk.Client.EmuHawk
if (AskSaveChanges())
{
WantsToControlStopMovie = false;
SaveConfigSettings();
GlobalWin.MainForm.StopMovie(saveChanges: false);
DisengageTastudio();
}
@ -610,12 +575,6 @@ namespace BizHawk.Client.EmuHawk
}
}
protected override void OnShown(EventArgs e)
{
RefreshFloatingWindowControl();
base.OnShown(e);
}
/// <summary>
/// This method is called everytime the Changes property is toggled on a TasMovie instance.
/// </summary>