コード例 #1
0
ファイル: text_selection.cs プロジェクト: zjuwjf/UIWidgets
 public TextSelectionGestureDetector(
     Key key = null,
     GestureTapDownCallback onTapDown                  = null,
     GestureTapUpCallback onSingleTapUp                = null,
     GestureTapCancelCallback onSingleTapCancel        = null,
     GestureLongPressCallback onSingleLongTapStart     = null,
     GestureTapDownCallback onDoubleTapDown            = null,
     GestureDragStartCallback onDragSelectionStart     = null,
     DragSelectionUpdateCallback onDragSelectionUpdate = null,
     GestureDragEndCallback onDragSelectionEnd         = null,
     HitTestBehavior?behavior = null,
     Widget child             = null
     ) : base(key: key)
 {
     D.assert(child != null);
     this.onTapDown             = onTapDown;
     this.onSingleTapUp         = onSingleTapUp;
     this.onSingleTapCancel     = onSingleTapCancel;
     this.onSingleLongTapStart  = onSingleLongTapStart;
     this.onDoubleTapDown       = onDoubleTapDown;
     this.onDragSelectionStart  = onDragSelectionStart;
     this.onDragSelectionUpdate = onDragSelectionUpdate;
     this.onDragSelectionEnd    = onDragSelectionEnd;
     this.behavior = behavior;
     this.child    = child;
 }
コード例 #2
0
 public InkResponse(
     Key key                                    = null,
     Widget child                               = null,
     GestureTapCallback onTap                   = null,
     GestureTapDownCallback onTapDown           = null,
     GestureTapCancelCallback onTapCancel       = null,
     GestureTapCallback onDoubleTap             = null,
     GestureLongPressCallback onLongPress       = null,
     ValueChanged <bool> onHighlightChanged     = null,
     bool containedInkWell                      = false,
     BoxShape highlightShape                    = BoxShape.circle,
     float?radius                               = null,
     BorderRadius borderRadius                  = null,
     ShapeBorder customBorder                   = null,
     Color highlightColor                       = null,
     Color splashColor                          = null,
     InteractiveInkFeatureFactory splashFactory = null) : base(key: key)
 {
     this.child              = child;
     this.onTap              = onTap;
     this.onTapDown          = onTapDown;
     this.onTapCancel        = onTapCancel;
     this.onDoubleTap        = onDoubleTap;
     this.onLongPress        = onLongPress;
     this.onHighlightChanged = onHighlightChanged;
     this.containedInkWell   = containedInkWell;
     this.highlightShape     = highlightShape;
     this.radius             = radius;
     this.borderRadius       = borderRadius;
     this.customBorder       = customBorder;
     this.highlightColor     = highlightColor;
     this.splashColor        = splashColor;
     this.splashFactory      = splashFactory;
 }
コード例 #3
0
 public ListTile(
     Key key                              = null,
     Widget leading                       = null,
     Widget title                         = null,
     Widget subtitle                      = null,
     Widget trailing                      = null,
     bool isThreeLine                     = false,
     bool?dense                           = null,
     EdgeInsets contentPadding            = null,
     bool enabled                         = true,
     GestureTapCallback onTap             = null,
     GestureLongPressCallback onLongPress = null,
     bool selected                        = false
     ) : base(key: key)
 {
     D.assert(!isThreeLine || subtitle != null);
     this.leading        = leading;
     this.title          = title;
     this.subtitle       = subtitle;
     this.trailing       = trailing;
     this.isThreeLine    = isThreeLine;
     this.dense          = dense;
     this.contentPadding = contentPadding;
     this.enabled        = enabled;
     this.onTap          = onTap;
     this.onLongPress    = onLongPress;
     this.selected       = selected;
 }
コード例 #4
0
 public InkWell(
     Key key                                    = null,
     Widget child                               = null,
     GestureTapCallback onTap                   = null,
     GestureTapCallback onDoubleTap             = null,
     GestureLongPressCallback onLongPress       = null,
     GestureTapDownCallback onTapDown           = null,
     GestureTapCancelCallback onTapCancel       = null,
     ValueChanged <bool> onHighlightChanged     = null,
     ValueChanged <bool> onHover                = null,
     Color focusColor                           = null,
     Color hoverColor                           = null,
     Color highlightColor                       = null,
     Color splashColor                          = null,
     InteractiveInkFeatureFactory splashFactory = null,
     float?radius                               = null,
     BorderRadius borderRadius                  = null,
     ShapeBorder customBorder                   = null,
     bool enableFeedback                        = true,
     FocusNode focusNode                        = null,
     bool canRequestFocus                       = true,
     ValueChanged <bool> onFocusChange          = null,
     bool autofocus                             = false
     ) : base(
         key: key,
         child: child,
         onTap: onTap,
         onDoubleTap: onDoubleTap,
         onLongPress: onLongPress,
         onTapDown: onTapDown,
         onTapCancel: () => {
     if (onTapCancel != null)
     {
         onTapCancel();
     }
 },
         onHighlightChanged: onHighlightChanged,
         onHover: onHover,
         containedInkWell: true,
         highlightShape: BoxShape.rectangle,
         focusColor: focusColor,
         hoverColor: hoverColor,
         highlightColor: highlightColor,
         splashColor: splashColor,
         splashFactory: splashFactory,
         radius: radius,
         borderRadius: borderRadius,
         customBorder: customBorder,
         enableFeedback: enableFeedback,
         focusNode: focusNode,
         canRequestFocus: canRequestFocus,
         onFocusChange: onFocusChange,
         autofocus: autofocus) {
 }
コード例 #5
0
        wrapForLongPress(GestureLongPressCallback callback, BuildContext context)
        {
            if (callback == null)
            {
                return(null);
            }

            return(() => {
                forLongPress(context);
                callback();
            });
        }
コード例 #6
0
 public InkResponse(
     Key key                                    = null,
     Widget child                               = null,
     GestureTapCallback onTap                   = null,
     GestureTapDownCallback onTapDown           = null,
     GestureTapCancelCallback onTapCancel       = null,
     GestureTapCallback onDoubleTap             = null,
     GestureLongPressCallback onLongPress       = null,
     ValueChanged <bool> onHighlightChanged     = null,
     ValueChanged <bool> onHover                = null,
     bool containedInkWell                      = false,
     BoxShape highlightShape                    = BoxShape.circle,
     float?radius                               = null,
     BorderRadius borderRadius                  = null,
     ShapeBorder customBorder                   = null,
     Color focusColor                           = null,
     Color hoverColor                           = null,
     Color highlightColor                       = null,
     Color splashColor                          = null,
     InteractiveInkFeatureFactory splashFactory = null,
     bool enableFeedback                        = true,
     FocusNode focusNode                        = null,
     bool canRequestFocus                       = true,
     ValueChanged <bool> onFocusChange          = null,
     bool autofocus                             = false) : base(key: key)
 {
     this.child              = child;
     this.onTap              = onTap;
     this.onTapDown          = onTapDown;
     this.onTapCancel        = onTapCancel;
     this.onDoubleTap        = onDoubleTap;
     this.onLongPress        = onLongPress;
     this.onHighlightChanged = onHighlightChanged;
     this.onHover            = onHover;
     this.containedInkWell   = containedInkWell;
     this.highlightShape     = highlightShape;
     this.radius             = radius;
     this.borderRadius       = borderRadius;
     this.customBorder       = customBorder;
     this.focusColor         = focusColor;
     this.hoverColor         = hoverColor;
     this.highlightColor     = highlightColor;
     this.splashColor        = splashColor;
     this.splashFactory      = splashFactory;
     this.enableFeedback     = enableFeedback;
     this.focusNode          = focusNode;
     this.canRequestFocus    = canRequestFocus;
     this.onFocusChange      = onFocusChange;
     this.autofocus          = autofocus;
 }
コード例 #7
0
 public TableRowInkWell(
     Key key                                = null,
     Widget child                           = null,
     GestureTapCallback onTap               = null,
     GestureTapCallback onDoubleTap         = null,
     GestureLongPressCallback onLongPress   = null,
     ValueChanged <bool> onHighlightChanged = null
     ) : base(
         key: key,
         child: child,
         onTap: onTap,
         onDoubleTap: onDoubleTap,
         onLongPress: onLongPress,
         onHighlightChanged: onHighlightChanged,
         containedInkWell: true,
         highlightShape: BoxShape.rectangle
         )
 {
 }
コード例 #8
0
 public InkWell(
     Key key                                    = null,
     Widget child                               = null,
     GestureTapCallback onTap                   = null,
     GestureTapCallback onDoubleTap             = null,
     GestureLongPressCallback onLongPress       = null,
     GestureTapDownCallback onTapDown           = null,
     GestureTapCancelCallback onTapCancel       = null,
     ValueChanged <bool> onHighlightChanged     = null,
     Color highlightColor                       = null,
     Color splashColor                          = null,
     InteractiveInkFeatureFactory splashFactory = null,
     float?radius                               = null,
     BorderRadius borderRadius                  = null,
     ShapeBorder customBorder                   = null
     ) : base(
         key: key,
         child: child,
         onTap: onTap,
         onDoubleTap: onDoubleTap,
         onLongPress: onLongPress,
         onTapDown: onTapDown,
         onTapCancel: () => {
     if (onTapCancel != null)
     {
         onTapCancel();
     }
 },
         onHighlightChanged: onHighlightChanged,
         containedInkWell: true,
         highlightShape: BoxShape.rectangle,
         highlightColor: highlightColor,
         splashColor: splashColor,
         splashFactory: splashFactory,
         radius: radius,
         borderRadius: borderRadius,
         customBorder: customBorder) {
 }
コード例 #9
0
        public GestureDetector(
            Key key      = null,
            Widget child = null,
            GestureTapDownCallback onTapDown         = null,
            GestureTapUpCallback onTapUp             = null,
            GestureTapCallback onTap                 = null,
            GestureTapCancelCallback onTapCancel     = null,
            GestureDoubleTapCallback onDoubleTap     = null,
            GestureLongPressCallback onLongPress     = null,
            GestureLongPressUpCallback onLongPressUp = null,
            GestureLongPressDragStartCallback onLongPressDragStart   = null,
            GestureLongPressDragUpdateCallback onLongPressDragUpdate = null,
            GestureLongPressDragUpCallback onLongPressDragUp         = null,
            GestureDragDownCallback onVerticalDragDown       = null,
            GestureDragStartCallback onVerticalDragStart     = null,
            GestureDragUpdateCallback onVerticalDragUpdate   = null,
            GestureDragEndCallback onVerticalDragEnd         = null,
            GestureDragCancelCallback onVerticalDragCancel   = null,
            GestureDragDownCallback onHorizontalDragDown     = null,
            GestureDragStartCallback onHorizontalDragStart   = null,
            GestureDragUpdateCallback onHorizontalDragUpdate = null,
            GestureDragEndCallback onHorizontalDragEnd       = null,
            GestureDragCancelCallback onHorizontalDragCancel = null,
            GestureDragDownCallback onPanDown        = null,
            GestureDragStartCallback onPanStart      = null,
            GestureDragUpdateCallback onPanUpdate    = null,
            GestureDragEndCallback onPanEnd          = null,
            GestureDragCancelCallback onPanCancel    = null,
            GestureScaleStartCallback onScaleStart   = null,
            GestureScaleUpdateCallback onScaleUpdate = null,
            GestureScaleEndCallback onScaleEnd       = null,
            HitTestBehavior behavior            = HitTestBehavior.deferToChild,
            DragStartBehavior dragStartBehavior = DragStartBehavior.down
            ) : base(key)
        {
            D.assert(() => {
                bool haveVerticalDrag =
                    onVerticalDragStart != null || onVerticalDragUpdate != null ||
                    onVerticalDragEnd != null;
                bool haveHorizontalDrag =
                    onHorizontalDragStart != null || onHorizontalDragUpdate != null ||
                    onHorizontalDragEnd != null;
                bool haveLongPress     = onLongPress != null || onLongPressUp != null;
                bool haveLongPressDrag = onLongPressDragStart != null || onLongPressDragUpdate != null ||
                                         onLongPressDragUp != null;
                bool havePan   = onPanStart != null || onPanUpdate != null || onPanEnd != null;
                bool haveScale = onScaleStart != null || onScaleUpdate != null || onScaleEnd != null;
                if (havePan || haveScale)
                {
                    if (havePan && haveScale)
                    {
                        throw new UIWidgetsError(
                            "Incorrect GestureDetector arguments.\n" +
                            "Having both a pan gesture recognizer and a scale gesture recognizer is redundant; scale is a superset of pan. Just use the scale gesture recognizer."
                            );
                    }

                    string recognizer = havePan ? "pan" : "scale";
                    if (haveVerticalDrag && haveHorizontalDrag)
                    {
                        throw new UIWidgetsError(
                            "Incorrect GestureDetector arguments.\n" +
                            $"Simultaneously having a vertical drag gesture recognizer, a horizontal drag gesture recognizer, and a {recognizer} gesture recognizer " +
                            $"will result in the {recognizer} gesture recognizer being ignored, since the other two will catch all drags."
                            );
                    }
                }

                if (haveLongPress && haveLongPressDrag)
                {
                    throw new UIWidgetsError(
                        "Incorrect GestureDetector arguments.\n" +
                        "Having both a long press and a long press drag recognizer is " +
                        "redundant as the long press drag is a superset of long press. " +
                        "Except long press drag allows for drags after the long press is " +
                        "triggered."
                        );
                }

                return(true);
            });

            this.child                  = child;
            this.onTapDown              = onTapDown;
            this.onTapUp                = onTapUp;
            this.onTap                  = onTap;
            this.onTapCancel            = onTapCancel;
            this.onDoubleTap            = onDoubleTap;
            this.onLongPress            = onLongPress;
            this.onLongPressUp          = onLongPressUp;
            this.onLongPressDragStart   = onLongPressDragStart;
            this.onLongPressDragUpdate  = onLongPressDragUpdate;
            this.onLongPressDragUp      = onLongPressDragUp;
            this.onVerticalDragDown     = onVerticalDragDown;
            this.onVerticalDragStart    = onVerticalDragStart;
            this.onVerticalDragUpdate   = onVerticalDragUpdate;
            this.onVerticalDragEnd      = onVerticalDragEnd;
            this.onVerticalDragCancel   = onVerticalDragCancel;
            this.onHorizontalDragDown   = onHorizontalDragDown;
            this.onHorizontalDragStart  = onHorizontalDragStart;
            this.onHorizontalDragUpdate = onHorizontalDragUpdate;
            this.onHorizontalDragEnd    = onHorizontalDragEnd;
            this.onHorizontalDragCancel = onHorizontalDragCancel;
            this.onPanDown              = onPanDown;
            this.onPanStart             = onPanStart;
            this.onPanUpdate            = onPanUpdate;
            this.onPanEnd               = onPanEnd;
            this.onPanCancel            = onPanCancel;
            this.onScaleStart           = onScaleStart;
            this.onScaleUpdate          = onScaleUpdate;
            this.onScaleEnd             = onScaleEnd;
            this.behavior               = behavior;
            this.dragStartBehavior      = dragStartBehavior;
        }
コード例 #10
0
        public RawMaterialButton(
            Key key = null,
            VoidCallback onPressed = null,
            GestureLongPressCallback onLongPress   = null,
            ValueChanged <bool> onHighlightChanged = null,
            TextStyle textStyle         = null,
            Color fillColor             = null,
            Color focusColor            = null,
            Color hoverColor            = null,
            Color highlightColor        = null,
            Color splashColor           = null,
            float elevation             = 2.0f,
            float focusElevation        = 4.0f,
            float hoverElevation        = 4.0f,
            float highlightElevation    = 8.0f,
            float disabledElevation     = 0.0f,
            EdgeInsetsGeometry padding  = null,
            VisualDensity visualDensity = null,
            BoxConstraints constraints  = null,
            ShapeBorder shape           = null,
            TimeSpan?animationDuration  = null,
            Clip clipBehavior           = Clip.none,
            FocusNode focusNode         = null,
            bool autofocus = false,
            MaterialTapTargetSize?materialTapTargetSize = null,
            Widget child        = null,
            bool enableFeedback = true) : base(key: key)
        {
            D.assert(elevation >= 0.0f);
            D.assert(focusElevation >= 0.0f);
            D.assert(focusElevation >= 0.0f);
            D.assert(highlightElevation >= 0.0f);
            D.assert(disabledElevation >= 0.0f);

            MaterialTapTargetSize _materialTapTargetSize = materialTapTargetSize ?? MaterialTapTargetSize.padded;

            shape         = shape ?? new RoundedRectangleBorder();
            visualDensity = visualDensity ?? new VisualDensity();
            padding       = padding ?? EdgeInsets.zero;
            constraints   = constraints ?? new BoxConstraints(minWidth: 88.0f, minHeight: 36.0f);
            TimeSpan _animationDuration = animationDuration ?? material_.kThemeChangeDuration;

            this.onPressed          = onPressed;
            this.onLongPress        = onLongPress;
            this.onHighlightChanged = onHighlightChanged;
            this.textStyle          = textStyle;
            this.fillColor          = fillColor;
            this.focusColor         = focusColor;
            this.hoverColor         = hoverColor;
            this.highlightColor     = highlightColor;
            this.splashColor        = splashColor;
            this.elevation          = elevation;
            this.focusElevation     = focusElevation;
            this.hoverElevation     = hoverElevation;
            this.highlightElevation = highlightElevation;
            this.disabledElevation  = disabledElevation;
            this.padding            = padding;
            this.visualDensity      = visualDensity;
            this.constraints        = constraints;
            this.shape                 = shape;
            this.animationDuration     = _animationDuration;
            this.clipBehavior          = clipBehavior;
            this.focusNode             = focusNode;
            this.autofocus             = autofocus;
            this.enableFeedback        = enableFeedback;
            this.materialTapTargetSize = _materialTapTargetSize;
            this.child                 = child;
        }
コード例 #11
0
        public GestureDetector(
            Key key      = null,
            Widget child = null,
            GestureTapDownCallback onTapDown                 = null,
            GestureTapUpCallback onTapUp                     = null,
            GestureTapCallback onTap                         = null,
            GestureTapCancelCallback onTapCancel             = null,
            GestureDoubleTapCallback onDoubleTap             = null,
            GestureLongPressCallback onLongPress             = null,
            GestureDragDownCallback onVerticalDragDown       = null,
            GestureDragStartCallback onVerticalDragStart     = null,
            GestureDragUpdateCallback onVerticalDragUpdate   = null,
            GestureDragEndCallback onVerticalDragEnd         = null,
            GestureDragCancelCallback onVerticalDragCancel   = null,
            GestureDragDownCallback onHorizontalDragDown     = null,
            GestureDragStartCallback onHorizontalDragStart   = null,
            GestureDragUpdateCallback onHorizontalDragUpdate = null,
            GestureDragEndCallback onHorizontalDragEnd       = null,
            GestureDragCancelCallback onHorizontalDragCancel = null,
            GestureDragDownCallback onPanDown                = null,
            GestureDragStartCallback onPanStart              = null,
            GestureDragUpdateCallback onPanUpdate            = null,
            GestureDragEndCallback onPanEnd                  = null,
            GestureDragCancelCallback onPanCancel            = null,
            HitTestBehavior behavior                         = HitTestBehavior.deferToChild) : base(key)
        {
            D.assert(() => {
                bool haveVerticalDrag =
                    onVerticalDragStart != null || onVerticalDragUpdate != null ||
                    onVerticalDragEnd != null;
                bool haveHorizontalDrag =
                    onHorizontalDragStart != null || onHorizontalDragUpdate != null ||
                    onHorizontalDragEnd != null;
                bool havePan = onPanStart != null || onPanUpdate != null || onPanEnd != null;
                if (havePan)
                {
                    if (haveVerticalDrag && haveHorizontalDrag)
                    {
                        throw new UIWidgetsError(
                            "Incorrect GestureDetector arguments.\n" +
                            "Simultaneously having a vertical drag gesture recognizer, a horizontal drag gesture recognizer, and a pan gesture recognizer " +
                            "will result in the pan gesture recognizer being ignored, since the other two will catch all drags."
                            );
                    }
                }

                return(true);
            });

            this.child                  = child;
            this.onTapDown              = onTapDown;
            this.onTapUp                = onTapUp;
            this.onTap                  = onTap;
            this.onTapCancel            = onTapCancel;
            this.onDoubleTap            = onDoubleTap;
            this.onLongPress            = onLongPress;
            this.onVerticalDragDown     = onVerticalDragDown;
            this.onVerticalDragStart    = onVerticalDragStart;
            this.onVerticalDragUpdate   = onVerticalDragUpdate;
            this.onVerticalDragEnd      = onVerticalDragEnd;
            this.onVerticalDragCancel   = onVerticalDragCancel;
            this.onHorizontalDragDown   = onHorizontalDragDown;
            this.onHorizontalDragStart  = onHorizontalDragStart;
            this.onHorizontalDragUpdate = onHorizontalDragUpdate;
            this.onHorizontalDragEnd    = onHorizontalDragEnd;
            this.onHorizontalDragCancel = onHorizontalDragCancel;
            this.onPanDown              = onPanDown;
            this.onPanStart             = onPanStart;
            this.onPanUpdate            = onPanUpdate;
            this.onPanEnd               = onPanEnd;
            this.onPanCancel            = onPanCancel;
            this.behavior               = behavior;
        }
コード例 #12
0
        public GestureDetector(
            Key key      = null,
            Widget child = null,
            GestureTapDownCallback onTapDown                         = null,
            GestureTapUpCallback onTapUp                             = null,
            GestureTapCallback onTap                                 = null,
            GestureTapCancelCallback onTapCancel                     = null,
            GestureTapDownCallback onSecondaryTapDown                = null,
            GestureTapUpCallback onSecondaryTapUp                    = null,
            GestureTapCancelCallback onSecondaryTapCancel            = null,
            GestureDoubleTapCallback onDoubleTap                     = null,
            GestureLongPressCallback onLongPress                     = null,
            GestureLongPressStartCallback onLongPressStart           = null,
            GestureLongPressMoveUpdateCallback onLongPressMoveUpdate = null,
            GestureLongPressUpCallback onLongPressUp                 = null,
            GestureLongPressEndCallback onLongPressEnd               = null,
            GestureDragDownCallback onVerticalDragDown               = null,
            GestureDragStartCallback onVerticalDragStart             = null,
            GestureDragUpdateCallback onVerticalDragUpdate           = null,
            GestureDragEndCallback onVerticalDragEnd                 = null,
            GestureDragCancelCallback onVerticalDragCancel           = null,
            GestureDragDownCallback onHorizontalDragDown             = null,
            GestureDragStartCallback onHorizontalDragStart           = null,
            GestureDragUpdateCallback onHorizontalDragUpdate         = null,
            GestureDragEndCallback onHorizontalDragEnd               = null,
            GestureDragCancelCallback onHorizontalDragCancel         = null,
            GestureForcePressStartCallback onForcePressStart         = null,
            GestureForcePressPeakCallback onForcePressPeak           = null,
            GestureForcePressUpdateCallback onForcePressUpdate       = null,
            GestureForcePressEndCallback onForcePressEnd             = null,
            GestureDragDownCallback onPanDown                        = null,
            GestureDragStartCallback onPanStart                      = null,
            GestureDragUpdateCallback onPanUpdate                    = null,
            GestureDragEndCallback onPanEnd                          = null,
            GestureDragCancelCallback onPanCancel                    = null,
            GestureScaleStartCallback onScaleStart                   = null,
            GestureScaleUpdateCallback onScaleUpdate                 = null,
            GestureScaleEndCallback onScaleEnd                       = null,
            HitTestBehavior behavior                                 = HitTestBehavior.deferToChild,
            DragStartBehavior dragStartBehavior                      = DragStartBehavior.down
            ) : base(key)
        {
            D.assert(() => {
                bool haveVerticalDrag =
                    onVerticalDragStart != null || onVerticalDragUpdate != null ||
                    onVerticalDragEnd != null;
                bool haveHorizontalDrag =
                    onHorizontalDragStart != null || onHorizontalDragUpdate != null ||
                    onHorizontalDragEnd != null;
                bool havePan   = onPanStart != null || onPanUpdate != null || onPanEnd != null;
                bool haveScale = onScaleStart != null || onScaleUpdate != null || onScaleEnd != null;
                if (havePan || haveScale)
                {
                    if (havePan && haveScale)
                    {
                        throw new UIWidgetsError(new List <DiagnosticsNode> {
                            new ErrorSummary("Incorrect GestureDetector arguments."),
                            new ErrorDescription(
                                "Having both a pan gesture recognizer and a scale gesture recognizer is redundant; scale is a superset of pan."
                                ),
                            new ErrorHint("Just use the scale gesture recognizer.")
                        });
                    }

                    string recognizer = havePan ? "pan" : "scale";
                    if (haveVerticalDrag && haveHorizontalDrag)
                    {
                        throw new UIWidgetsError(
                            "Incorrect GestureDetector arguments.\n" +
                            $"Simultaneously having a vertical drag gesture recognizer, a horizontal drag gesture recognizer, and a {recognizer} gesture recognizer " +
                            $"will result in the {recognizer} gesture recognizer being ignored, since the other two will catch all drags."
                            );
                    }
                }

                return(true);
            });

            this.child                  = child;
            this.onTapDown              = onTapDown;
            this.onTapUp                = onTapUp;
            this.onTap                  = onTap;
            this.onTapCancel            = onTapCancel;
            this.onSecondaryTapDown     = onSecondaryTapDown;
            this.onSecondaryTapUp       = onSecondaryTapUp;
            this.onSecondaryTapCancel   = onSecondaryTapCancel;
            this.onDoubleTap            = onDoubleTap;
            this.onLongPress            = onLongPress;
            this.onLongPressUp          = onLongPressUp;
            this.onLongPressStart       = onLongPressStart;
            this.onLongPressMoveUpdate  = onLongPressMoveUpdate;
            this.onLongPressEnd         = onLongPressEnd;
            this.onVerticalDragDown     = onVerticalDragDown;
            this.onVerticalDragStart    = onVerticalDragStart;
            this.onVerticalDragUpdate   = onVerticalDragUpdate;
            this.onVerticalDragEnd      = onVerticalDragEnd;
            this.onVerticalDragCancel   = onVerticalDragCancel;
            this.onHorizontalDragDown   = onHorizontalDragDown;
            this.onHorizontalDragStart  = onHorizontalDragStart;
            this.onHorizontalDragUpdate = onHorizontalDragUpdate;
            this.onHorizontalDragEnd    = onHorizontalDragEnd;
            this.onHorizontalDragCancel = onHorizontalDragCancel;
            this.onForcePressEnd        = onForcePressEnd;
            this.onForcePressPeak       = onForcePressPeak;
            this.onForcePressStart      = onForcePressStart;
            this.onForcePressUpdate     = onForcePressUpdate;
            this.onPanDown              = onPanDown;
            this.onPanStart             = onPanStart;
            this.onPanUpdate            = onPanUpdate;
            this.onPanEnd               = onPanEnd;
            this.onPanCancel            = onPanCancel;
            this.onScaleStart           = onScaleStart;
            this.onScaleUpdate          = onScaleUpdate;
            this.onScaleEnd             = onScaleEnd;
            this.behavior               = behavior;
            this.dragStartBehavior      = dragStartBehavior;
        }