diff options
author | xiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-21 16:41:35 +0000 |
---|---|---|
committer | xiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-21 16:41:35 +0000 |
commit | 801f2338946e58bb895b48c9545ca6481e15ea83 (patch) | |
tree | 4f36f6b7cc7b6e92a9f3597ff9fe64e11ab0409f /ash/launcher | |
parent | 3b6eeec271ee568d5dd951182d2e5343cbd6af62 (diff) | |
download | chromium_src-801f2338946e58bb895b48c9545ca6481e15ea83.zip chromium_src-801f2338946e58bb895b48c9545ca6481e15ea83.tar.gz chromium_src-801f2338946e58bb895b48c9545ca6481e15ea83.tar.bz2 |
Consolidate bubble border code.
Per 135200, we should only use image based code.
- Add two new sets of bubble border images;
- Use the new bubble border images for app menu and launcher tooltip;
- Get rid of BubbleBorder2 since it's no longer needed;
BUG=135200
TEST=Verify app list, launcher bar tooltip bubbles use shadow based on image and no artifacts.
R=msw@chromium.org,sky@chromium.org,oshima@chromium.org
Review URL: https://codereview.chromium.org/10905311
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158003 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/launcher')
-rw-r--r-- | ash/launcher/launcher_tooltip_manager.cc | 58 | ||||
-rw-r--r-- | ash/launcher/overflow_bubble.cc | 8 |
2 files changed, 12 insertions, 54 deletions
diff --git a/ash/launcher/launcher_tooltip_manager.cc b/ash/launcher/launcher_tooltip_manager.cc index d7c07a6..c817e8f 100644 --- a/ash/launcher/launcher_tooltip_manager.cc +++ b/ash/launcher/launcher_tooltip_manager.cc @@ -17,7 +17,6 @@ #include "ui/base/events/event.h" #include "ui/base/events/event_constants.h" #include "ui/gfx/insets.h" -#include "ui/views/bubble/bubble_border_2.h" #include "ui/views/bubble/bubble_delegate.h" #include "ui/views/bubble/bubble_frame_view.h" #include "ui/views/controls/label.h" @@ -37,21 +36,17 @@ const SkColor kTooltipTextColor = SkColorSetRGB(0x22, 0x22, 0x22); // ash/tooltip/tooltip_controller.cc const int kTooltipMaxWidth = 250; -// Bubble border metrics -const int kArrowHeight = 7; -const int kArrowWidth = 15; -const int kShadowWidth = 8; // The distance between the arrow tip and edge of the anchor view. const int kArrowOffset = 10; views::BubbleBorder::ArrowLocation GetArrowLocation(ShelfAlignment alignment) { switch (alignment) { case SHELF_ALIGNMENT_LEFT: - return views::BubbleBorder::LEFT_BOTTOM; + return views::BubbleBorder::LEFT_CENTER; case SHELF_ALIGNMENT_RIGHT: - return views::BubbleBorder::RIGHT_BOTTOM; + return views::BubbleBorder::RIGHT_CENTER; case SHELF_ALIGNMENT_BOTTOM: - return views::BubbleBorder::BOTTOM_RIGHT; + return views::BubbleBorder::BOTTOM_CENTER; } return views::BubbleBorder::NONE; @@ -70,9 +65,6 @@ class LauncherTooltipManager::LauncherTooltipBubble void Close(); private: - // Overridden from views::BubbleDelegateView: - virtual gfx::Rect GetBubbleBounds() OVERRIDE; - // views::WidgetDelegate overrides: virtual void WindowClosing() OVERRIDE; @@ -81,7 +73,6 @@ class LauncherTooltipManager::LauncherTooltipBubble LauncherTooltipManager* host_; views::Label* label_; - views::BubbleBorder2* bubble_border_; DISALLOW_COPY_AND_ASSIGN(LauncherTooltipBubble); }; @@ -91,14 +82,16 @@ LauncherTooltipManager::LauncherTooltipBubble::LauncherTooltipBubble( views::BubbleBorder::ArrowLocation arrow_location, LauncherTooltipManager* host) : views::BubbleDelegateView(anchor, arrow_location), - host_(host), - bubble_border_(NULL) { + host_(host) { + set_anchor_insets(gfx::Insets(kArrowOffset, kArrowOffset, kArrowOffset, + kArrowOffset)); set_close_on_esc(false); set_close_on_deactivate(false); set_use_focusless(true); set_accept_events(false); set_margins(gfx::Insets(kTooltipTopBottomMargin, kTooltipLeftRightMargin, kTooltipTopBottomMargin, kTooltipLeftRightMargin)); + set_shadow(views::BubbleBorder::SMALL_SHADOW); SetLayoutManager(new views::FillLayout()); // The anchor may not have the widget in tests. if (anchor->GetWidget() && anchor->GetWidget()->GetNativeView()) { @@ -113,17 +106,6 @@ LauncherTooltipManager::LauncherTooltipBubble::LauncherTooltipBubble( label_->SetElideBehavior(views::Label::ELIDE_AT_END); AddChildView(label_); views::BubbleDelegateView::CreateBubble(this); - bubble_border_ = new views::BubbleBorder2(views::BubbleBorder::BOTTOM_RIGHT); - bubble_border_->SetShadow(gfx::ShadowValue( - gfx::Point(0, 5), kShadowWidth, SkColorSetARGB(0x72, 0, 0, 0))); - bubble_border_->set_arrow_width(kArrowWidth); - bubble_border_->set_arrow_height(kArrowHeight); - set_anchor_insets(gfx::Insets(kArrowOffset, kArrowOffset, kArrowOffset, - kArrowOffset)); - GetBubbleFrameView()->SetBubbleBorder(bubble_border_); - - // BubbleBorder2 paints its own background. - GetBubbleFrameView()->set_background(NULL); } void LauncherTooltipManager::LauncherTooltipBubble::SetText( @@ -139,28 +121,6 @@ void LauncherTooltipManager::LauncherTooltipBubble::Close() { } } -gfx::Rect LauncherTooltipManager::LauncherTooltipBubble::GetBubbleBounds() { - // This happens before replacing the default border. - if (!bubble_border_) - return views::BubbleDelegateView::GetBubbleBounds(); - - const gfx::Rect anchor_rect = GetAnchorRect(); - gfx::Rect bubble_rect = GetBubbleFrameView()->GetUpdatedWindowBounds( - anchor_rect, - GetPreferredSize(), - false /* try_mirroring_arrow */); - - const gfx::Point old_offset = bubble_border_->offset(); - bubble_rect = bubble_border_->ComputeOffsetAndUpdateBubbleRect(bubble_rect, - anchor_rect); - - // Repaints border if arrow offset is changed. - if (bubble_border_->offset() != old_offset) - GetBubbleFrameView()->SchedulePaint(); - - return bubble_rect; -} - void LauncherTooltipManager::LauncherTooltipBubble::WindowClosing() { views::BubbleDelegateView::WindowClosing(); if (host_) @@ -204,9 +164,9 @@ LauncherTooltipManager::~LauncherTooltipManager() { void LauncherTooltipManager::ShowDelayed(views::View* anchor, const string16& text) { if (view_) { - if (timer_.get() && timer_->IsRunning()) + if (timer_.get() && timer_->IsRunning()) { return; - else { + } else { CancelHidingAnimation(); Close(); } diff --git a/ash/launcher/overflow_bubble.cc b/ash/launcher/overflow_bubble.cc index 0daf312..6489583 100644 --- a/ash/launcher/overflow_bubble.cc +++ b/ash/launcher/overflow_bubble.cc @@ -207,7 +207,7 @@ gfx::Rect OverflowBubbleView::GetBubbleBounds() { kLauncherPreferredSize / 2; const gfx::Size content_size = GetPreferredSize(); - border->SetArrowOffset(arrow_offset, content_size); + border->set_arrow_offset(arrow_offset); const gfx::Rect anchor_rect = GetAnchorRect(); gfx::Rect bubble_rect = GetBubbleFrameView()->GetUpdatedWindowBounds( @@ -226,8 +226,7 @@ gfx::Rect OverflowBubbleView::GetBubbleBounds() { offset = monitor_rect.right() - bubble_rect.right(); bubble_rect.Offset(offset, 0); - border->SetArrowOffset(anchor_rect.CenterPoint().x() - bubble_rect.x(), - content_size); + border->set_arrow_offset(anchor_rect.CenterPoint().x() - bubble_rect.x()); } else { if (bubble_rect.y() < monitor_rect.y()) offset = monitor_rect.y() - bubble_rect.y(); @@ -235,8 +234,7 @@ gfx::Rect OverflowBubbleView::GetBubbleBounds() { offset = monitor_rect.bottom() - bubble_rect.bottom(); bubble_rect.Offset(0, offset); - border->SetArrowOffset(anchor_rect.CenterPoint().y() - bubble_rect.y(), - content_size); + border->set_arrow_offset(anchor_rect.CenterPoint().y() - bubble_rect.y()); } GetBubbleFrameView()->SchedulePaint(); |