public void Redo(Shapes sh_s) { if (stRedo.Count > 0) { StateMem state = stRedo.Pop(); //повторяем удаление if (state.Action == Constant.del) { sh_s.Del(state.Sh, true); } //повторяем добавление if (state.Action == Constant.add) { sh_s.Add(state.Sh, true); } //заполнить стэк рэдо stUndo.Push(state); } }
public void Undo(Shapes sh_s) { if (stUndo.Count > 0) { StateMem state = stUndo.Pop(); //удаленный объект восстанавливаем if (state.Action == Constant.del) { sh_s.Add(state.Sh, true); } // добавленный объект удаляем if (state.Action == Constant.add) { sh_s.Del(state.Sh, true); } //внести в стэк Redo отмененное действие stRedo.Push(state); } }