FuShadow constructor

FuShadow({
  1. double elevation = 8,
  2. double? spreadRadius,
  3. double? blurRadius,
  4. Offset? offset,
  5. ToolShadowPosition position = ToolShadowPosition.bottom,
  6. int? alpha,
  7. Color? color,
  8. bool darkShadow = false,
})

Implementation

FuShadow(
    {double elevation = 8,
    double? spreadRadius,
    double? blurRadius,
    Offset? offset,
    ToolShadowPosition position = ToolShadowPosition.bottom,
    int? alpha,
    Color? color,
    bool darkShadow = false}) {
  this.spreadRadius = spreadRadius ?? elevation * 0.125;
  this.blurRadius = blurRadius ?? elevation * 2;
  this.alpha = alpha ?? (darkShadow ? 100 : 36);
  this.elevation = elevation;
  this.offset = offset;
  this.position = position;
  this.color = color;
  this.darkShadow = darkShadow;

  if (offset == null) {
    switch (position) {
      case ToolShadowPosition.topLeft:
        this.offset = Offset(-elevation, -elevation);
        break;
      case ToolShadowPosition.top:
        this.offset = Offset(0, -elevation);
        break;
      case ToolShadowPosition.topRight:
        this.offset = Offset(elevation, -elevation);
        break;
      //TODO: Shadow problem
      case ToolShadowPosition.centerLeft:
        this.offset = Offset(-elevation, elevation * 0.25);
        break;
      case ToolShadowPosition.center:
        this.offset = const Offset(0, 0);
        break;
      //TODO: Shadow problem
      case ToolShadowPosition.centerRight:
        this.offset = Offset(elevation, elevation * 0.25);
        break;
      case ToolShadowPosition.bottomLeft:
        this.offset = Offset(-elevation, elevation);
        break;
      case ToolShadowPosition.bottom:
        this.offset = Offset(0, elevation);
        break;
      case ToolShadowPosition.bottomRight:
        this.offset = Offset(elevation, elevation);
        break;
    }
  }
}