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) {
  double? left = parseDouble(namedArguments[const Symbol('left')]);
  double? top = parseDouble(namedArguments[const Symbol('top')]);
  double? right = parseDouble(namedArguments[const Symbol('right')]);
  double? bottom = parseDouble(namedArguments[const Symbol('bottom')]);
  double? width = parseDouble(namedArguments[const Symbol('width')]);
  double? height = parseDouble(namedArguments[const Symbol('height')]);
  var child = namedArguments[const Symbol('child')];
  if (child == null) {
    throw "child is required in AnimatedPositioned";
  }
  var duration = namedArguments[const Symbol('duration')];
  if (duration == null) {
    throw "duration required in AnimatedContainer";
  }
  Curve curve = Curves.linear;
  var curveParsed = namedArguments[const Symbol('curve')];
  if (curveParsed != null) {
    curve = curveParsed as Curve;
  }
  void Function()? onEnd;
  var onEndParsed = namedArguments[const Symbol('onEnd')];
  if (onEndParsed != null) {
    onEnd = () {
      (onEndParsed as LoxFunction).call(interpreter, [], {});
    };
  }
  return AnimatedPositioned(
    left: left,
    top: top,
    right: right,
    bottom: bottom,
    width: width,
    height: height,
    curve: curve,
    duration: duration as Duration,
    onEnd: onEnd,
    child: child as Widget,
  );
}