コード例 #1
0
ファイル: OperationManager.cs プロジェクト: TinyTany/MADCA
 public void AddOperation(Operation op)
 {
     stackUndo.Push(op);
     stackRedo.Clear();
     if (!undoStatus)
     {
         undoStatus = true;
         UndoStatusChanged?.Invoke(undoStatus);
     }
     if (redoStatus)
     {
         redoStatus = false;
         RedoStatusChanged?.Invoke(redoStatus);
     }
 }
コード例 #2
0
ファイル: OperationManager.cs プロジェクト: TinyTany/MADCA
 public void Redo()
 {
     if (stackRedo.Any())
     {
         var op = stackRedo.Pop();
         op.Invoke();
         stackUndo.Push(op);
         if (!undoStatus)
         {
             undoStatus = true;
             UndoStatusChanged?.Invoke(undoStatus);
         }
         if (redoStatus && !stackRedo.Any())
         {
             redoStatus = false;
             RedoStatusChanged?.Invoke(redoStatus);
         }
     }
 }