paintChildBorder method

void paintChildBorder(
  1. Offset offset,
  2. Canvas canvas,
  3. BorderSide borderSide,
  4. BorderRadius borderRadius,
)

Implementation

void paintChildBorder(Offset offset, Canvas canvas, BorderSide borderSide,
    BorderRadius borderRadius) {
  final rect = Rect.fromLTRB(offset.dx, offset.dy,
      container!.size.width + offset.dx, container!.size.height + offset.dy);
  final paint = borderSide.toPaint();
  final outer = borderRadius.toRRect(rect);
  final center = outer.inflate(borderSide.width / 2);

  final gapExtent = label?.size.width ?? 0.0;
  if (gapExtent <= 0.0) return canvas.drawRRect(center, paint);

  final double extent = lerpDouble(0.0, gapExtent + gapPadding * 2.0, 1)!;
  final Path path = _gapBorderPath(canvas, borderSide, center,
      math.max(0.0, gapStart + (gapPadding / 2)), extent);
  canvas.drawPath(path, paint);
}