editableText static method
Implementation
static Widget editableText(BuildContext context, EditableTextState state) {
final value = state.textEditingValue;
final selection = value.selection;
final field = state.widget;
// Apple platforms drop select all once text is selected, macOS always.
final canSelectAll =
field.enableInteractiveSelection &&
!(field.readOnly && field.obscureText) &&
value.text.isNotEmpty &&
!(selection.start == 0 && selection.end == value.text.length);
return TextSelectionMenu(
owner: state.context,
anchors: state.contextMenuAnchors,
buttonItems: [
for (final item in state.contextMenuButtonItems)
if (item.type != ContextMenuButtonType.selectAll) item,
if (!isDesktopPlatform &&
selection.isCollapsed &&
canSelectAll &&
!field.obscureText)
ContextMenuButtonItem(
label: UiLocalizations.of(context).select,
onPressed: () => _selectWord(state),
),
if (canSelectAll)
ContextMenuButtonItem(
type: ContextMenuButtonType.selectAll,
onPressed: () => state.selectAll(SelectionChangedCause.toolbar),
),
],
);
}