1 write to _lineMetrics
PresentationFramework (1)
MS\Internal\Documents\TextBoxView.cs (1)
418_lineMetrics = new List<LineRecord>(1);
122 references to _lineMetrics
PresentationFramework (122)
MS\Internal\Documents\TextBoxView.cs (122)
416if (_lineMetrics == null) 442if (_lineMetrics.Count == 0 || constraintschanged) 457_lineMetrics.Count == 1 && _lineMetrics[0].EndOffset == 0) 459_lineMetrics.Clear(); 475_lineMetrics.Clear(); 484Invariant.Assert(_lineMetrics.Count >= 1); 515if (_lineMetrics == null || _lineMetrics.Count == 0) 697int startOffset = Math.Min(_lineMetrics[_lineMetrics.Count - 1].EndOffset, startPosition.Offset); 698int endOffset = Math.Min(_lineMetrics[_lineMetrics.Count - 1].EndOffset, endPosition.Offset); 716bool firstLinePartiallyCovered = _lineMetrics[firstLineIndex].Offset < startOffset || 717_lineMetrics[firstLineIndex].EndOffset > endOffset; 718bool lastLinePartiallyCovered = _lineMetrics[lastLineIndex].Offset < startOffset || 719_lineMetrics[lastLineIndex].EndOffset > endOffset; 741double contentOffset = GetContentOffset(_lineMetrics[lineIndex].Width, alignment); 742Rect rect = new Rect(contentOffset, lineIndex * _lineHeight, _lineMetrics[lineIndex].Width, _lineHeight); 745ITextPointer endOfLinePosition = _host.TextContainer.CreatePointerAtOffset(_lineMetrics[lineIndex].EndOffset, LogicalDirection.Backward); 775int nextLineIndex = Math.Max(0, Math.Min(_lineMetrics.Count - 1, lineIndex + count)); 785nextLinePosition = _host.TextContainer.CreatePointerAtOffset(_lineMetrics[lineIndex + linesMoved].Offset, LogicalDirection.Forward); 831if (position.Offset > _lineMetrics[lineIndex].Offset) 890if (nextCharacterHit.FirstCharacterIndex + nextCharacterHit.TrailingLength == _lineMetrics[lineIndex].EndOffset && 894if (lineIndex == _lineMetrics.Count - 1) 904else if (nextCharacterHit.FirstCharacterIndex + nextCharacterHit.TrailingLength == _lineMetrics[lineIndex].Offset && 953if (backspaceCharacterHit.FirstCharacterIndex + backspaceCharacterHit.TrailingLength == _lineMetrics[lineIndex].Offset) 986ITextPointer start = _host.TextContainer.CreatePointerAtOffset(_lineMetrics[lineIndex].Offset, LogicalDirection.Forward); 987ITextPointer end = _host.TextContainer.CreatePointerAtOffset(_lineMetrics[lineIndex].Offset + _lineMetrics[lineIndex].ContentLength, LogicalDirection.Forward); 1107int lastValidOffset = _lineMetrics[_lineMetrics.Count - 1].EndOffset; 1119int newLastValidOffset = _lineMetrics[_lineMetrics.Count - 1].EndOffset; 1156if (_lineMetrics != null) 1158_lineMetrics.Clear(); 1180int max = _lineMetrics.Count; 1182Invariant.Assert(_lineMetrics.Count >= 1); 1189LineRecord record = _lineMetrics[index]; 1201if (offset == record.EndOffset && index < _lineMetrics.Count - 1) 1305if (_lineMetrics != null) 1307ITextPointer start = _host.TextContainer.CreatePointerAtOffset(_lineMetrics[0].Offset, LogicalDirection.Backward); 1308ITextPointer end = _host.TextContainer.CreatePointerAtOffset(_lineMetrics[_lineMetrics.Count - 1].EndOffset, LogicalDirection.Forward); 1536if (_lineMetrics.Count == 0) 1577LineRecord metrics = _lineMetrics[lineIndex]; 1645Invariant.Assert(_lineMetrics.Count >= 1); 1653if (point.Y >= _lineHeight * _lineMetrics.Count) 1655return snapToText ? _lineMetrics.Count - 1 : -1; 1662int max = _lineMetrics.Count; 1667LineRecord record = _lineMetrics[index]; 1734LineRecord metrics = _lineMetrics[lineIndex]; 1887LineRecord metrics = _lineMetrics[lineIndex]; 2049int startOffset = Math.Max(_lineMetrics[lineIndex].Offset, unclippedStartOffset); 2050int endOffset = Math.Min(_lineMetrics[lineIndex].EndOffset, unclippedEndOffset); 2057if (unclippedStartOffset == _lineMetrics[lineIndex].EndOffset) 2083Invariant.Assert(endOffset == _lineMetrics[lineIndex].Offset || 2084endOffset == _lineMetrics[lineIndex].Offset + _lineMetrics[lineIndex].ContentLength); 2102if (unclippedEndOffset >= _lineMetrics[lineIndex].EndOffset) 2108double contentOffset = GetContentOffset(_lineMetrics[lineIndex].Width, alignment); 2109Rect rect = new Rect(contentOffset + _lineMetrics[lineIndex].Width, lineIndex * _lineHeight, endOfParaGlyphWidth, _lineHeight); 2135int lineStartOffset = _lineMetrics[lineIndex].Offset; 2136int lineEndOffset = _lineMetrics[lineIndex].EndOffset; 2153if (unclippedStartOffset == _lineMetrics[lineIndex].EndOffset) 2165Invariant.Assert(endOffset == _lineMetrics[lineIndex].Offset || 2166endOffset == _lineMetrics[lineIndex].Offset + _lineMetrics[lineIndex].ContentLength); 2181if (unclippedEndOffset >= _lineMetrics[lineIndex].EndOffset) 2187double contentOffset = GetContentOffset(_lineMetrics[lineIndex].Width, alignment); 2188Rect rect = new Rect(contentOffset + _lineMetrics[lineIndex].Width, 0, endOfParaGlyphWidth, _lineHeight); 2208firstLineIndex = Math.Max(0, Math.Min(firstLineIndex, _lineMetrics.Count - 1)); 2209lastLineIndex = Math.Max(0, Math.Min(lastLineIndex, _lineMetrics.Count - 1)); 2215lastLineIndex = _lineMetrics.Count - 1; 2235if (_lineMetrics.Count == 0) 2243lineOffset = _lineMetrics[_lineMetrics.Count - 1].EndOffset; 2277_lineMetrics.Add(new LineRecord(lineOffset, line)); 2333if (range.StartIndex > _lineMetrics[_lineMetrics.Count - 1].EndOffset) 2353if (range.StartIndex > _lineMetrics[_lineMetrics.Count - 1].EndOffset) 2392for (int i = lineIndex + 1; i < _lineMetrics.Count; i++) 2394_lineMetrics[i].Offset += delta; 2411lineOffset = _lineMetrics[lineIndex].Offset; 2424_lineMetrics[lineIndex] = new LineRecord(lineOffset, line); 2451if (endOffset > _lineMetrics[_lineMetrics.Count - 1].EndOffset) 2454endOffset = _lineMetrics[_lineMetrics.Count - 1].EndOffset; 2466for (int i = lastLineIndex + 1; i < _lineMetrics.Count; i++) 2468_lineMetrics[i].Offset += delta; 2485lineOffset = _lineMetrics[lineIndex].Offset; 2495(range.StartIndex > lineOffset || range.StartIndex + -delta < _lineMetrics[lineIndex].EndOffset)) 2502_lineMetrics[lineIndex] = new LineRecord(lineOffset, line); 2513_lineMetrics.RemoveRange(lineIndex, lastLineIndex - lineIndex + 1); 2528int originalEndOffset = _lineMetrics[lineIndex].EndOffset; 2529lineOffset = _lineMetrics[lineIndex].Offset; 2535_lineMetrics[lineIndex] = new LineRecord(lineOffset, line); 2542if (originalEndOffset != _lineMetrics[lineIndex].EndOffset) 2559(lineIndex == _lineMetrics.Count || 2561lineOffset != _lineMetrics[lineIndex].Offset)) 2563if (lineIndex < _lineMetrics.Count && 2564lineOffset >= _lineMetrics[lineIndex].EndOffset) 2571_lineMetrics.RemoveAt(lineIndex); // does not scale! 2582if (lineIndex == _lineMetrics.Count || 2583lineOffset + line.Length <= _lineMetrics[lineIndex].Offset) 2588_lineMetrics.Insert(lineIndex, record); 2597Invariant.Assert(lineOffset < _lineMetrics[lineIndex].EndOffset); 2599var curLine = _lineMetrics[lineIndex]; 2618_lineMetrics[lineIndex] = record; 2635if (endOfParagraph && lineIndex < _lineMetrics.Count) 2637int count = _lineMetrics.Count - lineIndex; 2638_lineMetrics.RemoveRange(lineIndex, count); 2649for (int i = 0; i < _lineMetrics.Count; i++) 2651desiredSize.Width = Math.Max(desiredSize.Width, _lineMetrics[i].Width); 2653desiredSize.Height = _lineMetrics.Count * _lineHeight; 2925_lineMetrics != null && 2926_lineMetrics[_lineMetrics.Count - 1].EndOffset >= position.Offset; 2987int viewportStart = _lineMetrics[firstLineIndex].Offset; 2988int viewportEnd = _lineMetrics[lastLineIndex].EndOffset;