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 InvokeUndo(InternalTextLayerController textLayer) { textLayer.CurrentLineNumber = _startLineNumber; textLayer.TryMoveCaretTo(_startCharIndex); textLayer.SplitCurrentLineIntoNewLine(); }