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

Unified Diff: chrome/browser/ui/views/frame/glass_browser_frame_view.cc

Issue 18083014: Create new look of the avatar label. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix font size issue and some more positioning. Created 7 years, 6 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: chrome/browser/ui/views/frame/glass_browser_frame_view.cc
diff --git a/chrome/browser/ui/views/frame/glass_browser_frame_view.cc b/chrome/browser/ui/views/frame/glass_browser_frame_view.cc
index f1d8ba599c940e8351b1882d3ca433e0263edf25..09c43205a39b0ceb312874627f2614e33cc3dd83 100644
--- a/chrome/browser/ui/views/frame/glass_browser_frame_view.cc
+++ b/chrome/browser/ui/views/frame/glass_browser_frame_view.cc
@@ -102,12 +102,15 @@ gfx::Rect GlassBrowserFrameView::GetBoundsForTabStrip(
views::View* tabstrip) const {
int minimize_button_offset =
std::min(frame()->GetMinimizeButtonOffset(), width());
- int tabstrip_x = browser_view()->ShouldShowAvatar() ?
- (avatar_bounds_.right() + kAvatarRightSpacing) :
- NonClientBorderThickness() + kTabStripIndent;
- if (avatar_label()) {
- tabstrip_x += avatar_label()->bounds().width() +
- views::kRelatedControlHorizontalSpacing;
+ int tabstrip_x = NonClientBorderThickness() + kTabStripIndent;
+ if (browser_view()->ShouldShowAvatar()) {
+ // Space between the right edge of the avatar label and the tabstrip.
+ // Note: Setting this < -2 makes the first tab draw over the avatar label.
+ const int kAvatarLabelRightSpacing = -2;
+ if (avatar_label() && avatar_label()->bounds().width())
+ tabstrip_x = avatar_label()->bounds().right() + kAvatarLabelRightSpacing;
+ else
+ tabstrip_x = avatar_bounds_.right() + kAvatarRightSpacing;
}
// In RTL languages, we have moved an avatar icon left by the size of window
// controls to prevent it from being rendered over them. So, we use its x
@@ -256,6 +259,8 @@ void GlassBrowserFrameView::Layout() {
bool GlassBrowserFrameView::HitTestRect(const gfx::Rect& rect) const {
return (avatar_button() &&
avatar_button()->GetMirroredBounds().Intersects(rect)) ||
+ (avatar_label() &&
+ avatar_label()->GetMirroredBounds().Intersects(rect)) ||
!frame()->client_view()->bounds().Intersects(rect);
}
@@ -430,13 +435,17 @@ void GlassBrowserFrameView::LayoutAvatar() {
avatar_button()->SetBoundsRect(avatar_bounds_);
if (avatar_label()) {
- gfx::Size size = avatar_label()->GetPreferredSize();
- int label_height = std::min(avatar_bounds_.height(), size.height());
+ // Space between the bottom of the avatar and the bottom of the avatar
+ // label.
+ const int kAvatarLabelBottomSpacing = 3;
+ // Space between the frame border and the left edge of the avatar label.
+ const int kAvatarLabelLeftSpacing = -2;
+ gfx::Size label_size = avatar_label()->GetPreferredSize();
gfx::Rect label_bounds(
- avatar_bounds_.right() + views::kRelatedControlHorizontalSpacing,
- avatar_y + (avatar_bounds_.height() - label_height) / 2,
- size.width(),
- browser_view()->ShouldShowAvatar() ? size.height() : 0);
+ NonClientBorderThickness() + kAvatarLabelLeftSpacing,
+ avatar_bottom - kAvatarLabelBottomSpacing - label_size.height(),
+ label_size.width(),
+ browser_view()->ShouldShowAvatar() ? label_size.height() : 0);
avatar_label()->SetBoundsRect(label_bounds);
}
}

Powered by Google App Engine
This is Rietveld 408576698