/// <summary> /// 記録されている操作をクリアします。 /// </summary> public void Clear() { UndoStack.Clear(); RedoStack.Clear(); LastCommittedOperation = null; OperationHistoryChanged?.Invoke(this, EventArgs.Empty); }
/// <summary> /// 直後の操作をやり直します。 /// </summary> public void Redo() { IOperation op = RedoStack.Pop(); op.Redo(); UndoStack.Push(op); OperationHistoryChanged?.Invoke(this, EventArgs.Empty); }
/// <summary> /// 新たな操作を記録します。 /// </summary> /// <param name="op">記録する操作</param> public void Push(IOperation op) { UndoStack.Push(op); RedoStack.Clear(); OperationHistoryChanged?.Invoke(this, EventArgs.Empty); }