build method

  1. @override
Widget build(
  1. BuildContext context
)
override

Build the widget.

Implementation

@override
Widget build(final BuildContext context) {
  final invoke = action.invoke;
  final activator = action.activator;
  final selected = action.checked;
  final controller = MenuController.maybeOf(context);
  return CallbackShortcuts(
    bindings: {
      if (canCloseMenu)
        const SingleActivator(LogicalKeyboardKey.escape): () {
          if (controller != null && controller.isOpen) {
            controller.close();
          }
        },
    },
    child: Semantics(
      checked: selected,
      selected: action.checked,
      child: MenuItemButton(
        autofocus: autofocus,
        onPressed: () {
          if (action.closeMenu ?? (action.checked == null)) {
            controller?.close();
          }
          invoke?.call();
        },
        shortcut: activator,
        trailingIcon: selected == null
            ? null
            : SelectedIcon(selected: selected),
        child: Text(action.name),
      ),
    ),
  );
}