LyricLayout.updatePainters constructor
LyricLayout.updatePainters(
- LyricLayout layout
Implementation
factory LyricLayout.updatePainters(
LyricLayout layout,
) {
final lineMetrics = <LineMetrics>[];
for (var line in layout.metrics) {
line.textPainter.markNeedsLayout();
line.activeTextPainter.markNeedsLayout();
line.translationTextPainter.markNeedsLayout();
line.textPainter.layout(maxWidth: layout.viewSize.width);
line.activeTextPainter.layout(maxWidth: layout.viewSize.width);
final hasTranslation = line.translationTextPainter.text != null;
if (hasTranslation) {
line.translationTextPainter.layout(maxWidth: layout.viewSize.width);
}
line.words;
final words = _calcWordMetrics(line.line, line.textPainter,
line.activeTextPainter, line.translationTextPainter);
lineMetrics.add(line.copyWith(
height: line.textPainter.height,
width: line.textPainter.width,
activeWidth: line.activeTextPainter.width,
activeHeight: line.activeTextPainter.height,
translationWidth:
hasTranslation ? line.translationTextPainter.width : 0,
translationHeight:
hasTranslation ? line.translationTextPainter.height : 0,
activeMetrics: line.activeTextPainter.computeLineMetrics(),
metrics: line.textPainter.computeLineMetrics(),
words: words,
));
}
return LyricLayout._internal(
layout.metrics,
layout.style,
layout.viewSize,
layout.selectionAnchorPosition,
layout.activeAnchorPosition,
);
}