showMacosContextMenu<T> function

Future<T?> showMacosContextMenu<T>({
  1. required BuildContext context,
  2. required Offset globalPosition,
  3. required List<PreferredSizeWidget> children,
  4. double width = 150,
})

Implementation

Future<T?> showMacosContextMenu<T>({
  required BuildContext context,
  required Offset globalPosition,
  required List<PreferredSizeWidget> children,
  double width = 150,
}) {
  return showGeneralDialog(
    barrierColor: Colors.transparent,
    barrierDismissible: true,
    barrierLabel: 'Dismiss',
    context: context,
    transitionDuration: Duration(milliseconds: 100),
    transitionBuilder: (context, animation, __, child) {
      // show instantly
      if (animation.status == AnimationStatus.forward) {
        return child;
      }

      // fade transition on quit
      return FadeTransition(
        opacity: animation,
        child: child,
      );
    },
    pageBuilder: (context, _, __) {
      return MacosContextMenu(
        globalPosition: globalPosition,
        children: children,
        width: width,
      );
    },
  );
}