GestureDectectorCreatable<T extends dynamic> constructor

const GestureDectectorCreatable<T extends dynamic>({
  1. Key? key,
  2. required Widget child,
  3. required TouchRippleEventCallBack? onTap,
  4. required TouchRippleEventAsyncCallBack<T>? onTapAsync,
  5. required TouchRippleEventCallBack? onTapAsyncStart,
  6. required TouchRippleEventResponseCallback<T>? onTapAsyncEnd,
  7. required TouchRippleEventCallBack? onDoubleTap,
  8. required TouchRippleStateCallBack? onDoubleTapStart,
  9. required TouchRippleStateCallBack? onDoubleTapEnd,
  10. required TouchRippleContinuableCheckedCallBack? onLongTap,
  11. required TouchRippleStateCallBack? onLongTapStart,
  12. required TouchRippleStateCallBack? onLongTapEnd,
  13. required TouchRippleBehavior? behavior,
  14. required TouchRippleBehavior? tapBehavior,
  15. required TouchRippleBehavior? doubleTapBehavior,
  16. required TouchRippleBehavior? longTapBehavior,
  17. required TouchRippleStateCallBack? onHoverStart,
  18. required TouchRippleStateCallBack? onHoverEnd,
  19. required TouchRippleStateCallBack? onFocusStart,
  20. required TouchRippleStateCallBack? onFocusEnd,
  21. required Color? hoverColor,
  22. required Duration hoverFadeInDuration,
  23. required Curve hoverFadeInCurve,
  24. required Duration? hoverFadeOutDuration,
  25. required Curve? hoverFadeOutCurve,
  26. required bool isDoubleTapContinuable,
  27. required bool isLongTapContinuable,
  28. required TouchRippleRejectBehavior rejectBehavior,
  29. required TouchRippleCancelledBehavior cancelledBehavior,
  30. required TouchRippleLongTapFocusStartEvent longTapFocusStartEvent,
  31. required Color? rippleColor,
  32. required TouchRippleRenderOrderType renderOrder,
  33. required double rippleScale,
  34. required Duration? tapableDuration,
  35. required HitTestBehavior hitTestBehavior,
  36. required Duration? doubleTappableDuration,
  37. required Duration? doubleTapHoldDuration,
  38. required Duration? longTappableDuration,
  39. required Duration longTapStartDeleyDuration,
  40. required Duration? tapPreviewMinDuration,
  41. required TouchRippleController? controller,
  42. required BorderRadius borderRadius,
  43. required TouchRippleContinuableCheckedCallBack? onDoubleTapContinuableChecked,
  44. required SystemMouseCursor hoverCursor,
  45. required double hoverColorRelativeOpacity,
  46. required double focusColorRelativeOpacity,
  47. required bool useHoverEffect,
  48. required bool useFocusEffect,
  49. required Color? focusColor,
  50. required Duration focusFadeInDuration,
  51. required Curve focusFadeInCurve,
  52. required Duration? focusFadeOutDuration,
  53. required Curve? focusFadeOutCurve,
  54. required bool useDoubleTapFocusEffect,
  55. required bool useLongTapFocusEffect,
  56. required bool isOnHoveredDisableFocusEffect,
  57. required double rippleBlurRadius,
})

Implementation

const GestureDectectorCreatable({
  super.key,
  required this.child,
  required this.onTap,
  required this.onTapAsync,
  required this.onTapAsyncStart,
  required this.onTapAsyncEnd,
  required this.onDoubleTap,
  required this.onDoubleTapStart,
  required this.onDoubleTapEnd,
  required this.onLongTap,
  required this.onLongTapStart,
  required this.onLongTapEnd,
  /* TODO: Should be develop and updated later
  required this.onHorizontalDragStart,
  required this.onHorizontalDragUpdate,
  required this.onHorizontalDragEnd,
  required this.onVerticalDragStart,
  required this.onVerticalDragUpdate,
  required this.onVerticalDragEnd,
  */
  required this.behavior,
  required this.tapBehavior,
  required this.doubleTapBehavior,
  required this.longTapBehavior,
  required this.onHoverStart,
  required this.onHoverEnd,
  required this.onFocusStart,
  required this.onFocusEnd,
  required this.hoverColor,
  required this.hoverFadeInDuration,
  required this.hoverFadeInCurve,
  required this.hoverFadeOutDuration,
  required this.hoverFadeOutCurve,
  required this.isDoubleTapContinuable,
  required this.isLongTapContinuable,
  required this.rejectBehavior,
  required this.cancelledBehavior,
  required this.longTapFocusStartEvent,
  required this.rippleColor,
  required this.renderOrder,
  required this.rippleScale,
  required this.tapableDuration,
  required this.hitTestBehavior,
  required this.doubleTappableDuration,
  required this.doubleTapHoldDuration,
  required this.longTappableDuration,
  required this.longTapStartDeleyDuration,
  required this.tapPreviewMinDuration,
  required this.controller,
  required this.borderRadius,
  required this.onDoubleTapContinuableChecked,
  required this.hoverCursor,
  required this.hoverColorRelativeOpacity,
  required this.focusColorRelativeOpacity,
  required this.useHoverEffect,
  required this.useFocusEffect,
  required this.focusColor,
  required this.focusFadeInDuration,
  required this.focusFadeInCurve,
  required this.focusFadeOutDuration,
  required this.focusFadeOutCurve,
  required this.useDoubleTapFocusEffect,
  required this.useLongTapFocusEffect,
  required this.isOnHoveredDisableFocusEffect,
  required this.rippleBlurRadius,
}) :  assert(
        tapableDuration != Duration.zero,
        'The tappable duration cannot be zero.'
        'If the tappable duration is zero, tapping will not occur in all situations.'
      ),
      assert(
        onDoubleTap == null ? onDoubleTapStart == null : true,
        'The onDoubleTap parameter is not givend, so the double tap gesture is not defined.'
        'Therefore, the onDoubleTapStart function is not called'
      ),
      assert(
        onDoubleTap == null ? onDoubleTapEnd == null : true,
        'The onDoubleTap parameter is not givend, so the double tap gesture is not defined.'
        'Therefore, the onDoubleTapEnd function is not called'
      ),
      assert(
        rippleScale >= 1,
        'The ripple size cannot be smaller than its original size. Please adjust the scale to be 1 or larger.'
      ),
      assert(
        !(isDoubleTapContinuable == false && onDoubleTapContinuableChecked != null),
        'Already defined to prevent consecutive double taps from occurring.'
        'Therefore, even if you register the onDoubleTapContinuationableChecked callback function,'
        'it will not be called.'
      ),
      assert((onTap != null && onTapAsync == null)
          || (onTapAsync != null && onTap == null
          || (onTap == null && onTapAsync == null)), "[onTap] and [onTapAsync] cannot be used at the same.");