getTooltipMargin static method

EdgeInsets getTooltipMargin({
  1. required CloseButtonType? closeButtonType,
  2. required double? closeButtonSize,
  3. required double arrowTipDistance,
  4. required double arrowLength,
  5. required TooltipDirection preferredDirection,
  6. required bool showCloseButton,
})

Implementation

static EdgeInsets getTooltipMargin({
  required CloseButtonType? closeButtonType,
  required double? closeButtonSize,
  required double arrowTipDistance,
  required double arrowLength,
  required TooltipDirection preferredDirection,
  required bool showCloseButton,
}) {
  final top = !showCloseButton
      ? 0.0
      : (closeButtonType == CloseButtonType.outside)
          ? closeButtonSize! + 12
          : 0.0;

  switch (preferredDirection) {
    case TooltipDirection.down:
      return EdgeInsets.only(top: arrowTipDistance + arrowLength);

    case TooltipDirection.up:
      return EdgeInsets.only(
          bottom: arrowTipDistance + arrowLength, top: top);

    case TooltipDirection.left:
      return EdgeInsets.only(right: arrowTipDistance + arrowLength, top: top);

    case TooltipDirection.right:
      return EdgeInsets.only(left: arrowTipDistance + arrowLength, top: top);

    default:
      throw ArgumentError(preferredDirection);
  }
}