performPaint method
Hook for subclasses to implement actual painting.
Implementation
@override
void performPaint(Buffer buffer, Offset offset) {
final borderWidget = widget as LeftBorder;
final padding = borderWidget.padding;
final requiredWidth = 1 + padding.left + padding.right;
final requiredHeight = padding.top + padding.bottom;
if (size.width <= requiredWidth || size.height <= requiredHeight) return;
final limit = borderWidget.borderHeight ?? size.height;
// 1. Draw the vertical line on the left
for (var y = 0; y < size.height; y++) {
final cellChar = y < limit ? borderWidget.char : ' ';
buffer.setAttributes(
offset.dx.toInt(),
(offset.dy + y).toInt(),
char: cellChar,
fg: borderWidget.style.foreground?.argb,
bg: borderWidget.style.background?.argb,
modifiers: borderWidget.style.modifiers,
);
}
// 2. Render the child in the remaining area
if (childElement != null) {
childElement!.paint(buffer, offset + childElement!.relativeOffset);
}
}