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) {
  var child = namedArguments[const Symbol('child')];
  if (child == null) {
    throw "child required in TextButton";
  }
  var onPressed = namedArguments[const Symbol('onPressed')];
  if (onPressed == null) {
    throw "onPressed required in TextButton";
  }
  ButtonStyle? style;
  var styleParsed = namedArguments[const Symbol('style')];
  if (styleParsed != null) {
    style = styleParsed as ButtonStyle;
  }
  bool autofocus = false;
  var autofocusParsed = namedArguments[const Symbol('autofocus')];
  if (autofocusParsed != null) {
    autofocus = autofocusParsed as bool;
  }
  return TextButton(
      child: child as Widget,
      style: style,
      autofocus: autofocus,
      onPressed: () {
        (onPressed as LoxFunction).call(interpreter, [], {});
      });
}