Exemple #1
0
 public override void InvokeUndo(InternalTextLayerController textLayer)
 {
     textLayer.CurrentLineNumber = _startLineNumber;
     textLayer.TryMoveCaretTo(_startCharIndex);
     textLayer.StartSelect();
     textLayer.CurrentLineNumber = _endLineNumber;
     textLayer.TryMoveCaretTo(_endCharIndex);
     textLayer.EndSelect();
 }
Exemple #2
0
        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());
        }
Exemple #3
0
 public override void InvokeRedo(InternalTextLayerController textLayer)
 {
     textLayer.CurrentLineNumber = _startLineNumber;
     textLayer.TryMoveCaretTo(_startCharIndex);
     if (_singleInsertTextRun != null)
     {
         textLayer.AddTextRunToCurrentLine(_singleInsertTextRun);
     }
     else
     {
         textLayer.AddTextRunsToCurrentLine(_insertingTextRuns);
     }
 }
Exemple #4
0
 public override void InvokeRedo(InternalTextLayerController textLayer)
 {
     textLayer.CurrentLineNumber = _startLineNumber;
     textLayer.TryMoveCaretTo(_startCharIndex);
     textLayer.DoDelete();
 }
Exemple #5
0
 public override void InvokeUndo(InternalTextLayerController textLayer)
 {
     textLayer.CurrentLineNumber = _startLineNumber;
     textLayer.TryMoveCaretTo(_startCharIndex);
     textLayer.SplitCurrentLineIntoNewLine();
 }