getEditableButtonItems static method
- {required ClipboardStatus? clipboardStatus,
- required VoidCallback? onCopy,
- required VoidCallback? onCut,
- required VoidCallback? onPaste,
- required VoidCallback? onSelectAll}
Returns the ContextMenuButtonItem
s representing the buttons in this
platform's default selection menu for an editable field.
For example, EditableText uses this to generate the default buttons for its context menu.
See also:
- EditableTextState.contextMenuButtonItems, which gives the
ContextMenuButtonItem
s for a specific EditableText. - SelectableRegion.getSelectableButtonItems, which performs a similar role but for content that is selectable but not editable.
- AdaptiveTextSelectionToolbar, which builds the toolbar itself, and can
take a list of
ContextMenuButtonItem
s with AdaptiveTextSelectionToolbar.buttonItems. - AdaptiveTextSelectionToolbar.getAdaptiveButtons, which builds the button
Widgets for the current platform given
ContextMenuButtonItem
s.
Implementation
static List<ContextMenuButtonItem> getEditableButtonItems({
required final ClipboardStatus? clipboardStatus,
required final VoidCallback? onCopy,
required final VoidCallback? onCut,
required final VoidCallback? onPaste,
required final VoidCallback? onSelectAll,
}) {
// If the paste button is enabled, don't render anything until the state
// of the clipboard is known, since it's used to determine if paste is
// shown.
if (onPaste != null && clipboardStatus == ClipboardStatus.unknown) {
return <ContextMenuButtonItem>[];
}
return <ContextMenuButtonItem>[
if (onCut != null)
ContextMenuButtonItem(
onPressed: onCut,
type: ContextMenuButtonType.cut,
),
if (onCopy != null)
ContextMenuButtonItem(
onPressed: onCopy,
type: ContextMenuButtonType.copy,
),
if (onPaste != null)
ContextMenuButtonItem(
onPressed: onPaste,
type: ContextMenuButtonType.paste,
),
if (onSelectAll != null)
ContextMenuButtonItem(
onPressed: onSelectAll,
type: ContextMenuButtonType.selectAll,
),
];
}