createPath method
Implementation
@override
Path createPath(Offset offset, double size, Neighbors neighbors) {
Path path = Path();
double corner = cornerFraction.coerceIn(0, .5) * size;
if (!neighbors.hasAny()) {
path.addRRect(RRect.fromLTRBR(
offset.dx, offset.dy, offset.dx + size, offset.dy + size, Radius.circular(corner)));
} else {
double topLeft = 0;
double topRight = 0;
double bottomLeft = 0;
double bottomRight = 0;
if (!neighbors.top && !neighbors.left) {
topLeft = corner;
}
if (!neighbors.top && !neighbors.right) {
topRight = corner;
}
if (!neighbors.bottom && !neighbors.left) {
bottomLeft = corner;
}
if (!neighbors.bottom && !neighbors.right) {
bottomRight = corner;
}
path.addRRect(RRect.fromLTRBAndCorners(
offset.dx,
offset.dy,
offset.dx + size,
offset.dy + size,
topLeft: Radius.circular(topLeft),
topRight: Radius.circular(topRight),
bottomLeft: Radius.circular(bottomLeft),
bottomRight: Radius.circular(bottomRight),
));
}
return path;
}