|
|
|
|
|
|
: (this._width - this._lineWidths[lineNumber]) / (words.Count - 1); |
|
|
|
|
|
|
|
this._computeLineStyleRuns(lineStyleRuns, lineRange, ref styleRunIndex, out int totalTextCount, out int maxTextCount); |
|
|
|
|
|
|
|
bool mayConsiderEllipsis = lineNumber == lineLimit - 1 || this._paragraphStyle.maxLines == null; |
|
|
|
int ellipsisLength = this._paragraphStyle.ellipsis.Length; |
|
|
|
maxTextCount = mayConsiderEllipsis ? maxTextCount + ellipsisLength : maxTextCount; |
|
|
|
PaintRecord[] paintRecords = new PaintRecord[lineStyleRuns.Count]; |
|
|
|
bool mayConsiderEllipsis = lineNumber == lineLimit - 1 || this._paragraphStyle.maxLines == null; |
|
|
|
int ellipsisLength = this._paragraphStyle.ellipsis.Length; |
|
|
|
PaintRecord[] paintRecords = new PaintRecord[lineStyleRuns.Count]; |
|
|
|
int pLineGlyphPositions = 0; |
|
|
|
for (int i = 0; i < lineStyleRuns.Count; ++i) { |
|
|
|
var run = lineStyleRuns[i]; |
|
|
|
|
|
|
List<int> breaks = lineBreaker.getBreaks(); |
|
|
|
List<float> widths = lineBreaker.getWidths(); |
|
|
|
for (int i = 0; i < breaksCount; ++i) { |
|
|
|
var breakStart = (i > 0) ? breaks[i - 1] : 0; |
|
|
|
var breakStart = i > 0 ? breaks[i - 1] : 0; |
|
|
|
bool hardBreak = (i == breaksCount - 1); |
|
|
|
bool hardBreak = i == breaksCount - 1; |
|
|
|
(hardBreak && lineEnd < this._text.Length) ? lineEnd + 1 : lineEnd; |
|
|
|
hardBreak && lineEnd < this._text.Length ? lineEnd + 1 : lineEnd; |
|
|
|
var lineEndExcludingWhitespace = lineEnd; |
|
|
|
while (lineEndExcludingWhitespace > lineStart && |
|
|
|
LayoutUtils.isLineEndSpace(this._text[lineEndExcludingWhitespace - 1])) { |
|
|
|