/// <summary> /// Outdent the active selection one step /// </summary> public void Outdent(string Pattern) { if (!IsValid) return; Row xtr = null; var ActionGroup = new UndoBlockCollection(); for (int i = LogicalBounds.FirstRow; i <= LogicalBounds.LastRow; i++) { xtr = Control.Document[i]; var b = new UndoBlock(); b.Action = UndoAction.DeleteRange; b.Position.X = 0; b.Position.Y = i; ActionGroup.Add(b); string s = xtr.Text; if (s.StartsWith(Pattern)) { b.Text = s.Substring(0, Pattern.Length); s = s.Substring(Pattern.Length); } xtr.Text = s; } if (ActionGroup.Count > 0) Control.Document.AddToUndoList(ActionGroup); Bounds = LogicalBounds; Bounds.FirstColumn = 0; Bounds.LastColumn = xtr.Text.Length; Control.Caret.Position.X = LogicalBounds.LastColumn; Control.Caret.Position.Y = LogicalBounds.LastRow; }
private void InsertText(string text) { Caret.CropPosition(); if (Selection.IsValid) { Selection.DeleteSelection(); InsertText(text); } else { if (!_OverWrite || text.Length > 1) { TextPoint p = Document.InsertText(text, Caret.Position.X, Caret.Position.Y); Caret.CurrentRow.Parse(true); if (text.Length == 1) { Caret.SetPos(p); Caret.CaretMoved(false); } else { //Document.i = true; Document.ResetVisibleRows(); Caret.SetPos(p); Caret.CaretMoved(false); } } else { var r = new TextRange { FirstColumn = Caret.Position.X, FirstRow = Caret.Position.Y, LastColumn = (Caret.Position.X + 1), LastRow = Caret.Position.Y }; var ag = new UndoBlockCollection(); var b = new UndoBlock { Action = UndoAction.DeleteRange, Text = Document.GetRange(r), Position = Caret.Position }; ag.Add(b); Document.DeleteRange(r, false); b = new UndoBlock { Action = UndoAction.InsertRange }; string NewChar = text; b.Text = NewChar; b.Position = Caret.Position; ag.Add(b); Document.AddToUndoList(ag); Document.InsertText(NewChar, Caret.Position.X, Caret.Position.Y, false); Caret.CurrentRow.Parse(true); Caret.MoveRight(false); } } // this.ScrollIntoView (); }
public void Indent(string Pattern) { if (!IsValid) return; Row xtr = null; var ActionGroup = new UndoBlockCollection(); for (int i = LogicalBounds.FirstRow; i <= LogicalBounds.LastRow; i++) { xtr = Control.Document[i]; xtr.Text = Pattern + xtr.Text; var b = new UndoBlock(); b.Action = UndoAction.InsertRange; b.Text = Pattern; b.Position.X = 0; b.Position.Y = i; ActionGroup.Add(b); } if (ActionGroup.Count > 0) Control.Document.AddToUndoList(ActionGroup); Bounds = LogicalBounds; Bounds.FirstColumn = 0; Bounds.LastColumn = xtr.Text.Length; Control.Caret.Position.X = LogicalBounds.LastColumn; Control.Caret.Position.Y = LogicalBounds.LastRow; }