debugPaintSize method

  1. @override
void debugPaintSize (PaintingContext context, Offset offset)
override

In debug mode, paints a border around this render box.

Called for every RenderBox when debugPaintSizeEnabled is true.

Implementation

@override
void debugPaintSize(PaintingContext context, Offset offset) {
  super.debugPaintSize(context, offset);
  assert(() {
    Paint paint;
    if (child != null && !child.size.isEmpty) {
      Path path;
      paint = Paint()
        ..style = PaintingStyle.stroke
        ..strokeWidth = 1.0
        ..color = const Color(0xFFFFFF00);
      path = Path();
      final BoxParentData childParentData = child.parentData;
      if (childParentData.offset.dy > 0.0) {
        // vertical alignment arrows
        final double headSize = math.min(childParentData.offset.dy * 0.2, 10.0);
        path
          ..moveTo(offset.dx + size.width / 2.0, offset.dy)
          ..relativeLineTo(0.0, childParentData.offset.dy - headSize)
          ..relativeLineTo(headSize, 0.0)
          ..relativeLineTo(-headSize, headSize)
          ..relativeLineTo(-headSize, -headSize)
          ..relativeLineTo(headSize, 0.0)
          ..moveTo(offset.dx + size.width / 2.0, offset.dy + size.height)
          ..relativeLineTo(0.0, -childParentData.offset.dy + headSize)
          ..relativeLineTo(headSize, 0.0)
          ..relativeLineTo(-headSize, -headSize)
          ..relativeLineTo(-headSize, headSize)
          ..relativeLineTo(headSize, 0.0);
        context.canvas.drawPath(path, paint);
      }
      if (childParentData.offset.dx > 0.0) {
        // horizontal alignment arrows
        final double headSize = math.min(childParentData.offset.dx * 0.2, 10.0);
        path
          ..moveTo(offset.dx, offset.dy + size.height / 2.0)
          ..relativeLineTo(childParentData.offset.dx - headSize, 0.0)
          ..relativeLineTo(0.0, headSize)
          ..relativeLineTo(headSize, -headSize)
          ..relativeLineTo(-headSize, -headSize)
          ..relativeLineTo(0.0, headSize)
          ..moveTo(offset.dx + size.width, offset.dy + size.height / 2.0)
          ..relativeLineTo(-childParentData.offset.dx + headSize, 0.0)
          ..relativeLineTo(0.0, headSize)
          ..relativeLineTo(-headSize, -headSize)
          ..relativeLineTo(headSize, -headSize)
          ..relativeLineTo(0.0, headSize);
        context.canvas.drawPath(path, paint);
      }
    } else {
      paint = Paint()
        ..color = const Color(0x90909090);
      context.canvas.drawRect(offset & size, paint);
    }
    return true;
  }());
}