import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; /// Wrapper widget that adds click cursor to clickable elements /// Usage: ClickableWrapper(child: YourClickableWidget()) class ClickableWrapper extends StatelessWidget { final Widget child; final VoidCallback? onTap; final VoidCallback? onDoubleTap; final VoidCallback? onLongPress; final bool isClickable; const ClickableWrapper({ super.key, required this.child, this.onTap, this.onDoubleTap, this.onLongPress, this.isClickable = true, }); @override Widget build(BuildContext context) { if (!isClickable) { return child; } return MouseRegion( cursor: SystemMouseCursors.click, child: GestureDetector( onTap: onTap, onDoubleTap: onDoubleTap, onLongPress: onLongPress, child: child, ), ); } } /// Extension method to wrap any widget with click cursor extension ClickableWrapperExtension on Widget { Widget withClickCursor({ VoidCallback? onTap, VoidCallback? onDoubleTap, VoidCallback? onLongPress, }) { return ClickableWrapper( onTap: onTap, onDoubleTap: onDoubleTap, onLongPress: onLongPress, child: this, ); } }