call method
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,
);
}