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

Side by Side 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, 5 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/views/frame/glass_browser_frame_view.h" 5 #include "chrome/browser/ui/views/frame/glass_browser_frame_view.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/prefs/pref_service.h" 8 #include "base/prefs/pref_service.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "chrome/app/chrome_command_ids.h" 10 #include "chrome/app/chrome_command_ids.h"
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 GlassBrowserFrameView::~GlassBrowserFrameView() { 95 GlassBrowserFrameView::~GlassBrowserFrameView() {
96 } 96 }
97 97
98 /////////////////////////////////////////////////////////////////////////////// 98 ///////////////////////////////////////////////////////////////////////////////
99 // GlassBrowserFrameView, BrowserNonClientFrameView implementation: 99 // GlassBrowserFrameView, BrowserNonClientFrameView implementation:
100 100
101 gfx::Rect GlassBrowserFrameView::GetBoundsForTabStrip( 101 gfx::Rect GlassBrowserFrameView::GetBoundsForTabStrip(
102 views::View* tabstrip) const { 102 views::View* tabstrip) const {
103 int minimize_button_offset = 103 int minimize_button_offset =
104 std::min(frame()->GetMinimizeButtonOffset(), width()); 104 std::min(frame()->GetMinimizeButtonOffset(), width());
105 int tabstrip_x = browser_view()->ShouldShowAvatar() ? 105 int tabstrip_x = NonClientBorderThickness() + kTabStripIndent;
106 (avatar_bounds_.right() + kAvatarRightSpacing) : 106 if (browser_view()->ShouldShowAvatar()) {
107 NonClientBorderThickness() + kTabStripIndent; 107 // Space between the right edge of the avatar label and the tabstrip.
108 if (avatar_label()) { 108 // Note: Setting this < -2 makes the first tab draw over the avatar label.
109 tabstrip_x += avatar_label()->bounds().width() + 109 const int kAvatarLabelRightSpacing = -2;
110 views::kRelatedControlHorizontalSpacing; 110 if (avatar_label() && avatar_label()->bounds().width())
111 tabstrip_x = avatar_label()->bounds().right() + kAvatarLabelRightSpacing;
112 else
113 tabstrip_x = avatar_bounds_.right() + kAvatarRightSpacing;
111 } 114 }
112 // In RTL languages, we have moved an avatar icon left by the size of window 115 // In RTL languages, we have moved an avatar icon left by the size of window
113 // controls to prevent it from being rendered over them. So, we use its x 116 // controls to prevent it from being rendered over them. So, we use its x
114 // position to move this tab strip left when maximized. Also, we can render 117 // position to move this tab strip left when maximized. Also, we can render
115 // a tab strip until the left end of this window without considering the size 118 // a tab strip until the left end of this window without considering the size
116 // of window controls in RTL languages. 119 // of window controls in RTL languages.
117 if (base::i18n::IsRTL()) { 120 if (base::i18n::IsRTL()) {
118 if (!browser_view()->ShouldShowAvatar() && frame()->IsMaximized()) 121 if (!browser_view()->ShouldShowAvatar() && frame()->IsMaximized())
119 tabstrip_x += avatar_bounds_.x(); 122 tabstrip_x += avatar_bounds_.x();
120 minimize_button_offset = width(); 123 minimize_button_offset = width();
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 } 252 }
250 253
251 void GlassBrowserFrameView::Layout() { 254 void GlassBrowserFrameView::Layout() {
252 LayoutAvatar(); 255 LayoutAvatar();
253 LayoutClientView(); 256 LayoutClientView();
254 } 257 }
255 258
256 bool GlassBrowserFrameView::HitTestRect(const gfx::Rect& rect) const { 259 bool GlassBrowserFrameView::HitTestRect(const gfx::Rect& rect) const {
257 return (avatar_button() && 260 return (avatar_button() &&
258 avatar_button()->GetMirroredBounds().Intersects(rect)) || 261 avatar_button()->GetMirroredBounds().Intersects(rect)) ||
262 (avatar_label() &&
263 avatar_label()->GetMirroredBounds().Intersects(rect)) ||
259 !frame()->client_view()->bounds().Intersects(rect); 264 !frame()->client_view()->bounds().Intersects(rect);
260 } 265 }
261 266
262 /////////////////////////////////////////////////////////////////////////////// 267 ///////////////////////////////////////////////////////////////////////////////
263 // GlassBrowserFrameView, private: 268 // GlassBrowserFrameView, private:
264 269
265 int GlassBrowserFrameView::FrameBorderThickness() const { 270 int GlassBrowserFrameView::FrameBorderThickness() const {
266 return (frame()->IsMaximized() || frame()->IsFullscreen()) ? 271 return (frame()->IsMaximized() || frame()->IsFullscreen()) ?
267 0 : GetSystemMetrics(SM_CXSIZEFRAME); 272 0 : GetSystemMetrics(SM_CXSIZEFRAME);
268 } 273 }
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 int avatar_restored_y = avatar_bottom - incognito_icon.height(); 428 int avatar_restored_y = avatar_bottom - incognito_icon.height();
424 int avatar_y = frame()->IsMaximized() ? 429 int avatar_y = frame()->IsMaximized() ?
425 (NonClientTopBorderHeight(false) + kTabstripTopShadowThickness) : 430 (NonClientTopBorderHeight(false) + kTabstripTopShadowThickness) :
426 avatar_restored_y; 431 avatar_restored_y;
427 avatar_bounds_.SetRect(avatar_x, avatar_y, incognito_icon.width(), 432 avatar_bounds_.SetRect(avatar_x, avatar_y, incognito_icon.width(),
428 browser_view()->ShouldShowAvatar() ? (avatar_bottom - avatar_y) : 0); 433 browser_view()->ShouldShowAvatar() ? (avatar_bottom - avatar_y) : 0);
429 if (avatar_button()) 434 if (avatar_button())
430 avatar_button()->SetBoundsRect(avatar_bounds_); 435 avatar_button()->SetBoundsRect(avatar_bounds_);
431 436
432 if (avatar_label()) { 437 if (avatar_label()) {
433 gfx::Size size = avatar_label()->GetPreferredSize(); 438 // Space between the bottom of the avatar and the bottom of the avatar
434 int label_height = std::min(avatar_bounds_.height(), size.height()); 439 // label.
440 const int kAvatarLabelBottomSpacing = 3;
441 // Space between the frame border and the left edge of the avatar label.
442 const int kAvatarLabelLeftSpacing = -2;
443 gfx::Size label_size = avatar_label()->GetPreferredSize();
435 gfx::Rect label_bounds( 444 gfx::Rect label_bounds(
436 avatar_bounds_.right() + views::kRelatedControlHorizontalSpacing, 445 NonClientBorderThickness() + kAvatarLabelLeftSpacing,
437 avatar_y + (avatar_bounds_.height() - label_height) / 2, 446 avatar_bottom - kAvatarLabelBottomSpacing - label_size.height(),
438 size.width(), 447 label_size.width(),
439 browser_view()->ShouldShowAvatar() ? size.height() : 0); 448 browser_view()->ShouldShowAvatar() ? label_size.height() : 0);
440 avatar_label()->SetBoundsRect(label_bounds); 449 avatar_label()->SetBoundsRect(label_bounds);
441 } 450 }
442 } 451 }
443 452
444 void GlassBrowserFrameView::LayoutClientView() { 453 void GlassBrowserFrameView::LayoutClientView() {
445 client_view_bounds_ = CalculateClientAreaBounds(width(), height()); 454 client_view_bounds_ = CalculateClientAreaBounds(width(), height());
446 } 455 }
447 456
448 gfx::Insets GlassBrowserFrameView::GetClientAreaInsets() const { 457 gfx::Insets GlassBrowserFrameView::GetClientAreaInsets() const {
449 if (!browser_view()->IsTabStripVisible()) 458 if (!browser_view()->IsTabStripVisible())
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 static bool initialized = false; 538 static bool initialized = false;
530 if (!initialized) { 539 if (!initialized) {
531 for (int i = 0; i < kThrobberIconCount; ++i) { 540 for (int i = 0; i < kThrobberIconCount; ++i) {
532 throbber_icons_[i] = 541 throbber_icons_[i] =
533 ui::LoadThemeIconFromResourcesDataDLL(IDI_THROBBER_01 + i); 542 ui::LoadThemeIconFromResourcesDataDLL(IDI_THROBBER_01 + i);
534 DCHECK(throbber_icons_[i]); 543 DCHECK(throbber_icons_[i]);
535 } 544 }
536 initialized = true; 545 initialized = true;
537 } 546 }
538 } 547 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698