// Token: 0x060072A9 RID: 29353 RVA: 0x0020EF7C File Offset: 0x0020D17C internal override bool IsAtCaretUnitBoundary(ITextPointer position) { if (!this.IsValid) { throw new InvalidOperationException(SR.Get("TextViewInvalidLayout")); } ValidationHelper.VerifyPosition(this._textContainer, position, "position"); int lineFromPosition = TextParagraphView.GetLineFromPosition(this.Lines, position); int startPositionCP = this.Lines[lineFromPosition].StartPositionCP; return(this._owner.IsAtCaretUnitBoundary(position, startPositionCP, lineFromPosition)); }
// Token: 0x060072AB RID: 29355 RVA: 0x0020F058 File Offset: 0x0020D258 internal override ITextPointer GetBackspaceCaretUnitPosition(ITextPointer position) { if (!this.IsValid) { throw new InvalidOperationException(SR.Get("TextViewInvalidLayout")); } ValidationHelper.VerifyPosition(this._textContainer, position, "position"); int lineFromPosition = TextParagraphView.GetLineFromPosition(this.Lines, position); int startPositionCP = this.Lines[lineFromPosition].StartPositionCP; ITextPointer backspaceCaretUnitPosition = this._owner.GetBackspaceCaretUnitPosition(position, startPositionCP, lineFromPosition); Invariant.Assert(backspaceCaretUnitPosition == null || backspaceCaretUnitPosition.HasValidLayout); return(backspaceCaretUnitPosition); }
// Token: 0x060072AC RID: 29356 RVA: 0x0020F0D0 File Offset: 0x0020D2D0 internal override TextSegment GetLineRange(ITextPointer position) { if (!this.IsValid) { throw new InvalidOperationException(SR.Get("TextViewInvalidLayout")); } if (position == null) { throw new ArgumentNullException("position"); } ValidationHelper.VerifyPosition(this._textContainer, position, "position"); ReadOnlyCollection <LineResult> lines = this.Lines; int lineFromPosition = TextParagraphView.GetLineFromPosition(lines, position); return(new TextSegment(lines[lineFromPosition].StartPosition, lines[lineFromPosition].GetContentEndPosition(), true)); }
// Token: 0x060072A8 RID: 29352 RVA: 0x0020EE9C File Offset: 0x0020D09C internal override ITextPointer GetPositionAtNextLine(ITextPointer position, double suggestedX, int count, out double newSuggestedX, out int linesMoved) { if (!this.IsValid) { throw new InvalidOperationException(SR.Get("TextViewInvalidLayout")); } if (position == null) { throw new ArgumentNullException("position"); } ValidationHelper.VerifyPosition(this._textContainer, position, "position"); newSuggestedX = suggestedX; linesMoved = 0; if (count == 0) { return(position); } ReadOnlyCollection <LineResult> lines = this.Lines; int num = TextParagraphView.GetLineFromPosition(lines, position); if (num < 0 || num >= lines.Count) { throw new ArgumentOutOfRangeException("position"); } int num2 = num; num = Math.Max(0, num + count); num = Math.Min(lines.Count - 1, num); linesMoved = num - num2; ITextPointer textPointer; if (linesMoved == 0) { textPointer = position; } else if (!DoubleUtil.IsNaN(suggestedX)) { textPointer = lines[num].GetTextPositionFromDistance(suggestedX); } else { textPointer = lines[num].StartPosition.CreatePointer(LogicalDirection.Forward); } Invariant.Assert(textPointer == null || textPointer.HasValidLayout); return(textPointer); }