PathSplash constructor

PathSplash({
  1. required MaterialInkController controller,
  2. required RenderBox referenceBox,
  3. required Color color,
  4. required TextDirection textDirection,
  5. VoidCallback? onRemoved,
  6. required Path path,
  7. Paint? customPaint,
  8. required bool clip,
  9. bool containedInkWell = false,
  10. RectCallback? rectCallback,
  11. BorderRadius? borderRadius,
  12. ShapeBorder? customBorder,
  13. double? radius,
})

Implementation

PathSplash({
  required MaterialInkController controller,
  required RenderBox referenceBox,
  required Color color,
  required TextDirection textDirection,
  VoidCallback? onRemoved,
  required this.path,
  Paint? customPaint,
  required this.clip,
  bool containedInkWell = false,
  RectCallback? rectCallback,
  BorderRadius? borderRadius,
  ShapeBorder? customBorder,
  double? radius,
})  : _textDirection = textDirection,
      _borderRadius = borderRadius ?? BorderRadius.zero,
      _customBorder = customBorder,
      _clipCallback =
          _getClipCallback(referenceBox, containedInkWell, rectCallback),
      _radius = radius,
      super(
        controller: controller,
        referenceBox: referenceBox,
        color: color,
        onRemoved: onRemoved,
      ) {
  _progressController = AnimationController(
    duration: _kProgressDuration,
    vsync: controller.vsync,
  )
    ..addListener(controller.markNeedsPaint)
    ..forward();

  _progressAnimation = _progressController.drive(Tween<double>(
    begin: 0,
    end: 1,
  ));

  if (customPaint == null) {
    paint = Paint()
      ..color = color
      ..strokeWidth = 7
      ..strokeCap = StrokeCap.round
      ..style = PaintingStyle.stroke;
  } else {
    paint = customPaint;
  }

  controller.addInkFeature(this);
}