namespace BizHawk.Client.EmuHawk
{
public interface IControlMainform
{
bool WantsToControlSavestates { get; }
void SaveState();
void LoadState();
void SaveStateAs();
void LoadStateAs();
void SaveQuickSave(int slot);
void LoadQuickSave(int slot);
///
/// Overrides the select slot method
///
/// Returns whether the function is handled.
/// If false, the mainform should continue with its logic
bool SelectSlot(int slot);
bool PreviousSlot();
bool NextSlot();
bool WantsToControlReadOnly { get; }
///
/// Function that is called by Mainform instead of using its own code
/// when a Tool sets WantsToControlReadOnly.
/// Should not be called directly.
///
void ToggleReadOnly();
bool WantsToControlStopMovie { get; }
///
/// Function that is called by Mainform instead of using its own code
/// when a Tool sets WantsToControlStopMovie.
/// Should not be called directly.
/// Like MainForm's StopMovie(), saving the movie is part of this function's responsibility.
///
void StopMovie(bool suppressSave);
bool WantsToControlRewind { get; }
void CaptureRewind();
///
/// Function that is called by Mainform instead of using its own code
/// when a Tool sets WantsToControlRewind
/// Returns whether or not the rewind action actually occured
///
bool Rewind();
bool WantsToControlRestartMovie { get; }
void RestartMovie();
}
}