wrap method

  1. @override
Widget wrap({
  1. required BuildContext context,
  2. required HeadlessPressableController controller,
  3. required bool enabled,
  4. required VoidCallback onActivate,
  5. required Widget child,
  6. RenderOverrides? overrides,
  7. HeadlessPressableVisualEffectsController? visualEffects,
  8. FocusNode? focusNode,
  9. bool autofocus = false,
  10. MouseCursor? cursorWhenEnabled,
  11. MouseCursor? cursorWhenDisabled,
})

Wraps the child widget with an interactive pressable surface.

The surface handles:

  • Visual feedback (ripple, opacity, etc.)
  • Focus management
  • Mouse cursor

controller provides the current interaction state (pressed/hovered/focused). enabled determines if the surface is interactive. onActivate is called when the surface is activated (tap/enter/space).

Implementation

@override
Widget wrap({
  required BuildContext context,
  required HeadlessPressableController controller,
  required bool enabled,
  required VoidCallback onActivate,
  required Widget child,
  RenderOverrides? overrides,
  HeadlessPressableVisualEffectsController? visualEffects,
  FocusNode? focusNode,
  bool autofocus = false,
  MouseCursor? cursorWhenEnabled,
  MouseCursor? cursorWhenDisabled,
}) {
  return _MaterialInkPressableSurfaceWidget(
    controller: controller,
    enabled: enabled,
    onActivate: onActivate,
    overrides: overrides,
    visualEffects: visualEffects,
    focusNode: focusNode,
    autofocus: autofocus,
    cursorWhenEnabled: cursorWhenEnabled,
    cursorWhenDisabled: cursorWhenDisabled,
    child: child,
  );
}