using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Tango.Editors { /// /// Represents an undo/redo state provider. /// public interface IUndoRedoStatesProvider { /// /// Occurs when an Undo/Redo state was executed. /// event EventHandler StateExecuted; /// /// Gets the undo states. /// Stack UndoStates { get; } /// /// Gets the redo states. /// Stack RedoStates { get; } /// /// Gets a value indicating whether this instance can undo. /// bool CanUndo { get; } /// /// Gets a value indicating whether this instance can redo. /// bool CanRedo { get; } /// /// Prepares the state of the undo. /// void PrepareUndoState(); /// /// Creates the a new undo/redo state. /// /// IUndoRedoState CreateUndoRedoState(); /// /// Executes the an undo/redo state. /// /// The state. void ExecuteState(IUndoRedoState state); /// /// Commits the state created by . /// void CommitUndoState(); /// /// Performs an undo operation. /// void Undo(); /// /// Performs a redo operation. /// void Redo(); /// /// Resets undo and redo states. /// void Reset(); } }