mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-04-20 11:08:03 +08:00
@@ -156,19 +156,37 @@ class SystemContextMenu extends StatefulWidget {
|
||||
static List<IOSSystemContextMenuItem> getDefaultItems(
|
||||
EditableTextState editableTextState,
|
||||
) {
|
||||
return <IOSSystemContextMenuItem>[
|
||||
if (editableTextState.copyEnabled) const IOSSystemContextMenuItemCopy(),
|
||||
if (editableTextState.cutEnabled) const IOSSystemContextMenuItemCut(),
|
||||
if (editableTextState.pasteEnabled) const IOSSystemContextMenuItemPaste(),
|
||||
if (editableTextState.selectAllEnabled)
|
||||
const IOSSystemContextMenuItemSelectAll(),
|
||||
if (editableTextState.lookUpEnabled)
|
||||
const IOSSystemContextMenuItemLookUp(),
|
||||
if (editableTextState.searchWebEnabled)
|
||||
const IOSSystemContextMenuItemSearchWeb(),
|
||||
if (editableTextState.liveTextInputEnabled)
|
||||
const IOSSystemContextMenuItemLiveText(),
|
||||
];
|
||||
final items = <IOSSystemContextMenuItem>[];
|
||||
|
||||
// Use the generic Flutter-rendered context menu model as the single source of truth.
|
||||
for (final ContextMenuButtonItem button
|
||||
in editableTextState.contextMenuButtonItems) {
|
||||
switch (button.type) {
|
||||
case ContextMenuButtonType.copy:
|
||||
items.add(const IOSSystemContextMenuItemCopy());
|
||||
case ContextMenuButtonType.cut:
|
||||
items.add(const IOSSystemContextMenuItemCut());
|
||||
case ContextMenuButtonType.paste:
|
||||
items.add(const IOSSystemContextMenuItemPaste());
|
||||
case ContextMenuButtonType.selectAll:
|
||||
items.add(const IOSSystemContextMenuItemSelectAll());
|
||||
case ContextMenuButtonType.lookUp:
|
||||
items.add(const IOSSystemContextMenuItemLookUp());
|
||||
case ContextMenuButtonType.searchWeb:
|
||||
items.add(const IOSSystemContextMenuItemSearchWeb());
|
||||
case ContextMenuButtonType.share:
|
||||
items.add(const IOSSystemContextMenuItemShare());
|
||||
case ContextMenuButtonType.liveTextInput:
|
||||
items.add(const IOSSystemContextMenuItemLiveText());
|
||||
case ContextMenuButtonType.delete:
|
||||
// No native iOS system menu button for Delete — intentionally ignored.
|
||||
case ContextMenuButtonType.custom:
|
||||
// Custom items are provided explicitly via SystemContextMenu.items,
|
||||
// not via defaults. Intentionally ignore in default mapping.
|
||||
}
|
||||
}
|
||||
|
||||
return items;
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
Reference in New Issue
Block a user