parseFill method
DrawablePaint?
parseFill(
- Rect bounds,
- DrawablePaint? parentFill,
- Color? defaultFillColor,
- Color? currentColor,
Parses a fill attribute.
Implementation
DrawablePaint? parseFill(
Rect bounds,
DrawablePaint? parentFill,
Color? defaultFillColor,
Color? currentColor,
) {
final String rawFill = attribute('fill', def: '')!;
final String? rawFillOpacity = attribute('fill-opacity', def: '1.0');
final String? rawOpacity = attribute('opacity', def: '');
double opacity = parseDouble(rawFillOpacity)!.clamp(0.0, 1.0).toDouble();
if (rawOpacity != '') {
opacity *= parseDouble(rawOpacity)!.clamp(0.0, 1.0);
}
if (rawFill.startsWith('url')) {
return _getDefinitionPaint(
_key,
PaintingStyle.fill,
rawFill,
_definitions,
bounds,
opacity: opacity,
);
}
final Color? fillColor = _determineFillColor(
parentFill?.color,
rawFill,
opacity,
rawOpacity != '' || rawFillOpacity != '',
defaultFillColor,
currentColor,
);
if (rawFill == '' &&
(fillColor == null || parentFill == DrawablePaint.empty)) {
return null;
}
if (rawFill == 'none') {
return DrawablePaint.empty;
}
return DrawablePaint(
PaintingStyle.fill,
color: fillColor,
);
}