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

Side by Side Diff: chrome/browser/ui/views/frame/glass_browser_frame_view.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
« no previous file with comments | « no previous file | chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/prefs/pref_service.h" 7 #include "base/prefs/pref_service.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "base/win/windows_version.h" 9 #include "base/win/windows_version.h"
10 #include "chrome/app/chrome_command_ids.h" 10 #include "chrome/app/chrome_command_ids.h"
(...skipping 25 matching lines...) Expand all
36 #include "ui/views/win/hwnd_util.h" 36 #include "ui/views/win/hwnd_util.h"
37 #include "ui/views/window/client_view.h" 37 #include "ui/views/window/client_view.h"
38 38
39 HICON GlassBrowserFrameView::throbber_icons_[ 39 HICON GlassBrowserFrameView::throbber_icons_[
40 GlassBrowserFrameView::kThrobberIconCount]; 40 GlassBrowserFrameView::kThrobberIconCount];
41 41
42 namespace { 42 namespace {
43 // Size of client edge drawn inside the outer frame borders. 43 // Size of client edge drawn inside the outer frame borders.
44 const int kNonClientBorderThicknessPreWin10 = 3; 44 const int kNonClientBorderThicknessPreWin10 = 3;
45 const int kNonClientBorderThicknessWin10 = 1; 45 const int kNonClientBorderThicknessWin10 = 1;
46 // Besides the frame border, there's another 9 px of empty space atop the 46 // Besides the frame border, there's empty space atop the window in restored
47 // window in restored mode, to use to drag the window around. 47 // mode, to use to drag the window around.
48 const int kNonClientRestoredExtraThickness = 9; 48 const int kNonClientRestoredExtraThickness = 11;
49 // In the window corners, the resize areas don't actually expand bigger, but the 49 // In the window corners, the resize areas don't actually expand bigger, but the
50 // 16 px at the end of the top and bottom edges triggers diagonal resizing. 50 // 16 px at the end of the top and bottom edges triggers diagonal resizing.
51 const int kResizeCornerWidth = 16; 51 const int kResizeCornerWidth = 16;
52 // How far the new avatar button is from the left of the minimize button. 52 // How far the new avatar button is from the left of the minimize button.
53 const int kNewAvatarButtonOffset = 5; 53 const int kNewAvatarButtonOffset = 5;
54 // The content left/right images have a shadow built into them. 54 // The content left/right images have a shadow built into them.
55 const int kContentEdgeShadowThickness = 2; 55 const int kContentEdgeShadowThickness = 2;
56 // In restored mode, the New Tab button isn't at the same height as the caption 56 // In restored mode, the New Tab button isn't at the same height as the caption
57 // buttons, but the space will look cluttered if it actually slides under them, 57 // buttons, but the space will look cluttered if it actually slides under them,
58 // so we stop it when the gap between the two is down to 5 px. 58 // so we stop it when the gap between the two is down to 5 px.
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
321 321
322 return (base::win::GetVersion() <= base::win::VERSION_WIN8_1) 322 return (base::win::GetVersion() <= base::win::VERSION_WIN8_1)
323 ? kNonClientBorderThicknessPreWin10 323 ? kNonClientBorderThicknessPreWin10
324 : kNonClientBorderThicknessWin10; 324 : kNonClientBorderThicknessWin10;
325 } 325 }
326 326
327 int GlassBrowserFrameView::NonClientTopBorderHeight() const { 327 int GlassBrowserFrameView::NonClientTopBorderHeight() const {
328 if (frame()->IsFullscreen()) 328 if (frame()->IsFullscreen())
329 return 0; 329 return 0;
330 330
331 const int top = FrameTopBorderHeight();
331 // The tab top inset is equal to the height of any shadow region above the 332 // The tab top inset is equal to the height of any shadow region above the
332 // tabs, plus a 1 px top stroke. In maximized mode, we want to push the 333 // tabs, plus a 1 px top stroke. In maximized mode, we want to push the
333 // shadow region off the top of the screen. 334 // shadow region off the top of the screen but leave the top stroke.
334 const int tab_shadow_height = GetLayoutInsets(TAB).top() - 1; 335 // Annoyingly, the pre-MD layout uses different heights for the hit-test
335 return FrameTopBorderHeight() + 336 // exclusion region (which we want here, since we're trying to size the border
336 (frame()->IsMaximized() ? 337 // so that the region above the tab's hit-test zone matches) versus the shadow
337 -tab_shadow_height : kNonClientRestoredExtraThickness); 338 // thickness.
339 const int exclusion = GetLayoutConstant(TAB_TOP_EXCLUSION_HEIGHT);
340 return frame()->IsMaximized() ?
341 (top - GetLayoutInsets(TAB).top() + 1) :
342 (top + kNonClientRestoredExtraThickness - exclusion);
338 } 343 }
339 344
340 void GlassBrowserFrameView::PaintToolbarBackground(gfx::Canvas* canvas) { 345 void GlassBrowserFrameView::PaintToolbarBackground(gfx::Canvas* canvas) {
341 ui::ThemeProvider* tp = GetThemeProvider(); 346 ui::ThemeProvider* tp = GetThemeProvider();
342 347
343 gfx::Rect toolbar_bounds(browser_view()->GetToolbarBounds()); 348 gfx::Rect toolbar_bounds(browser_view()->GetToolbarBounds());
344 gfx::Point toolbar_origin(toolbar_bounds.origin()); 349 gfx::Point toolbar_origin(toolbar_bounds.origin());
345 View::ConvertPointToTarget(browser_view(), this, &toolbar_origin); 350 View::ConvertPointToTarget(browser_view(), this, &toolbar_origin);
346 toolbar_bounds.set_origin(toolbar_origin); 351 toolbar_bounds.set_origin(toolbar_origin);
347 int x = toolbar_bounds.x(); 352 int x = toolbar_bounds.x();
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after
628 static bool initialized = false; 633 static bool initialized = false;
629 if (!initialized) { 634 if (!initialized) {
630 for (int i = 0; i < kThrobberIconCount; ++i) { 635 for (int i = 0; i < kThrobberIconCount; ++i) {
631 throbber_icons_[i] = 636 throbber_icons_[i] =
632 ui::LoadThemeIconFromResourcesDataDLL(IDI_THROBBER_01 + i); 637 ui::LoadThemeIconFromResourcesDataDLL(IDI_THROBBER_01 + i);
633 DCHECK(throbber_icons_[i]); 638 DCHECK(throbber_icons_[i]);
634 } 639 }
635 initialized = true; 640 initialized = true;
636 } 641 }
637 } 642 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698