PerformableActionsContext.fromActions constructor
PerformableActionsContext.fromActions(
- List<
PerformableAction> actions
Create an instance from an actions
list.
Implementation
factory PerformableActionsContext.fromActions(
final List<PerformableAction> actions,
) {
final customSemanticActions = <CustomSemanticsAction, VoidCallback>{};
final menuChildren = <Widget>[];
final bindings = <ShortcutActivator, VoidCallback>{};
var autofocused = false;
for (final action in actions) {
final invoke = action.invoke;
final activator = action.activator;
if (invoke != null) {
customSemanticActions[CustomSemanticsAction(label: action.name)] =
invoke;
if (activator != null) {
bindings[activator] = invoke;
}
} else {
assert(
action.activator == null,
// ignore: lines_longer_than_80_chars
'The action "${action.name}" is acting as a label (`activate == null`). As such, it cannot have a shortcut: ${action.activator}.',
);
}
final autofocus = invoke != null && !autofocused;
menuChildren.add(
PerformableActionMenuItem(action: action, autofocus: autofocus),
);
if (autofocus) {
autofocused = true;
}
}
return PerformableActionsContext(
actions: actions,
customSemanticActions: customSemanticActions,
menuChildren: menuChildren,
bindings: bindings,
);
}