summaryrefslogtreecommitdiffstats
path: root/ash/launcher
diff options
context:
space:
mode:
authorxiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-21 16:41:35 +0000
committerxiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-21 16:41:35 +0000
commit801f2338946e58bb895b48c9545ca6481e15ea83 (patch)
tree4f36f6b7cc7b6e92a9f3597ff9fe64e11ab0409f /ash/launcher
parent3b6eeec271ee568d5dd951182d2e5343cbd6af62 (diff)
downloadchromium_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.cc58
-rw-r--r--ash/launcher/overflow_bubble.cc8
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();