Make the getters of the 6 ToolFormBase props protected
and it only cost a callback and a `public new` hack
This commit is contained in:
parent
85faec638a
commit
1a020ba0f5
|
@ -127,7 +127,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top
|
||||
};
|
||||
|
||||
var mdf = new MultiDiskFileSelector(this)
|
||||
var mdf = new MultiDiskFileSelector(this, () => MainForm.CurrentlyOpenRom)
|
||||
{
|
||||
Location = UIHelper.Scale(new Point(7, 12)),
|
||||
Width = groupBox.ClientSize.Width - UIHelper.ScaleX(13),
|
||||
|
|
|
@ -9,6 +9,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
public partial class MultiDiskFileSelector : UserControl
|
||||
{
|
||||
private readonly Func<string> _getLoadedRomNameCallback;
|
||||
|
||||
private readonly ToolFormBase _parent;
|
||||
|
||||
public string SystemString { get; set; } = "";
|
||||
|
@ -26,8 +28,9 @@ namespace BizHawk.Client.EmuHawk
|
|||
OnNameChanged(EventArgs.Empty);
|
||||
}
|
||||
|
||||
public MultiDiskFileSelector(ToolFormBase parent)
|
||||
public MultiDiskFileSelector(ToolFormBase parent, Func<string> getLoadedRomNameCallback)
|
||||
{
|
||||
_getLoadedRomNameCallback = getLoadedRomNameCallback;
|
||||
_parent = parent;
|
||||
InitializeComponent();
|
||||
PathBox.TextChanged += HandleLabelTextChanged;
|
||||
|
@ -123,7 +126,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private void UseCurrentRomButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
PathBox.Text = _parent.MainForm.CurrentlyOpenRom;
|
||||
PathBox.Text = _getLoadedRomNameCallback();
|
||||
}
|
||||
|
||||
private void DualGBFileSelector_Load(object sender, EventArgs e)
|
||||
|
@ -133,9 +136,10 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
public void UpdateValues()
|
||||
{
|
||||
var loadedRomName = _getLoadedRomNameCallback();
|
||||
UseCurrentRomButton.Enabled =
|
||||
!string.IsNullOrEmpty(_parent.MainForm.CurrentlyOpenRom)
|
||||
&& !_parent.MainForm.CurrentlyOpenRom.Contains(".xml"); // Can't already be an xml
|
||||
!string.IsNullOrEmpty(loadedRomName)
|
||||
&& !loadedRomName.Contains(".xml"); // Can't already be an xml
|
||||
}
|
||||
|
||||
private void PathBox_TextChanged(object sender, EventArgs e)
|
||||
|
|
|
@ -17,6 +17,10 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
public override bool BlocksInputWhenFocused => IsInMenuLoop;
|
||||
|
||||
public new IMainFormForTools MainForm => base.MainForm;
|
||||
|
||||
public new IMovieSession MovieSession => base.MovieSession;
|
||||
|
||||
// TODO: UI flow that conveniently allows to start from savestate
|
||||
public ITasMovie CurrentTasMovie => MovieSession.Movie as ITasMovie;
|
||||
|
||||
|
|
|
@ -10,15 +10,17 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
public class ToolFormBase : FormBase, IToolForm
|
||||
{
|
||||
public ToolManager Tools { get; set; }
|
||||
public ToolManager Tools { protected get; set; }
|
||||
|
||||
public DisplayManager DisplayManager { get; set; }
|
||||
public DisplayManager DisplayManager { protected get; set; }
|
||||
|
||||
public InputManager InputManager { get; set; }
|
||||
public IMainFormForTools MainForm { get; set; }
|
||||
public InputManager InputManager { protected get; set; }
|
||||
|
||||
public IMovieSession MovieSession { get; set; }
|
||||
public IGameInfo Game { get; set; }
|
||||
public IMainFormForTools MainForm { protected get; set; }
|
||||
|
||||
public IMovieSession MovieSession { protected get; set; }
|
||||
|
||||
public IGameInfo Game { protected get; set; }
|
||||
|
||||
public virtual bool AskSaveChanges() => true;
|
||||
|
||||
|
|
Loading…
Reference in New Issue