renderLabel function

Figure renderLabel(
  1. Label label,
  2. Offset anchor,
  3. Alignment defaultAlign
)

Gets the figure of a label.

The default align of lables is various in different situations, so it can be configured by defaultAlign in this method.

Implementation

Figure renderLabel(
  Label label,
  Offset anchor,
  Alignment defaultAlign,
) {
  assert(label.haveText);

  final painter = TextPainter(
    text: label.style.style != null
        ? TextSpan(text: label.text, style: label.style.style)
        : label.style.span!(label.text!),
    textAlign: label.style.textAlign ?? TextAlign.start,
    textDirection: label.style.textDirection ?? TextDirection.ltr,
    textScaleFactor: label.style.textScaleFactor ?? 1.0,
    maxLines: label.style.maxLines,
    ellipsis: label.style.ellipsis,
    locale: label.style.locale,
    strutStyle: label.style.strutStyle,
    textWidthBasis: label.style.textWidthBasis ?? TextWidthBasis.parent,
    textHeightBehavior: label.style.textHeightBehavior,
  );
  painter.layout(
    minWidth: label.style.minWidth ?? 0.0,
    maxWidth: label.style.maxWidth ?? double.infinity,
  );

  final axis =
      label.style.offset == null ? anchor : anchor + label.style.offset!;

  final align = label.style.align ?? defaultAlign;

  var paintPoint = getPaintPoint(
    axis,
    painter.width,
    painter.height,
    align,
  );
  final rotation = label.style.rotation;
  if (rotation != null) {
    return RotatedTextFigure(
      painter,
      paintPoint,
      rotation,
      axis,
    );
  } else {
    return TextFigure(painter, paintPoint);
  }
}