static bool isRectInDirection(FocusDirection direction, const IntRect& curRect, const IntRect& targetRect) { IntPoint center(targetRect.center()); int targetMiddle = isHorizontalMove(direction) ? center.x() : center.y(); switch (direction) { case FocusDirectionLeft: return targetMiddle < curRect.x(); case FocusDirectionRight: return targetMiddle > curRect.right(); case FocusDirectionUp: return targetMiddle < curRect.y(); case FocusDirectionDown: return targetMiddle > curRect.bottom(); default: ASSERT_NOT_REACHED(); } return false; }
static inline int middle(FocusDirection direction, const IntRect& rect) { IntPoint center(rect.center()); return isHorizontalMove(direction) ? center.y(): center.x(); }
static inline int end(FocusDirection direction, const IntRect& rect) { return isHorizontalMove(direction) ? rect.bottom() : rect.right(); }
static inline int start(FocusDirection direction, const IntRect& rect) { return isHorizontalMove(direction) ? rect.y() : rect.x(); }
static inline int end(FocusDirection direction, const IntRect& rect) { return isHorizontalMove(direction) ? rect.maxY() : rect.maxX(); }
static inline LayoutUnit end(FocusDirection direction, const LayoutRect& rect) { return isHorizontalMove(direction) ? rect.maxY() : rect.maxX(); }
static inline LayoutUnit middle(FocusDirection direction, const LayoutRect& rect) { LayoutPoint center(rect.center()); return isHorizontalMove(direction) ? center.y(): center.x(); }
static inline LayoutUnit start(FocusDirection direction, const LayoutRect& rect) { return isHorizontalMove(direction) ? rect.y() : rect.x(); }