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