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;
}
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,
),
);
}
// Build delete button.
final ContextMenuButtonItem deleteButton = ContextMenuButtonItem(
onPressed: () {
if (!editableTextState.mounted) {
return;
}
_replaceText(editableTextState, '', editableTextState.currentTextEditingValue.composing);
},
type: ContextMenuButtonType.delete,
);
buttonItems.add(deleteButton);
return buttonItems;
}