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

Side by Side Diff: chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc

Issue 1403413006: Distill the concept of the "tab top exclusion region", an area inside the tab (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@combine_background_image_getters
Patch Set: Fix indenting error Created 5 years, 1 month 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/opaque_browser_frame_view_layout.h" 5 #include "chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "chrome/browser/profiles/profiles_state.h" 8 #include "chrome/browser/profiles/profiles_state.h"
9 #include "chrome/browser/ui/views/layout_constants.h" 9 #include "chrome/browser/ui/views/layout_constants.h"
10 #include "chrome/browser/ui/views/profiles/avatar_menu_button.h" 10 #include "chrome/browser/ui/views/profiles/avatar_menu_button.h"
11 #include "chrome/common/chrome_switches.h" 11 #include "chrome/common/chrome_switches.h"
12 #include "components/signin/core/common/profile_management_switches.h" 12 #include "components/signin/core/common/profile_management_switches.h"
13 #include "ui/gfx/font.h" 13 #include "ui/gfx/font.h"
14 #include "ui/views/controls/button/image_button.h" 14 #include "ui/views/controls/button/image_button.h"
15 #include "ui/views/controls/label.h" 15 #include "ui/views/controls/label.h"
16 16
17 #if defined(ENABLE_SUPERVISED_USERS) 17 #if defined(ENABLE_SUPERVISED_USERS)
18 #include "chrome/browser/ui/views/profiles/supervised_user_avatar_label.h" 18 #include "chrome/browser/ui/views/profiles/supervised_user_avatar_label.h"
19 #endif 19 #endif
20 20
21 namespace { 21 namespace {
22 22
23 // Besides the frame border, there's another 9 px of empty space atop the 23 // Besides the frame border, there's empty space atop the window in restored
24 // window in restored mode, to use to drag the window around. 24 // mode, to use to drag the window around.
25 const int kNonClientRestoredExtraThickness = 9; 25 const int kNonClientRestoredExtraThickness = 11;
26 26
27 // The titlebar never shrinks too short to show the caption button plus some 27 // The titlebar never shrinks too short to show the caption button plus some
28 // padding below it. 28 // padding below it.
29 const int kCaptionButtonHeightWithPadding = 19; 29 const int kCaptionButtonHeightWithPadding = 19;
30 30
31 // There is a 5 px gap between the title text and the caption buttons. 31 // There is a 5 px gap between the title text and the caption buttons.
32 const int kTitleLogoSpacing = 5; 32 const int kTitleLogoSpacing = 5;
33 33
34 // The frame border is only visible in restored mode and is hardcoded to 4 px on 34 // The frame border is only visible in restored mode and is hardcoded to 4 px on
35 // each side regardless of the system window border size. 35 // each side regardless of the system window border size.
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 } 220 }
221 221
222 int thickness = FrameBorderThickness(restored); 222 int thickness = FrameBorderThickness(restored);
223 if (!restored && delegate_->IsTabStripVisible() && IsTitleBarCondensed()) 223 if (!restored && delegate_->IsTabStripVisible() && IsTitleBarCondensed())
224 thickness -= kTabstripTopShadowThickness; 224 thickness -= kTabstripTopShadowThickness;
225 return thickness; 225 return thickness;
226 } 226 }
227 227
228 int OpaqueBrowserFrameViewLayout::GetTabStripInsetsTop(bool restored) const { 228 int OpaqueBrowserFrameViewLayout::GetTabStripInsetsTop(bool restored) const {
229 const int top = NonClientTopBorderHeight(restored); 229 const int top = NonClientTopBorderHeight(restored);
230 // Annoyingly, the pre-MD layout uses different heights for the hit-test
231 // exclusion region (which we want here, since we're trying to size the border
232 // so that the region above the tab's hit-test zone matches) versus the shadow
233 // thickness.
234 const int exclusion = GetLayoutConstant(TAB_TOP_EXCLUSION_HEIGHT);
230 return (!restored && (IsTitleBarCondensed() || delegate_->IsFullscreen())) ? 235 return (!restored && (IsTitleBarCondensed() || delegate_->IsFullscreen())) ?
231 top : (top + kNonClientRestoredExtraThickness); 236 top : (top + kNonClientRestoredExtraThickness - exclusion);
232 } 237 }
233 238
234 int OpaqueBrowserFrameViewLayout::TitlebarBottomThickness(bool restored) const { 239 int OpaqueBrowserFrameViewLayout::TitlebarBottomThickness(bool restored) const {
235 const int edge = kTitlebarTopAndBottomEdgeThickness; 240 const int edge = kTitlebarTopAndBottomEdgeThickness;
236 return (!restored && IsTitleBarCondensed()) ? 241 return (!restored && IsTitleBarCondensed()) ?
237 edge : (edge + views::NonClientFrameView::kClientEdgeThickness); 242 edge : (edge + views::NonClientFrameView::kClientEdgeThickness);
238 } 243 }
239 244
240 int OpaqueBrowserFrameViewLayout::CaptionButtonY(bool restored) const { 245 int OpaqueBrowserFrameViewLayout::CaptionButtonY(bool restored) const {
241 // Maximized buttons start at window top, since the window has no border. This 246 // Maximized buttons start at window top, since the window has no border. This
(...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after
703 708
704 void OpaqueBrowserFrameViewLayout::ViewAdded(views::View* host, 709 void OpaqueBrowserFrameViewLayout::ViewAdded(views::View* host,
705 views::View* view) { 710 views::View* view) {
706 SetView(view->id(), view); 711 SetView(view->id(), view);
707 } 712 }
708 713
709 void OpaqueBrowserFrameViewLayout::ViewRemoved(views::View* host, 714 void OpaqueBrowserFrameViewLayout::ViewRemoved(views::View* host,
710 views::View* view) { 715 views::View* view) {
711 SetView(view->id(), nullptr); 716 SetView(view->id(), nullptr);
712 } 717 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/frame/glass_browser_frame_view.cc ('k') | chrome/browser/ui/views/layout_constants.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698