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 value = namedArguments[const Symbol('value')];
  var child = namedArguments[const Symbol('child')];
  if (child == null) {
    throw "child required in DropdownMenuItem";
  }
  bool enabled = true;
  var enabledParse = namedArguments[const Symbol('enabled')];
  if (enabledParse != null) {
    enabled = enabledParse as bool;
  }
  AlignmentGeometry alignment = AlignmentDirectional.centerStart;
  var alignmentParse = namedArguments[const Symbol('alignment')];
  if (alignmentParse != null) {
    alignment = alignmentParse as AlignmentGeometry;
  }
  Function()? onTap;
  var onTapParse = namedArguments[const Symbol('onTap')];
  if (onTapParse != null) {
    onTap = () {
      (onTapParse as LoxFunction).call(interpreter, [], {});
    };
  }
  return DropdownMenuItem(
    value: value,
    child: child as Widget,
    enabled: enabled,
    onTap: onTap,
    alignment: alignment,
  );
}