buildButtonItems static method
- EditableTextState editableTextState
Builds the button items for the toolbar based on the available spell check suggestions.
Implementation
static List<ContextMenuButtonItem>? buildButtonItems(EditableTextState editableTextState) {
// Determine if composing region is misspelled.
final SuggestionSpan? spanAtCursorIndex = editableTextState.findSuggestionSpanAtCursorIndex(
editableTextState.currentTextEditingValue.selection.baseOffset,
);
if (spanAtCursorIndex == null) {
return null;
}
if (spanAtCursorIndex.suggestions.isEmpty) {
assert(debugCheckHasCupertinoLocalizations(editableTextState.context));
final CupertinoLocalizations localizations = CupertinoLocalizations.of(
editableTextState.context,
);
return <ContextMenuButtonItem>[
ContextMenuButtonItem(onPressed: null, label: localizations.noSpellCheckReplacementsLabel),
];
}
final List<ContextMenuButtonItem> buttonItems = <ContextMenuButtonItem>[];
// Build suggestion buttons.
for (final String suggestion in spanAtCursorIndex.suggestions.take(_kMaxSuggestions)) {
buttonItems.add(
ContextMenuButtonItem(
onPressed: () {
if (!editableTextState.mounted) {
return;
}
_replaceText(editableTextState, suggestion, spanAtCursorIndex.range);
},
label: suggestion,
),
);
}
return buttonItems;
}