call method

  1. @override
Object? call(
  1. Interpreter interpreter,
  2. List<Object?> arguments,
  3. Map<Symbol, Object?> namedArguments
)
override

Implementation

@override
Object? call(Interpreter interpreter, List<Object?> arguments,
    Map<Symbol, Object?> namedArguments) {
  Color penColor = Colors.black;
  var penColorParsed = namedArguments[const Symbol('penColor')];
  if (penColorParsed != null) {
    penColor = penColorParsed as Color;
  }
  double penStrokeWidth =
      parseDouble(namedArguments[const Symbol('penStrokeWidth')]) ?? 3.0;
  Color? exportBackgroundColor;
  var exportBackgroundColorParsed =
      namedArguments[const Symbol('exportBackgroundColor')];
  if (exportBackgroundColorParsed != null) {
    exportBackgroundColor = exportBackgroundColorParsed as Color;
  }
  Color? exportPenColor;
  var exportPenColorParsed = namedArguments[const Symbol('exportPenColor')];
  if (exportPenColorParsed != null) {
    exportPenColor = exportPenColorParsed as Color;
  }
  void Function()? onDrawStart;
  var onDrawStartParsed = namedArguments[const Symbol('onDrawStart')];
  if (onDrawStartParsed != null) {
    onDrawStart = () {
      (onDrawStartParsed as LoxFunction).call(interpreter, [], {});
    };
  }
  void Function()? onDrawMove;
  var onDrawMoveParsed = namedArguments[const Symbol('onDrawMove')];
  if (onDrawMoveParsed != null) {
    onDrawMove = () {
      (onDrawMoveParsed as LoxFunction).call(interpreter, [], {});
    };
  }
  void Function()? onDrawEnd;
  var onDrawEndParsed = namedArguments[const Symbol('onDrawEnd')];
  if (onDrawEndParsed != null) {
    onDrawEnd = () {
      (onDrawEndParsed as LoxFunction).call(interpreter, [], {});
    };
  }
  List<Point> points = [];
  var pointsParsed = namedArguments[const Symbol('points')];
  if (pointsParsed != null) {
    points = (pointsParsed as List).cast<Point>();
  }
  return SignatureControllerIns(
      points: points,
      onDrawStart: onDrawStart,
      onDrawEnd: onDrawEnd,
      onDrawMove: onDrawMove,
      penStrokeWidth: penStrokeWidth,
      penColor: penColor,
      exportPenColor: exportPenColor,
      exportBackgroundColor: exportBackgroundColor);
}