generateParagraph static method

Paragraph generateParagraph({
  1. required DanmakuContentItem content,
  2. required double fontSize,
  3. required int fontWeight,
  4. String? fontFamily,
})

Implementation

static ui.Paragraph generateParagraph({
  required DanmakuContentItem content,
  required double fontSize,
  required int fontWeight,
  String? fontFamily,
}) {
  final builder = ui.ParagraphBuilder(ui.ParagraphStyle(
    textAlign: TextAlign.left,
    fontWeight: FontWeight.values[fontWeight],
    textDirection: TextDirection.ltr,
    maxLines: 1,
    fontFamily: fontFamily,
  ));

  if (content.count case final count?) {
    builder
      ..pushStyle(ui.TextStyle(
        color: content.color,
        fontSize: fontSize * 0.6,
        fontFamily: fontFamily,
      ))
      ..addText('($count)')
      ..pop();
  }

  builder
    ..pushStyle(ui.TextStyle(
        color: content.color, fontSize: fontSize, fontFamily: fontFamily))
    ..addText(content.text);

  return builder.build()
    ..layout(const ui.ParagraphConstraints(width: double.infinity));
}