diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-14 23:23:48 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-14 23:23:48 +0000 |
commit | c0da1e2916de58b9a36cc70455a11af0d0031674 (patch) | |
tree | cdf300533a9c10484e0089fc1990214f53993f28 /chrome/browser/views/frame | |
parent | 97bf4edfdf217222c312da38d983ac1099c36163 (diff) | |
download | chromium_src-c0da1e2916de58b9a36cc70455a11af0d0031674.zip chromium_src-c0da1e2916de58b9a36cc70455a11af0d0031674.tar.gz chromium_src-c0da1e2916de58b9a36cc70455a11af0d0031674.tar.bz2 |
Hides the control buttons for browser when maximized on chrome
os. maximized is the default state on chrome os, so this effectively
gives us no window controls just as we have now.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/273055
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29061 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views/frame')
-rw-r--r-- | chrome/browser/views/frame/opaque_browser_frame_view.cc | 46 | ||||
-rw-r--r-- | chrome/browser/views/frame/opaque_browser_frame_view.h | 4 |
2 files changed, 39 insertions, 11 deletions
diff --git a/chrome/browser/views/frame/opaque_browser_frame_view.cc b/chrome/browser/views/frame/opaque_browser_frame_view.cc index fd01b30..eb936ea 100644 --- a/chrome/browser/views/frame/opaque_browser_frame_view.cc +++ b/chrome/browser/views/frame/opaque_browser_frame_view.cc @@ -236,10 +236,14 @@ gfx::Size OpaqueBrowserFrameView::GetMinimumSize() { (d->ShouldShowWindowIcon() ? (IconSize(NULL, NULL, NULL) + kTitleLogoSpacing) : 0) + ((distributor_logo_ && browser_view_->ShouldShowDistributorLogo()) ? - (distributor_logo_->width() + kLogoCaptionSpacing) : 0) + - minimize_button_->GetMinimumSize().width() + - restore_button_->GetMinimumSize().width() + - close_button_->GetMinimumSize().width(); + (distributor_logo_->width() + kLogoCaptionSpacing) : 0); + +#if !defined(OS_CHROMEOS) + min_titlebar_width += + minimize_button_->GetMinimumSize().width() + + restore_button_->GetMinimumSize().width() + + close_button_->GetMinimumSize().width(); +#endif min_size.set_width(std::max(min_size.width(), min_titlebar_width)); return min_size; @@ -285,15 +289,19 @@ int OpaqueBrowserFrameView::NonClientHitTest(const gfx::Point& point) { return frame_component; // Then see if the point is within any of the window controls. - if (close_button_->GetBounds(APPLY_MIRRORING_TRANSFORMATION).Contains(point)) + if (close_button_->IsVisible() && + close_button_->GetBounds(APPLY_MIRRORING_TRANSFORMATION).Contains(point)) return HTCLOSE; - if (restore_button_->GetBounds(APPLY_MIRRORING_TRANSFORMATION).Contains( + if (restore_button_->IsVisible() && + restore_button_->GetBounds(APPLY_MIRRORING_TRANSFORMATION).Contains( point)) return HTMAXBUTTON; - if (maximize_button_->GetBounds(APPLY_MIRRORING_TRANSFORMATION).Contains( + if (maximize_button_->IsVisible() && + maximize_button_->GetBounds(APPLY_MIRRORING_TRANSFORMATION).Contains( point)) return HTMAXBUTTON; - if (minimize_button_->GetBounds(APPLY_MIRRORING_TRANSFORMATION).Contains( + if (minimize_button_->IsVisible() && + minimize_button_->GetBounds(APPLY_MIRRORING_TRANSFORMATION).Contains( point)) return HTMINBUTTON; if (window_icon_ && @@ -530,6 +538,10 @@ int OpaqueBrowserFrameView::TitleCoordinates(int* title_top_spacing_ptr, UnavailablePixelsAtBottomOfNonClientHeight(); } +int OpaqueBrowserFrameView::RightEdge() const { + return width() - FrameBorderThickness(); +} + int OpaqueBrowserFrameView::IconSize(int* title_top_spacing_ptr, int* title_thickness_ptr, int* available_height_ptr) const { @@ -911,11 +923,23 @@ void OpaqueBrowserFrameView::PaintRestoredClientEdge(gfx::Canvas* canvas) { } void OpaqueBrowserFrameView::LayoutWindowControls() { + bool is_maximized = frame_->GetWindow()->IsMaximized(); +#if defined(OS_CHROMEOS) + minimize_button_->SetVisible(!is_maximized); + restore_button_->SetVisible(!is_maximized); + maximize_button_->SetVisible(!is_maximized); + close_button_->SetVisible(!is_maximized); + if (is_maximized) { + // Set the bounds of the minimize button so that we don't have to change + // other places that rely on the bounds. + minimize_button_->SetBounds(RightEdge(), 0, 0, 0); + return; + } +#endif close_button_->SetImageAlignment(views::ImageButton::ALIGN_LEFT, views::ImageButton::ALIGN_BOTTOM); // Maximized buttons start at window top so that even if their images aren't // drawn flush with the screen edge, they still obey Fitts' Law. - bool is_maximized = frame_->GetWindow()->IsMaximized(); int frame_thickness = FrameBorderThickness(); int caption_y = is_maximized ? frame_thickness : kFrameShadowThickness; // There should always be the same number of non-shadow pixels visible to the @@ -924,8 +948,8 @@ void OpaqueBrowserFrameView::LayoutWindowControls() { int right_extra_width = is_maximized ? (kFrameBorderThickness - kFrameShadowThickness) : 0; gfx::Size close_button_size = close_button_->GetPreferredSize(); - close_button_->SetBounds(width() - close_button_size.width() - - right_extra_width - frame_thickness, caption_y, + close_button_->SetBounds(RightEdge() - close_button_size.width() - + right_extra_width, caption_y, close_button_size.width() + right_extra_width, close_button_size.height()); diff --git a/chrome/browser/views/frame/opaque_browser_frame_view.h b/chrome/browser/views/frame/opaque_browser_frame_view.h index 720b2be5..857d783 100644 --- a/chrome/browser/views/frame/opaque_browser_frame_view.h +++ b/chrome/browser/views/frame/opaque_browser_frame_view.h @@ -94,6 +94,10 @@ class OpaqueBrowserFrameView : public BrowserNonClientFrameView, int TitleCoordinates(int* title_top_spacing_ptr, int* title_thickness_ptr) const; + // Returns the right edge. This is the end the close button starts at (if a + // close button is shown). + int RightEdge() const; + // Calculates multiple values related to icon layout. Returns the size of the // icon (along one edge). int IconSize(int* title_top_spacing_ptr, |