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

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

Issue 111723012: Linux Aura: Added --use-system-title-bar flag. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixing jamescook nits. Created 7 years 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/opaque_browser_frame_view_layout.cc
diff --git a/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc b/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc
index 95d90b6a30f199763d18195c5b1a16e0813a2291..0d88fa2c9b9030fb9246fde3ca6f4f4a43162efe 100644
--- a/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc
+++ b/chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc
@@ -4,8 +4,10 @@
#include "chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.h"
+#include "base/command_line.h"
#include "chrome/browser/profiles/profiles_state.h"
#include "chrome/browser/ui/views/avatar_menu_button.h"
+#include "chrome/common/chrome_switches.h"
#include "chrome/common/profile_management_switches.h"
#include "ui/gfx/font.h"
#include "ui/views/controls/button/image_button.h"
@@ -58,15 +60,16 @@ const int kAvatarLabelInnerSpacing = 10;
// How far the new avatar button is from the closest caption button.
const int kNewAvatarButtonOffset = 5;
-// In restored mode, the New Tab button isn't at the same height as the caption
-// buttons, but the space will look cluttered if it actually slides under them,
-// so we stop it when the gap between the two is down to 5 px.
-const int kNewTabCaptionRestoredSpacing = 5;
+// When the title bar is in its normal two row mode, the New Tab button isn't at
James Cook 2013/12/20 22:23:51 nit: You might want to put the word "restored" in
Matt Giuca 2014/01/06 04:28:21 Done.
+// the same height as the caption buttons, but the space will look cluttered if
+// it actually slides under them, so we stop it when the gap between the two is
+// down to 5 px.
+const int kNewTabCaptionNormalSpacing = 5;
-// In maximized mode, where the New Tab button and the caption buttons are at
-// similar vertical coordinates, we need to reserve a larger, 16 px gap to avoid
-// looking too cluttered.
-const int kNewTabCaptionMaximizedSpacing = 16;
+// When the title bar is condensed to one row (as when maximized), the New Tab
+// button and the caption buttons are at similar vertical coordinates, so we
+// need to reserve a larger, 16 px gap to avoid looking too cluttered.
+const int kNewTapCaptionCondensedSpacing = 16;
// The top 3 px of the tabstrip is shadow; in maximized mode we push this off
// the top of the screen so the tabs appear flush against the screen edge.
@@ -143,8 +146,8 @@ gfx::Rect OpaqueBrowserFrameViewLayout::GetBoundsForTabStrip(
if (delegate_->GetAdditionalReservedSpaceInTabStrip())
available_width -= delegate_->GetAdditionalReservedSpaceInTabStrip();
- const int caption_spacing = delegate_->IsMaximized() ?
- kNewTabCaptionMaximizedSpacing : kNewTabCaptionRestoredSpacing;
+ const int caption_spacing = IsTitleBarCondensed() ?
+ kNewTapCaptionCondensedSpacing : kNewTabCaptionNormalSpacing;
const int tabstrip_width = available_width - caption_spacing;
gfx::Rect bounds(leading_button_start_, GetTabStripInsetsTop(false),
std::max(0, tabstrip_width),
@@ -176,8 +179,8 @@ gfx::Size OpaqueBrowserFrameViewLayout::GetMinimumSize(
if (delegate_->IsTabStripVisible()) {
gfx::Size preferred_size = delegate_->GetTabstripPreferredSize();
const int min_tabstrip_width = preferred_size.width();
- const int caption_spacing = delegate_->IsMaximized() ?
- kNewTabCaptionMaximizedSpacing : kNewTabCaptionRestoredSpacing;
+ const int caption_spacing = IsTitleBarCondensed() ?
+ kNewTapCaptionCondensedSpacing : kNewTabCaptionNormalSpacing;
min_size.Enlarge(min_tabstrip_width + caption_spacing, 0);
}
@@ -195,7 +198,7 @@ gfx::Rect OpaqueBrowserFrameViewLayout::GetWindowBoundsForClientBounds(
}
int OpaqueBrowserFrameViewLayout::FrameBorderThickness(bool restored) const {
- return (!restored && (delegate_->IsMaximized() ||
+ return (!restored && (IsTitleBarCondensed() ||
delegate_->IsFullscreen())) ?
0 : kFrameBorderThickness;
}
@@ -203,7 +206,7 @@ int OpaqueBrowserFrameViewLayout::FrameBorderThickness(bool restored) const {
int OpaqueBrowserFrameViewLayout::NonClientBorderThickness() const {
// When we fill the screen, we don't show a client edge.
return FrameBorderThickness(false) +
- ((delegate_->IsMaximized() || delegate_->IsFullscreen()) ?
+ ((IsTitleBarCondensed() || delegate_->IsFullscreen()) ?
0 : views::NonClientFrameView::kClientEdgeThickness);
}
@@ -215,22 +218,25 @@ int OpaqueBrowserFrameViewLayout::NonClientTopBorderHeight(
TitlebarBottomThickness(restored);
}
- return FrameBorderThickness(restored) -
- ((delegate_->IsTabStripVisible() &&
- !restored && !delegate_->ShouldLeaveOffsetNearTopBorder())
- ? kTabstripTopShadowThickness : 0);
+ int thickness = FrameBorderThickness(restored);
+ if (!restored && delegate_->IsTabStripVisible() &&
James Cook 2013/12/20 22:23:51 better, thanks
+ (!delegate_->ShouldLeaveOffsetNearTopBorder() || IsTitleBarCondensed())) {
+ thickness -= kTabstripTopShadowThickness;
+ }
+ return thickness;
}
int OpaqueBrowserFrameViewLayout::GetTabStripInsetsTop(bool restored) const {
return NonClientTopBorderHeight(restored) + ((!restored &&
(!delegate_->ShouldLeaveOffsetNearTopBorder() ||
+ IsTitleBarCondensed() ||
delegate_->IsFullscreen())) ?
0 : kNonClientRestoredExtraThickness);
}
int OpaqueBrowserFrameViewLayout::TitlebarBottomThickness(bool restored) const {
return kTitlebarTopAndBottomEdgeThickness +
- ((!restored && delegate_->IsMaximized()) ? 0 :
+ ((!restored && IsTitleBarCondensed()) ? 0 :
views::NonClientFrameView::kClientEdgeThickness);
}
@@ -238,7 +244,7 @@ int OpaqueBrowserFrameViewLayout::CaptionButtonY(bool restored) const {
// Maximized buttons start at window top, since the window has no border. This
// offset is for the image (the actual clickable bounds extend all the way to
// the top to take Fitts' Law into account).
- return ((!restored && delegate_->IsMaximized()) ?
+ return ((!restored && IsTitleBarCondensed()) ?
FrameBorderThickness(false) :
views::NonClientFrameView::kFrameShadowThickness) + extra_caption_y_;
}
@@ -257,6 +263,15 @@ gfx::Rect OpaqueBrowserFrameViewLayout::CalculateClientAreaBounds(
std::max(0, height - top_height - border_thickness));
}
+bool OpaqueBrowserFrameViewLayout::IsTitleBarCondensed() const {
+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
+ if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kUseSystemTitleBar))
+ return true;
+#endif
+
+ return delegate_->IsMaximized();
+}
+
///////////////////////////////////////////////////////////////////////////////
// OpaqueBrowserFrameView, private:
@@ -321,7 +336,7 @@ void OpaqueBrowserFrameViewLayout::LayoutTitleBar(views::View* host) {
// slightly uncentered with restored windows, so when the window is
// restored, instead of calculating the remaining space from below the
// frame border, we calculate from below the 3D edge.
- int unavailable_px_at_top = delegate_->IsMaximized() ?
+ int unavailable_px_at_top = IsTitleBarCondensed() ?
frame_thickness : kTitlebarTopAndBottomEdgeThickness;
// When the icon is shorter than the minimum space we reserve for the
// caption button, we vertically center it. We want to bias rounding to
@@ -407,7 +422,7 @@ void OpaqueBrowserFrameViewLayout::LayoutAvatar(views::View* host) {
host->width() - trailing_button_start_ - kAvatarOuterSpacing -
incognito_icon.width() :
leading_button_start_ + kAvatarOuterSpacing;
- int avatar_y = delegate_->IsMaximized() ?
+ int avatar_y = IsTitleBarCondensed() ?
(NonClientTopBorderHeight(false) + kTabstripTopShadowThickness) :
avatar_restored_y;
avatar_bounds_.SetRect(
@@ -513,7 +528,7 @@ void OpaqueBrowserFrameViewLayout::SetBoundsForButton(
// side of the caption buttons. In maximized mode we extend buttons to the
// screen top and the rightmost button to the screen right (or leftmost button
// to the screen left, for left-aligned buttons) to obey Fitts' Law.
- bool is_maximized = delegate_->IsMaximized();
+ bool title_bar_condensed = IsTitleBarCondensed();
// When we are the first button on the leading side and are the close
// button, we must flip ourselves, because the close button assets have
@@ -522,7 +537,7 @@ void OpaqueBrowserFrameViewLayout::SetBoundsForButton(
!has_leading_buttons_ &&
button == close_button_);
// If the window is maximized, align the buttons to its upper edge.
- int extra_height = is_maximized ? extra_caption_y_ : 0;
+ int extra_height = title_bar_condensed ? extra_caption_y_ : 0;
switch (alignment) {
case ALIGN_LEADING: {
@@ -531,7 +546,7 @@ void OpaqueBrowserFrameViewLayout::SetBoundsForButton(
// If we're the first button on the left and maximized, add width to the
// right hand side of the screen.
- int extra_width = (is_maximized && !has_leading_buttons_) ?
+ int extra_width = (title_bar_condensed && !has_leading_buttons_) ?
(kFrameBorderThickness -
views::NonClientFrameView::kFrameShadowThickness) : 0;
@@ -552,7 +567,7 @@ void OpaqueBrowserFrameViewLayout::SetBoundsForButton(
// If we're the first button on the right and maximized, add width to the
// right hand side of the screen.
- int extra_width = (is_maximized && !has_trailing_buttons_) ?
+ int extra_width = (title_bar_condensed && !has_trailing_buttons_) ?
(kFrameBorderThickness -
views::NonClientFrameView::kFrameShadowThickness) : 0;

Powered by Google App Engine
This is Rietveld 408576698