setStringN method
Write at most maxWidth characters of string at (x, y).
Implementation
void setStringN(
int x,
int y,
String string,
int maxWidth,
Style style,
) {
var remainingWidth = (area.right - x).clamp(0, maxWidth);
var cx = x;
final runes = string.runes.toList();
for (var i = 0; i < runes.length && remainingWidth > 0; i++) {
final ch = runes[i];
if (ch < 0x20 && ch != 0x0A && ch != 0x0D) continue;
final width = charWidth(ch);
if (width == 0) continue;
if (width > remainingWidth) break;
remainingWidth -= width;
final cellIndex = indexOf(cx, y);
if (cellIndex < content.length) {
content[cellIndex].setChar(ch);
content[cellIndex].setStyle(style);
}
cx += 1;
for (var j = 1; j < width; j++) {
final skipIndex = indexOf(cx, y);
if (skipIndex < content.length) {
content[skipIndex].reset();
}
cx += 1;
}
}
}