1 write to _lineMetrics
PresentationFramework (1)
MS\Internal\Documents\TextBoxView.cs (1)
373_lineMetrics = new List<LineRecord>(1);
122 references to _lineMetrics
PresentationFramework (122)
MS\Internal\Documents\TextBoxView.cs (122)
371if (_lineMetrics == null) 397if (_lineMetrics.Count == 0 || constraintschanged) 412_lineMetrics.Count == 1 && _lineMetrics[0].EndOffset == 0) 414_lineMetrics.Clear(); 430_lineMetrics.Clear(); 439Invariant.Assert(_lineMetrics.Count >= 1); 470if (_lineMetrics == null || _lineMetrics.Count == 0) 652int startOffset = Math.Min(_lineMetrics[_lineMetrics.Count - 1].EndOffset, startPosition.Offset); 653int endOffset = Math.Min(_lineMetrics[_lineMetrics.Count - 1].EndOffset, endPosition.Offset); 671bool firstLinePartiallyCovered = _lineMetrics[firstLineIndex].Offset < startOffset || 672_lineMetrics[firstLineIndex].EndOffset > endOffset; 673bool lastLinePartiallyCovered = _lineMetrics[lastLineIndex].Offset < startOffset || 674_lineMetrics[lastLineIndex].EndOffset > endOffset; 696double contentOffset = GetContentOffset(_lineMetrics[lineIndex].Width, alignment); 697Rect rect = new Rect(contentOffset, lineIndex * _lineHeight, _lineMetrics[lineIndex].Width, _lineHeight); 700ITextPointer endOfLinePosition = _host.TextContainer.CreatePointerAtOffset(_lineMetrics[lineIndex].EndOffset, LogicalDirection.Backward); 730int nextLineIndex = Math.Max(0, Math.Min(_lineMetrics.Count - 1, lineIndex + count)); 740nextLinePosition = _host.TextContainer.CreatePointerAtOffset(_lineMetrics[lineIndex + linesMoved].Offset, LogicalDirection.Forward); 786if (position.Offset > _lineMetrics[lineIndex].Offset) 845if (nextCharacterHit.FirstCharacterIndex + nextCharacterHit.TrailingLength == _lineMetrics[lineIndex].EndOffset && 849if (lineIndex == _lineMetrics.Count - 1) 859else if (nextCharacterHit.FirstCharacterIndex + nextCharacterHit.TrailingLength == _lineMetrics[lineIndex].Offset && 908if (backspaceCharacterHit.FirstCharacterIndex + backspaceCharacterHit.TrailingLength == _lineMetrics[lineIndex].Offset) 941ITextPointer start = _host.TextContainer.CreatePointerAtOffset(_lineMetrics[lineIndex].Offset, LogicalDirection.Forward); 942ITextPointer end = _host.TextContainer.CreatePointerAtOffset(_lineMetrics[lineIndex].Offset + _lineMetrics[lineIndex].ContentLength, LogicalDirection.Forward); 1062int lastValidOffset = _lineMetrics[_lineMetrics.Count - 1].EndOffset; 1074int newLastValidOffset = _lineMetrics[_lineMetrics.Count - 1].EndOffset; 1113if (_lineMetrics != null) 1115_lineMetrics.Clear(); 1137int max = _lineMetrics.Count; 1139Invariant.Assert(_lineMetrics.Count >= 1); 1146LineRecord record = _lineMetrics[index]; 1158if (offset == record.EndOffset && index < _lineMetrics.Count - 1) 1262if (_lineMetrics != null) 1264ITextPointer start = _host.TextContainer.CreatePointerAtOffset(_lineMetrics[0].Offset, LogicalDirection.Backward); 1265ITextPointer end = _host.TextContainer.CreatePointerAtOffset(_lineMetrics[_lineMetrics.Count - 1].EndOffset, LogicalDirection.Forward); 1493if (_lineMetrics.Count == 0) 1534LineRecord metrics = _lineMetrics[lineIndex]; 1602Invariant.Assert(_lineMetrics.Count >= 1); 1610if (point.Y >= _lineHeight * _lineMetrics.Count) 1612return snapToText ? _lineMetrics.Count - 1 : -1; 1619int max = _lineMetrics.Count; 1624LineRecord record = _lineMetrics[index]; 1691LineRecord metrics = _lineMetrics[lineIndex]; 1844LineRecord metrics = _lineMetrics[lineIndex]; 2006int startOffset = Math.Max(_lineMetrics[lineIndex].Offset, unclippedStartOffset); 2007int endOffset = Math.Min(_lineMetrics[lineIndex].EndOffset, unclippedEndOffset); 2014if (unclippedStartOffset == _lineMetrics[lineIndex].EndOffset) 2040Invariant.Assert(endOffset == _lineMetrics[lineIndex].Offset || 2041endOffset == _lineMetrics[lineIndex].Offset + _lineMetrics[lineIndex].ContentLength); 2059if (unclippedEndOffset >= _lineMetrics[lineIndex].EndOffset) 2065double contentOffset = GetContentOffset(_lineMetrics[lineIndex].Width, alignment); 2066Rect rect = new Rect(contentOffset + _lineMetrics[lineIndex].Width, lineIndex * _lineHeight, endOfParaGlyphWidth, _lineHeight); 2092int lineStartOffset = _lineMetrics[lineIndex].Offset; 2093int lineEndOffset = _lineMetrics[lineIndex].EndOffset; 2110if (unclippedStartOffset == _lineMetrics[lineIndex].EndOffset) 2122Invariant.Assert(endOffset == _lineMetrics[lineIndex].Offset || 2123endOffset == _lineMetrics[lineIndex].Offset + _lineMetrics[lineIndex].ContentLength); 2138if (unclippedEndOffset >= _lineMetrics[lineIndex].EndOffset) 2144double contentOffset = GetContentOffset(_lineMetrics[lineIndex].Width, alignment); 2145Rect rect = new Rect(contentOffset + _lineMetrics[lineIndex].Width, 0, endOfParaGlyphWidth, _lineHeight); 2165firstLineIndex = Math.Max(0, Math.Min(firstLineIndex, _lineMetrics.Count - 1)); 2166lastLineIndex = Math.Max(0, Math.Min(lastLineIndex, _lineMetrics.Count - 1)); 2172lastLineIndex = _lineMetrics.Count - 1; 2192if (_lineMetrics.Count == 0) 2200lineOffset = _lineMetrics[_lineMetrics.Count - 1].EndOffset; 2234_lineMetrics.Add(new LineRecord(lineOffset, line)); 2290if (range.StartIndex > _lineMetrics[_lineMetrics.Count - 1].EndOffset) 2310if (range.StartIndex > _lineMetrics[_lineMetrics.Count - 1].EndOffset) 2349for (int i = lineIndex + 1; i < _lineMetrics.Count; i++) 2351_lineMetrics[i].Offset += delta; 2368lineOffset = _lineMetrics[lineIndex].Offset; 2381_lineMetrics[lineIndex] = new LineRecord(lineOffset, line); 2408if (endOffset > _lineMetrics[_lineMetrics.Count - 1].EndOffset) 2411endOffset = _lineMetrics[_lineMetrics.Count - 1].EndOffset; 2423for (int i = lastLineIndex + 1; i < _lineMetrics.Count; i++) 2425_lineMetrics[i].Offset += delta; 2442lineOffset = _lineMetrics[lineIndex].Offset; 2452(range.StartIndex > lineOffset || range.StartIndex + -delta < _lineMetrics[lineIndex].EndOffset)) 2459_lineMetrics[lineIndex] = new LineRecord(lineOffset, line); 2470_lineMetrics.RemoveRange(lineIndex, lastLineIndex - lineIndex + 1); 2485int originalEndOffset = _lineMetrics[lineIndex].EndOffset; 2486lineOffset = _lineMetrics[lineIndex].Offset; 2492_lineMetrics[lineIndex] = new LineRecord(lineOffset, line); 2499if (originalEndOffset != _lineMetrics[lineIndex].EndOffset) 2516(lineIndex == _lineMetrics.Count || 2518lineOffset != _lineMetrics[lineIndex].Offset)) 2520if (lineIndex < _lineMetrics.Count && 2521lineOffset >= _lineMetrics[lineIndex].EndOffset) 2528_lineMetrics.RemoveAt(lineIndex); // does not scale! 2539if (lineIndex == _lineMetrics.Count || 2540lineOffset + line.Length <= _lineMetrics[lineIndex].Offset) 2545_lineMetrics.Insert(lineIndex, record); 2554Invariant.Assert(lineOffset < _lineMetrics[lineIndex].EndOffset); 2556var curLine = _lineMetrics[lineIndex]; 2575_lineMetrics[lineIndex] = record; 2592if (endOfParagraph && lineIndex < _lineMetrics.Count) 2594int count = _lineMetrics.Count - lineIndex; 2595_lineMetrics.RemoveRange(lineIndex, count); 2606for (int i = 0; i < _lineMetrics.Count; i++) 2608desiredSize.Width = Math.Max(desiredSize.Width, _lineMetrics[i].Width); 2610desiredSize.Height = _lineMetrics.Count * _lineHeight; 2882_lineMetrics != null && 2883_lineMetrics[_lineMetrics.Count - 1].EndOffset >= position.Offset; 2944int viewportStart = _lineMetrics[firstLineIndex].Offset; 2945int viewportEnd = _lineMetrics[lastLineIndex].EndOffset;