Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(104)

Unified Diff: ui/views/bubble/tray_bubble_view.cc

Issue 12096084: Cleanup BubbleFrameView and BubbleBorder construction. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Additional refactoring and cleanup. Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/views/bubble/tray_bubble_view.cc
diff --git a/ui/views/bubble/tray_bubble_view.cc b/ui/views/bubble/tray_bubble_view.cc
index c81752dca7e251567d52dac65ad9a2c7ade93d51..fa5786f4f798300a3559ad50116b9a15e89425ef 100644
--- a/ui/views/bubble/tray_bubble_view.cc
+++ b/ui/views/bubble/tray_bubble_view.cc
@@ -39,12 +39,12 @@ namespace internal {
// Custom border for TrayBubbleView. Contains special logic for GetBounds()
// to stack bubbles with no arrows correctly. Also calculates the arrow offset.
-class TrayBubbleBorder : public views::BubbleBorder {
+class TrayBubbleBorder : public BubbleBorder {
public:
- TrayBubbleBorder(views::View* owner,
- views::View* anchor,
+ TrayBubbleBorder(View* owner,
+ View* anchor,
TrayBubbleView::InitParams params)
- : views::BubbleBorder(params.arrow_location, params.shadow),
+ : BubbleBorder(params.arrow_location, params.shadow, params.arrow_color),
owner_(owner),
anchor_(anchor),
tray_arrow_offset_(params.arrow_offset) {
@@ -55,15 +55,12 @@ class TrayBubbleBorder : public views::BubbleBorder {
virtual ~TrayBubbleBorder() {}
- // Overridden from views::BubbleBorder.
- // Override views::BubbleBorder to set the bubble on top of the anchor when
- // it has no arrow.
+ // Overridden from BubbleBorder.
+ // Sets the bubble on top of the anchor when it has no arrow.
virtual gfx::Rect GetBounds(const gfx::Rect& position_relative_to,
const gfx::Size& contents_size) const OVERRIDE {
- if (has_arrow(arrow_location())) {
- return views::BubbleBorder::GetBounds(position_relative_to,
- contents_size);
- }
+ if (has_arrow(arrow_location()))
+ return BubbleBorder::GetBounds(position_relative_to, contents_size);
gfx::Size border_size(contents_size);
gfx::Insets insets = GetInsets();
@@ -79,8 +76,8 @@ class TrayBubbleBorder : public views::BubbleBorder {
void UpdateArrowOffset() {
int arrow_offset = 0;
- if (arrow_location() == views::BubbleBorder::BOTTOM_RIGHT ||
- arrow_location() == views::BubbleBorder::BOTTOM_LEFT) {
+ if (arrow_location() == BubbleBorder::BOTTOM_RIGHT ||
+ arrow_location() == BubbleBorder::BOTTOM_LEFT) {
// Note: tray_arrow_offset_ is relative to the anchor widget.
if (tray_arrow_offset_ ==
TrayBubbleView::InitParams::kArrowDefaultOffset) {
@@ -88,12 +85,10 @@ class TrayBubbleBorder : public views::BubbleBorder {
} else {
const int width = owner_->GetWidget()->GetContentsView()->width();
gfx::Point pt(tray_arrow_offset_, 0);
- views::View::ConvertPointToScreen(
- anchor_->GetWidget()->GetRootView(), &pt);
- views::View::ConvertPointFromScreen(
- owner_->GetWidget()->GetRootView(), &pt);
+ View::ConvertPointToScreen(anchor_->GetWidget()->GetRootView(), &pt);
+ View::ConvertPointFromScreen(owner_->GetWidget()->GetRootView(), &pt);
arrow_offset = pt.x();
- if (arrow_location() == views::BubbleBorder::BOTTOM_RIGHT)
+ if (arrow_location() == BubbleBorder::BOTTOM_RIGHT)
arrow_offset = width - arrow_offset;
arrow_offset = std::max(arrow_offset, kArrowMinOffset);
}
@@ -103,10 +98,8 @@ class TrayBubbleBorder : public views::BubbleBorder {
arrow_offset = kArrowMinOffset;
} else {
gfx::Point pt(0, tray_arrow_offset_);
- views::View::ConvertPointToScreen(
- anchor_->GetWidget()->GetRootView(), &pt);
- views::View::ConvertPointFromScreen(
- owner_->GetWidget()->GetRootView(), &pt);
+ View::ConvertPointToScreen(anchor_->GetWidget()->GetRootView(), &pt);
+ View::ConvertPointFromScreen(owner_->GetWidget()->GetRootView(), &pt);
arrow_offset = pt.y();
arrow_offset = std::max(arrow_offset, kArrowMinOffset);
}
@@ -115,8 +108,8 @@ class TrayBubbleBorder : public views::BubbleBorder {
}
private:
- views::View* owner_;
- views::View* anchor_;
+ View* owner_;
+ View* anchor_;
const int tray_arrow_offset_;
DISALLOW_COPY_AND_ASSIGN(TrayBubbleBorder);
@@ -176,27 +169,27 @@ base::Closure TrayBubbleContentMask::PrepareForLayerBoundsChange() {
// Custom layout for the bubble-view. Does the default box-layout if there is
// enough height. Otherwise, makes sure the bottom rows are visible.
-class BottomAlignedBoxLayout : public views::BoxLayout {
+class BottomAlignedBoxLayout : public BoxLayout {
public:
explicit BottomAlignedBoxLayout(TrayBubbleView* bubble_view)
- : views::BoxLayout(views::BoxLayout::kVertical, 0, 0, 0),
+ : BoxLayout(BoxLayout::kVertical, 0, 0, 0),
bubble_view_(bubble_view) {
}
virtual ~BottomAlignedBoxLayout() {}
private:
- virtual void Layout(views::View* host) OVERRIDE {
+ virtual void Layout(View* host) OVERRIDE {
if (host->height() >= host->GetPreferredSize().height() ||
!bubble_view_->is_gesture_dragging()) {
- views::BoxLayout::Layout(host);
+ BoxLayout::Layout(host);
return;
}
int consumed_height = 0;
for (int i = host->child_count() - 1;
i >= 0 && consumed_height < host->height(); --i) {
- views::View* child = host->child_at(i);
+ View* child = host->child_at(i);
if (!child->visible())
continue;
gfx::Size size = child->GetPreferredSize();
@@ -232,16 +225,16 @@ TrayBubbleView::InitParams::InitParams(AnchorType anchor_type,
can_activate(false),
close_on_deactivate(true),
arrow_color(SK_ColorBLACK),
- arrow_location(views::BubbleBorder::NONE),
+ arrow_location(BubbleBorder::NONE),
arrow_offset(kArrowDefaultOffset),
hide_arrow(false),
- shadow(views::BubbleBorder::BIG_SHADOW),
- arrow_alignment(views::BubbleBorder::ALIGN_EDGE_TO_ANCHOR_EDGE) {
+ shadow(BubbleBorder::BIG_SHADOW),
+ arrow_alignment(BubbleBorder::ALIGN_EDGE_TO_ANCHOR_EDGE) {
}
// static
TrayBubbleView* TrayBubbleView::Create(gfx::NativeView parent_window,
- views::View* anchor,
+ View* anchor,
Delegate* delegate,
InitParams* init_params) {
// Set arrow_location here so that it can be passed correctly to the
@@ -249,26 +242,26 @@ TrayBubbleView* TrayBubbleView::Create(gfx::NativeView parent_window,
if (init_params->anchor_type == ANCHOR_TYPE_TRAY) {
if (init_params->anchor_alignment == ANCHOR_ALIGNMENT_BOTTOM) {
init_params->arrow_location = base::i18n::IsRTL() ?
- views::BubbleBorder::BOTTOM_LEFT : views::BubbleBorder::BOTTOM_RIGHT;
+ BubbleBorder::BOTTOM_LEFT : BubbleBorder::BOTTOM_RIGHT;
} else if (init_params->anchor_alignment == ANCHOR_ALIGNMENT_TOP) {
- init_params->arrow_location = views::BubbleBorder::TOP_LEFT;
+ init_params->arrow_location = BubbleBorder::TOP_LEFT;
} else if (init_params->anchor_alignment == ANCHOR_ALIGNMENT_LEFT) {
- init_params->arrow_location = views::BubbleBorder::LEFT_BOTTOM;
+ init_params->arrow_location = BubbleBorder::LEFT_BOTTOM;
} else {
- init_params->arrow_location = views::BubbleBorder::RIGHT_BOTTOM;
+ init_params->arrow_location = BubbleBorder::RIGHT_BOTTOM;
}
} else {
- init_params->arrow_location = views::BubbleBorder::NONE;
+ init_params->arrow_location = BubbleBorder::NONE;
}
return new TrayBubbleView(parent_window, anchor, delegate, *init_params);
}
TrayBubbleView::TrayBubbleView(gfx::NativeView parent_window,
- views::View* anchor,
+ View* anchor,
Delegate* delegate,
const InitParams& init_params)
- : views::BubbleDelegateView(anchor, init_params.arrow_location),
+ : BubbleDelegateView(anchor, init_params.arrow_location),
params_(init_params),
delegate_(delegate),
preferred_width_(init_params.min_width),
@@ -337,7 +330,7 @@ gfx::Insets TrayBubbleView::GetBorderInsets() const {
}
void TrayBubbleView::Init() {
- views::BoxLayout* layout = new BottomAlignedBoxLayout(this);
+ BoxLayout* layout = new BottomAlignedBoxLayout(this);
layout->set_spread_blank_space(true);
SetLayoutManager(layout);
}
@@ -354,12 +347,10 @@ bool TrayBubbleView::CanActivate() const {
return params_.can_activate;
}
-// Overridden to create BubbleFrameView and set a custom border.
-views::NonClientFrameView* TrayBubbleView::CreateNonClientFrameView(
- views::Widget* widget) {
- views::BubbleFrameView* bubble_frame_view =
- new views::BubbleFrameView(margins(), bubble_border_);
- return bubble_frame_view;
+NonClientFrameView* TrayBubbleView::CreateNonClientFrameView(Widget* widget) {
+ BubbleFrameView* frame = new BubbleFrameView(margins());
+ frame->SetBubbleBorder(bubble_border_);
+ return frame;
}
bool TrayBubbleView::WidgetHasHitTestMask() const {
@@ -372,7 +363,7 @@ void TrayBubbleView::GetWidgetHitTestMask(gfx::Path* mask) const {
}
gfx::Size TrayBubbleView::GetPreferredSize() {
- gfx::Size size = views::BubbleDelegateView::GetPreferredSize();
+ gfx::Size size = BubbleDelegateView::GetPreferredSize();
int height = size.height();
if (params_.max_height != 0 && height > params_.max_height)
height = params_.max_height;
@@ -407,8 +398,8 @@ void TrayBubbleView::ChildPreferredSizeChanged(View* child) {
}
void TrayBubbleView::ViewHierarchyChanged(bool is_add,
- views::View* parent,
- views::View* child) {
+ View* parent,
+ View* child) {
if (get_use_acceleration_when_possible() && is_add && child == this) {
parent->SetPaintToLayer(true);
parent->SetFillsBoundsOpaquely(true);

Powered by Google App Engine
This is Rietveld 408576698