public override void InvokeUndo(InternalTextLayerController textLayer) { textLayer.CurrentLineNumber = _startLineNumber; textLayer.TryMoveCaretTo(_startCharIndex); textLayer.StartSelect(); textLayer.CurrentLineNumber = _endLineNumber; textLayer.TryMoveCaretTo(_endCharIndex); textLayer.EndSelect(); }
private void button2_Click(object sender, EventArgs e) { //1. create text flow layer EditableTextFlowLayer flowLayer = new EditableTextFlowLayer(); // //2. MyTextEditRenderBox renderBox = new MyTextEditRenderBox(); //3. listen important event from text layer MyTextSurfaceListener listener = new MyTextSurfaceListener(); renderBox.SetTextSurfaceEventListner(listener); //4. create text layer controller //this simulate user's input InternalTextLayerController layerController = new InternalTextLayerController(renderBox, flowLayer); layerController.CurrentLineNumber = 0; layerController.TryMoveCaretTo(-1); layerController.AddCharToCurrentLine('a'); layerController.AddCharToCurrentLine('b'); layerController.AddCharToCurrentLine('C'); layerController.SplitCurrentLineIntoNewLine(); layerController.AddCharToCurrentLine('x'); layerController.AddCharToCurrentLine('Y'); //------------ layerController.CurrentLineNumber = 0; //move to line 0 again //should be 1? //------------ // StringBuilder stbuilder = new StringBuilder(); layerController.CopyAllToPlainText(stbuilder); // System.Diagnostics.Debug.WriteLine(stbuilder.ToString()); }
public override void InvokeRedo(InternalTextLayerController textLayer) { textLayer.CurrentLineNumber = _startLineNumber; textLayer.TryMoveCaretTo(_startCharIndex); if (_singleInsertTextRun != null) { textLayer.AddTextRunToCurrentLine(_singleInsertTextRun); } else { textLayer.AddTextRunsToCurrentLine(_insertingTextRuns); } }
public override void InvokeRedo(InternalTextLayerController textLayer) { textLayer.CurrentLineNumber = _startLineNumber; textLayer.TryMoveCaretTo(_startCharIndex); textLayer.DoDelete(); }
public override void InvokeUndo(InternalTextLayerController textLayer) { textLayer.CurrentLineNumber = _startLineNumber; textLayer.TryMoveCaretTo(_startCharIndex); textLayer.SplitCurrentLineIntoNewLine(); }