layout method
layout API.
Implementation
@override
PwBox layout(Context context, BoxConstraints constraints) {
final List<List<bool>> matrix = QrEncoder(ecc: ecc).encode(data);
final int n = matrix.length + padding * 2;
final PwSize box = constraints.constrain(PwSize(size, size));
return CustomPaint(
size: box,
painter: (PdfCanvas canvas, PwSize painted) {
canvas.endText();
canvas.fillRect(0, 0, painted.width, painted.height, backgroundColor);
final double module = painted.width / n;
canvas.setFillColor(color);
for (int r = 0; r < matrix.length; r++) {
for (int c = 0; c < matrix[r].length; c++) {
if (!matrix[r][c]) {
continue;
}
canvas.rect(
(c + padding) * module,
(r + padding) * module,
module + 0.05,
module + 0.05,
);
canvas.fill();
}
}
},
).layout(context, constraints);
}