private static bool _003CBestLocation_003Eg__InsideBottom_007C22_1(ref _003C_003Ec__DisplayClass22_0 P_0)
 {
     return(P_0.targetRect.get_yMin() - P_0.tooltipSize.y >= P_0.screenRect.get_yMin());
 }
 private static bool _003CBestLocation_003Eg__InsideRight_007C22_3(ref _003C_003Ec__DisplayClass22_0 P_0)
 {
     return(P_0.targetRect.get_xMax() + P_0.tooltipSize.x <= P_0.screenRect.get_xMax());
 }
        private static TooltipPosition BestLocation(Vector2 tooltipSize, Rect screenRect, Rect targetRect, TooltipPosition position)
        {
            //IL_0002: Unknown result type (might be due to invalid IL or missing references)
            //IL_0003: Unknown result type (might be due to invalid IL or missing references)
            //IL_000a: Unknown result type (might be due to invalid IL or missing references)
            //IL_000b: Unknown result type (might be due to invalid IL or missing references)
            //IL_0012: Unknown result type (might be due to invalid IL or missing references)
            //IL_0013: Unknown result type (might be due to invalid IL or missing references)
            _003C_003Ec__DisplayClass22_0 _003C_003Ec__DisplayClass22_ = default(_003C_003Ec__DisplayClass22_0);

            _003C_003Ec__DisplayClass22_.targetRect  = targetRect;
            _003C_003Ec__DisplayClass22_.tooltipSize = tooltipSize;
            _003C_003Ec__DisplayClass22_.screenRect  = screenRect;
            switch (position)
            {
            case TooltipPosition.Top:
                if (_003CBestLocation_003Eg__InsideTop_007C22_0(ref _003C_003Ec__DisplayClass22_))
                {
                    return(TooltipPosition.Top);
                }
                if (!_003CBestLocation_003Eg__InsideBottom_007C22_1(ref _003C_003Ec__DisplayClass22_))
                {
                    return(TooltipPosition.Top);
                }
                return(TooltipPosition.Bottom);

            case TooltipPosition.Bottom:
                if (_003CBestLocation_003Eg__InsideBottom_007C22_1(ref _003C_003Ec__DisplayClass22_))
                {
                    return(TooltipPosition.Bottom);
                }
                if (!_003CBestLocation_003Eg__InsideTop_007C22_0(ref _003C_003Ec__DisplayClass22_))
                {
                    return(TooltipPosition.Bottom);
                }
                return(TooltipPosition.Top);

            case TooltipPosition.Left:
                if (_003CBestLocation_003Eg__InsideLeft_007C22_2(ref _003C_003Ec__DisplayClass22_))
                {
                    return(TooltipPosition.Left);
                }
                if (!_003CBestLocation_003Eg__InsideRight_007C22_3(ref _003C_003Ec__DisplayClass22_))
                {
                    return(TooltipPosition.Left);
                }
                return(TooltipPosition.Right);

            case TooltipPosition.Right:
                if (_003CBestLocation_003Eg__InsideRight_007C22_3(ref _003C_003Ec__DisplayClass22_))
                {
                    return(TooltipPosition.Right);
                }
                if (!_003CBestLocation_003Eg__InsideLeft_007C22_2(ref _003C_003Ec__DisplayClass22_))
                {
                    return(TooltipPosition.Right);
                }
                return(TooltipPosition.Left);

            default:
                throw new ArgumentOutOfRangeException("position", position, null);
            }
        }