|
/* --------------------------------------------------------------------------------------------------------------
* I Software Innovations
* --------------------------------------------------------------------------------------------------------------
* SVG Artieste 2.0
* --------------------------------------------------------------------------------------------------------------
* File : UndoRedo.cs
* Author : ajaysbritto@yahoo.com
* Date : 20/03/2010
* --------------------------------------------------------------------------------------------------------------
* Change Log
* --------------------------------------------------------------------------------------------------------------
* Author Comments
*/
using System.Collections.Generic;
namespace Draw.Command
{
public class UndoRedo
{
private readonly Stack<ICommand> _undoCommands = new Stack<ICommand>();
private readonly Stack<ICommand> _redoCommands = new Stack<ICommand>();
public void Undo()
{
if (_undoCommands.Count > 0)
{
ICommand command = _undoCommands.Pop();
command.UnExecute();
_redoCommands.Push(command);
}
}
public void Redo()
{
if (_redoCommands.Count > 0)
{
ICommand command = _redoCommands.Pop();
command.Execute();
_undoCommands.Push(command);
}
}
public void AddCommand(ICommand cmd)
{
_undoCommands.Push(cmd);
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
He is a Microsoft technology enthusiast, who wish to create applications which others find useful.He loves making small tools and getting involved in architecting bigger systems.
He is currently working as a professional developer in a software development firm in .Net technologies.
He likes reading technical blogs, contributing to opensource and most importantly, enjoying life.
His ambition is to be an impressive software maker.