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

Unified Diff: ash/system/tray/system_tray_bubble.cc

Issue 10831159: Fix Ash status area bubble borders (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Update comment Created 8 years, 4 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
« no previous file with comments | « no previous file | ash/system/web_notification/web_notification_tray.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/system/tray/system_tray_bubble.cc
diff --git a/ash/system/tray/system_tray_bubble.cc b/ash/system/tray/system_tray_bubble.cc
index ef3c293678058d316c467b21b5bf1a6a8b5dd85f..49fe1d5ff54c775cbf21395068785e8d610615ff 100644
--- a/ash/system/tray/system_tray_bubble.cc
+++ b/ash/system/tray/system_tray_bubble.cc
@@ -30,9 +30,14 @@ namespace {
// detailed view.
const int kDetailedBubbleMaxHeight = kTrayPopupItemHeight * 5;
+// TODO(stevenjb/jennyz): Remove this when TrayBubbleBorder is integrated with
+// BubbleBorder. See crbug.com/132772, crbug.com/139813.
class TrayPopupItemBorder : public views::Border {
public:
- explicit TrayPopupItemBorder(views::View* owner) : owner_(owner) {}
+ explicit TrayPopupItemBorder(views::View* owner, ShelfAlignment alignment)
+ : owner_(owner),
+ alignment_(alignment) {
+ }
virtual ~TrayPopupItemBorder() {}
private:
@@ -47,24 +52,36 @@ class TrayPopupItemBorder : public views::Border {
canvas->FillRect(gfx::Rect(0, 0, view.width(), 1), kBorderDarkColor);
// Bottom border.
- if (index != parent->child_count() - 1) {
+ if ((index != parent->child_count() - 1) ||
+ (alignment_ != SHELF_ALIGNMENT_BOTTOM)) {
canvas->FillRect(gfx::Rect(0, view.height() - 1, view.width(), 1),
kBorderLightColor);
}
// Left and right borders.
- canvas->FillRect(gfx::Rect(0, 0, 1, view.height()), kBorderDarkColor);
- canvas->FillRect(gfx::Rect(view.width() - 1, 0, 1, view.height()),
- kBorderDarkColor);
+ if (alignment_ != SHELF_ALIGNMENT_LEFT) {
+ canvas->FillRect(gfx::Rect(0, 0, 1, view.height()),
+ kBorderDarkColor);
+ }
+ if (alignment_ != SHELF_ALIGNMENT_RIGHT) {
+ canvas->FillRect(gfx::Rect(view.width() - 1, 0, 1, view.height()),
+ kBorderDarkColor);
+ }
}
virtual void GetInsets(gfx::Insets* insets) const OVERRIDE {
const views::View* parent = owner_->parent();
int index = parent->GetIndexOf(owner_);
- insets->Set(index == 0, 1, index != parent->child_count() - 1, 1);
+ int left = (alignment_ == SHELF_ALIGNMENT_LEFT) ? 0 : 1;
+ int right = (alignment_ == SHELF_ALIGNMENT_RIGHT) ? 0 : 1;
+ insets->Set(index == 0 ? 1 : 0,
+ left,
+ (index != parent->child_count() - 1) ? 1 : 0,
+ right);
}
views::View* owner_;
+ ShelfAlignment alignment_;
DISALLOW_COPY_AND_ASSIGN(TrayPopupItemBorder);
};
@@ -73,11 +90,13 @@ class TrayPopupItemBorder : public views::Border {
// - optionally changes background color on hover.
class TrayPopupItemContainer : public views::View {
public:
- TrayPopupItemContainer(views::View* view, bool change_background)
+ TrayPopupItemContainer(views::View* view,
+ ShelfAlignment alignment,
+ bool change_background)
: hover_(false),
change_background_(change_background) {
set_notify_enter_exit_on_child(true);
- set_border(new TrayPopupItemBorder(this));
+ set_border(new TrayPopupItemBorder(this, alignment));
views::BoxLayout* layout = new views::BoxLayout(
views::BoxLayout::kVertical, 0, 0, 0);
layout->set_spread_blank_space(true);
@@ -385,7 +404,7 @@ void SystemTrayBubble::CreateItemViews(user::LoginStatus login_status) {
}
if (view) {
bubble_view_->AddChildView(new TrayPopupItemContainer(
- view, bubble_type_ == BUBBLE_TYPE_DEFAULT));
+ view, tray_->shelf_alignment(), bubble_type_ == BUBBLE_TYPE_DEFAULT));
}
}
}
« no previous file with comments | « no previous file | ash/system/web_notification/web_notification_tray.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698