PdfViewerContextMenuBuilder typedef

PdfViewerContextMenuBuilder = Widget? Function(BuildContext context, PdfViewerContextMenuBuilderParams params)

Function to build the text selection context menu.

The following fragment is a simple example to build a context menu with "Copy" and "Select All" actions:

Widget? _buildTextSelectionContextMenu(
  BuildContext context,
  PdfViewerTextSelectionContextMenuBuilderParams params,
) {

  final items = [
    if (params.isTextSelectionEnabled &&
        params.textSelectionDelegate.isCopyAllowed &&
        params.textSelectionDelegate.hasSelectedText)
      ContextMenuButtonItem(
        onPressed: () => params.textSelectionDelegate.copyTextSelection(),
        type: ContextMenuButtonType.copy,
      ),
    if (params.isTextSelectionEnabled && !params.textSelectionDelegate.isSelectingAllText)
      ContextMenuButtonItem(
        onPressed: () => params.textSelectionDelegate.selectAllText(),
        type: ContextMenuButtonType.selectAll,
      ),
  ];

  widget.params.customizeContextMenuItems?.call(params, items);

  if (items.isEmpty) {
    return null;
  }

  return Align(
    alignment: Alignment.topLeft,
    child: AdaptiveTextSelectionToolbar.buttonItems(
      anchors: TextSelectionToolbarAnchors(primaryAnchor: params.anchorA, secondaryAnchor: params.anchorB),
      buttonItems: items,
    ),
  );
}

See PdfViewerParams.customizeContextMenuItems for more.

Implementation

typedef PdfViewerContextMenuBuilder = Widget? Function(BuildContext context, PdfViewerContextMenuBuilderParams params);