performPaint method
Hook for subclasses to implement actual painting.
Implementation
@override
void performPaint(Buffer buffer, Offset offset) {
final selector = widget as NumberSelector;
final viewport = Viewport(
buffer,
Rect(offset.dx, offset.dy, size.width, size.height),
);
final labelLen = selector.label.characters.length;
final displayChars = '${selector.label}: < ${selector.value} >'.characters;
final leftArrowIdx = labelLen + 2;
final rightArrowIdx = displayChars.length - 1;
// Render the label and spacing
viewport.writeString(0, 0, '${selector.label}: ', selector.style);
// Render '<' button
viewport.writeString(leftArrowIdx, 0, '<', selector.buttonStyle);
// Render value
viewport.writeString(
leftArrowIdx + 2,
0,
'${selector.value}',
selector.style,
);
// Render '>' button
viewport.writeString(rightArrowIdx, 0, '>', selector.buttonStyle);
}