public TextEditControl() : base() { InitializeComponent(); undo = new TextUndoTracker(this, true/*clearRedo*/); this.ChangeListener = undo; }
public void Undo() { if (UndoAvailable) { if (redo == null) { redo = new TextUndoTracker(this, false/*clearRedo*/); } using (IDisposable redoGroup = redo.OpenGroup()) { try { this.ChangeListener = redo; undo.Undo(); } finally { this.ChangeListener = undo; } } ScrollToSelection(); } }
public void Redo() { if (RedoAvailable) { TextUndoTracker localRedo = redo; // undo will nuke it using (IDisposable undoGroup = undo.OpenGroup()) { localRedo.Undo(); } redo = localRedo; ScrollToSelection(); } }
public void ClearUndoRedo() { if (undo != null) { undo.Clear(); } redo = null; }
public UndoGroupCloser(TextUndoTracker tracker) { this.tracker = tracker; }