#ifndef UI_VIEWS_BUBBLE_BUBBLE_BORDER_ARROW_UTILS_H_
#define UI_VIEWS_BUBBLE_BUBBLE_BORDER_ARROW_UTILS_H_
#include "ui/views/bubble/bubble_border.h"
#include "ui/views/views_export.h"
namespace views {
enum class BubbleArrowSide { … };
VIEWS_EXPORT BubbleArrowSide GetBubbleArrowSide(BubbleBorder::Arrow arrow);
VIEWS_EXPORT gfx::Point GetArrowAnchorPointFromAnchorRect(
BubbleBorder::Arrow arrow,
const gfx::Rect& anchor_rect);
VIEWS_EXPORT gfx::Vector2d GetContentBoundsOffsetToArrowAnchorPoint(
const gfx::Rect& contents_bounds,
BubbleBorder::Arrow arrow,
const gfx::Point& anchor_point);
VIEWS_EXPORT BubbleArrowSide GetBubbleArrowSide(BubbleBorder::Arrow arrow);
VIEWS_EXPORT gfx::Vector2d GetContentsBoundsOffsetToPlaceVisibleArrow(
BubbleBorder::Arrow arrow,
bool include_gap = true);
VIEWS_EXPORT gfx::Insets GetVisibleArrowInsets(BubbleBorder::Arrow arrow,
bool include_gap);
VIEWS_EXPORT bool IsVerticalArrow(BubbleBorder::Arrow arrow);
VIEWS_EXPORT gfx::Size GetVisibleArrowSize(BubbleBorder::Arrow arrow);
}
#endif