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 FocusScope";
  }
  bool autofocus = false;
  var autofocusParse = namedArguments[const Symbol('autofocus')];
  if (autofocusParse != null) {
    autofocus = autofocusParse as bool;
  }
  bool? skipTraversal;
  var skipTraversalParse = namedArguments[const Symbol('skipTraversal')];
  if (skipTraversalParse != null) {
    skipTraversal = skipTraversalParse as bool;
  }
  void Function(bool)? onFocusChange;
  var onFocusChangeParse = namedArguments[const Symbol('onFocusChange')];
  if (onFocusChangeParse != null) {
    onFocusChange = (bool b) {
      (onFocusChangeParse as LoxFunction).call(interpreter, [b], {});
    };
  }
  return FocusScope(
    autofocus: autofocus,
    skipTraversal: skipTraversal,
    onFocusChange: onFocusChange,
    child: child as Widget,
  );
}