render method

  1. @override
void render(
  1. Rect area,
  2. Buffer buffer,
  3. RenderContext ctx
)
override

Implementation

@override
void render(Rect area, Buffer buffer, RenderContext ctx) {
  if (area.isEmpty) return;
  final s = style ?? ctx.theme.text.body;
  final line = text.replaceAll('\n', ' ');
  var x = area.x;
  if (align != TextAlign.left) {
    final w = _measure(line, area.width);
    if (align == TextAlign.center) {
      x = area.x + (area.width - w) ~/ 2;
    } else if (align == TextAlign.right) {
      x = area.x + area.width - w;
    }
    if (x < area.x) x = area.x;
  }
  buffer.writeText(x, area.y, line, style: s, maxWidth: area.right - x);
}