namespace PKHeX.Core
{
///
/// Simple interface representing a viewer.
///
public interface IPKMView
{
///
/// Fetches the currently loaded data from the viewer.
///
PKM Data { get; }
///
/// Indicates if the Viewer supports using Unicode characters or not.
///
bool Unicode { get; }
///
/// Indicates if the Viewer's controls have been fully initialized after a reload.
///
bool FieldsInitialized { get; }
///
/// Indicates if the Viewer is providing extra flexibility or not.
///
bool HaX { get; }
///
/// Indicates if the Viewer's controls are changing their values and should avoid triggering other updates.
///
bool ChangingFields { get; set; }
///
/// Fetches the currently loaded data from the viewer by finishing any pending changes or auto-modifications.
///
/// Cause the viewer to do extra actions to force validation of its children.
/// Prepared data from the viewer.
PKM PreparePKM(bool click = true);
///
/// Loads a given data to the viewer.
///
/// Pokémon data to load.
/// Cause the viewer to give focus to itself.
/// Cause the viewer to skip converting the data. Faster if it is known that the format is the same as the previous format.
void PopulateFields(PKM pk, bool focus = true, bool skipConversionCheck = false);
}
}