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 Focus";
  }
  bool autofocus = false;
  var autofocusParse = namedArguments[const Symbol('autofocus')];
  if (autofocusParse != null) {
    autofocus = autofocusParse as bool;
  }
  bool canRequestFocus = true;
  var canRequestFocusParse = namedArguments[const Symbol('canRequestFocus')];
  if (canRequestFocusParse != null) {
    canRequestFocus = canRequestFocusParse as bool;
  }
  bool? skipTraversal;
  var skipTraversalParse = namedArguments[const Symbol('skipTraversal')];
  if (skipTraversalParse != null) {
    skipTraversal = skipTraversalParse as bool;
  }
  bool descendantsAreFocusable = true;
  var descendantsAreFocusableParse =
      namedArguments[const Symbol('descendantsAreFocusable')];
  if (descendantsAreFocusableParse != null) {
    descendantsAreFocusable = descendantsAreFocusableParse 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 Focus(
    autofocus: autofocus,
    canRequestFocus: canRequestFocus,
    skipTraversal: skipTraversal,
    onFocusChange: onFocusChange,
    descendantsAreFocusable: descendantsAreFocusable,
    child: child as Widget,
  );
}