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

Side by Side Diff: chrome/browser/views/frame/opaque_browser_frame_view.cc

Issue 78002: Reorganize fullscreen mode handling. Now nearly everything is in WindowWin. ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 8 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
« no previous file with comments | « chrome/browser/views/frame/glass_browser_frame_view.cc ('k') | chrome/browser/window_sizer.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) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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/views/frame/opaque_browser_frame_view.h" 5 #include "chrome/browser/views/frame/opaque_browser_frame_view.h"
6 6
7 #include "chrome/browser/views/frame/browser_frame.h" 7 #include "chrome/browser/views/frame/browser_frame.h"
8 #include "chrome/browser/views/frame/browser_view.h" 8 #include "chrome/browser/views/frame/browser_view.h"
9 #include "chrome/browser/views/tabs/tab_strip.h" 9 #include "chrome/browser/views/tabs/tab_strip.h"
10 #include "chrome/common/gfx/chrome_canvas.h" 10 #include "chrome/common/gfx/chrome_canvas.h"
(...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after
456 return gfx::Rect(std::max(0, client_bounds.x() - border_thickness), 456 return gfx::Rect(std::max(0, client_bounds.x() - border_thickness),
457 std::max(0, client_bounds.y() - top_height), 457 std::max(0, client_bounds.y() - top_height),
458 client_bounds.width() + (2 * border_thickness), 458 client_bounds.width() + (2 * border_thickness),
459 client_bounds.height() + top_height + border_thickness); 459 client_bounds.height() + top_height + border_thickness);
460 } 460 }
461 461
462 gfx::Point OpaqueBrowserFrameView::GetSystemMenuPoint() const { 462 gfx::Point OpaqueBrowserFrameView::GetSystemMenuPoint() const {
463 gfx::Point system_menu_point( 463 gfx::Point system_menu_point(
464 MirroredXCoordinateInsideView(FrameBorderThickness()), 464 MirroredXCoordinateInsideView(FrameBorderThickness()),
465 NonClientTopBorderHeight() + browser_view_->GetTabStripHeight() - 465 NonClientTopBorderHeight() + browser_view_->GetTabStripHeight() -
466 (browser_view_->IsFullscreen() ? 0 : kClientEdgeThickness)); 466 (frame_->IsFullscreen() ? 0 : kClientEdgeThickness));
467 ConvertPointToScreen(this, &system_menu_point); 467 ConvertPointToScreen(this, &system_menu_point);
468 return system_menu_point; 468 return system_menu_point;
469 } 469 }
470 470
471 int OpaqueBrowserFrameView::NonClientHitTest(const gfx::Point& point) { 471 int OpaqueBrowserFrameView::NonClientHitTest(const gfx::Point& point) {
472 if (!bounds().Contains(point)) 472 if (!bounds().Contains(point))
473 return HTNOWHERE; 473 return HTNOWHERE;
474 474
475 int frame_component = frame_->GetClientView()->NonClientHitTest(point); 475 int frame_component = frame_->GetClientView()->NonClientHitTest(point);
476 if (frame_component != HTNOWHERE) 476 if (frame_component != HTNOWHERE)
(...skipping 19 matching lines...) Expand all
496 NonClientBorderThickness(), kResizeAreaCornerSize, kResizeAreaCornerSize, 496 NonClientBorderThickness(), kResizeAreaCornerSize, kResizeAreaCornerSize,
497 frame_->GetDelegate()->CanResize()); 497 frame_->GetDelegate()->CanResize());
498 // Fall back to the caption if no other component matches. 498 // Fall back to the caption if no other component matches.
499 return (window_component == HTNOWHERE) ? HTCAPTION : window_component; 499 return (window_component == HTNOWHERE) ? HTCAPTION : window_component;
500 } 500 }
501 501
502 void OpaqueBrowserFrameView::GetWindowMask(const gfx::Size& size, 502 void OpaqueBrowserFrameView::GetWindowMask(const gfx::Size& size,
503 gfx::Path* window_mask) { 503 gfx::Path* window_mask) {
504 DCHECK(window_mask); 504 DCHECK(window_mask);
505 505
506 if (!browser_view_->CanCurrentlyResize()) 506 if (frame_->IsMaximized() || frame_->IsFullscreen())
507 return; 507 return;
508 508
509 // Redefine the window visible region for the new size. 509 // Redefine the window visible region for the new size.
510 window_mask->moveTo(0, 3); 510 window_mask->moveTo(0, 3);
511 window_mask->lineTo(1, 2); 511 window_mask->lineTo(1, 2);
512 window_mask->lineTo(1, 1); 512 window_mask->lineTo(1, 1);
513 window_mask->lineTo(2, 1); 513 window_mask->lineTo(2, 1);
514 window_mask->lineTo(3, 0); 514 window_mask->lineTo(3, 0);
515 515
516 window_mask->lineTo(SkIntToScalar(size.width() - 3), 0); 516 window_mask->lineTo(SkIntToScalar(size.width() - 3), 0);
(...skipping 16 matching lines...) Expand all
533 restore_button_->SetState(views::CustomButton::BS_NORMAL); 533 restore_button_->SetState(views::CustomButton::BS_NORMAL);
534 minimize_button_->SetState(views::CustomButton::BS_NORMAL); 534 minimize_button_->SetState(views::CustomButton::BS_NORMAL);
535 maximize_button_->SetState(views::CustomButton::BS_NORMAL); 535 maximize_button_->SetState(views::CustomButton::BS_NORMAL);
536 // The close button isn't affected by this constraint. 536 // The close button isn't affected by this constraint.
537 } 537 }
538 538
539 /////////////////////////////////////////////////////////////////////////////// 539 ///////////////////////////////////////////////////////////////////////////////
540 // OpaqueBrowserFrameView, views::View overrides: 540 // OpaqueBrowserFrameView, views::View overrides:
541 541
542 void OpaqueBrowserFrameView::Paint(ChromeCanvas* canvas) { 542 void OpaqueBrowserFrameView::Paint(ChromeCanvas* canvas) {
543 if (browser_view_->IsFullscreen()) 543 if (frame_->IsFullscreen())
544 return; // Nothing is visible, so don't bother to paint. 544 return; // Nothing is visible, so don't bother to paint.
545 545
546 if (frame_->IsMaximized()) 546 if (frame_->IsMaximized())
547 PaintMaximizedFrameBorder(canvas); 547 PaintMaximizedFrameBorder(canvas);
548 else 548 else
549 PaintRestoredFrameBorder(canvas); 549 PaintRestoredFrameBorder(canvas);
550 PaintDistributorLogo(canvas); 550 PaintDistributorLogo(canvas);
551 PaintTitleBar(canvas); 551 PaintTitleBar(canvas);
552 PaintToolbarBackground(canvas); 552 PaintToolbarBackground(canvas);
553 PaintOTRAvatar(canvas); 553 PaintOTRAvatar(canvas);
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
640 } 640 }
641 641
642 SkBitmap OpaqueBrowserFrameView::GetFavIconForTabIconView() { 642 SkBitmap OpaqueBrowserFrameView::GetFavIconForTabIconView() {
643 return frame_->GetDelegate()->GetWindowIcon(); 643 return frame_->GetDelegate()->GetWindowIcon();
644 } 644 }
645 645
646 /////////////////////////////////////////////////////////////////////////////// 646 ///////////////////////////////////////////////////////////////////////////////
647 // OpaqueBrowserFrameView, private: 647 // OpaqueBrowserFrameView, private:
648 648
649 int OpaqueBrowserFrameView::FrameBorderThickness() const { 649 int OpaqueBrowserFrameView::FrameBorderThickness() const {
650 return browser_view_->CanCurrentlyResize() ? kFrameBorderThickness : 0; 650 return (frame_->IsMaximized() || frame_->IsFullscreen()) ?
651 0 : kFrameBorderThickness;
651 } 652 }
652 653
653 int OpaqueBrowserFrameView::TopResizeHeight() const { 654 int OpaqueBrowserFrameView::TopResizeHeight() const {
654 return FrameBorderThickness() - kTopResizeAdjust; 655 return FrameBorderThickness() - kTopResizeAdjust;
655 } 656 }
656 657
657 int OpaqueBrowserFrameView::NonClientBorderThickness() const { 658 int OpaqueBrowserFrameView::NonClientBorderThickness() const {
658 // When we fill the screen, we don't show a client edge. 659 // When we fill the screen, we don't show a client edge.
659 return FrameBorderThickness() + 660 return FrameBorderThickness() +
660 (browser_view_->CanCurrentlyResize() ? kClientEdgeThickness : 0); 661 ((frame_->IsMaximized() || frame_->IsFullscreen()) ?
662 0 : kClientEdgeThickness);
661 } 663 }
662 664
663 int OpaqueBrowserFrameView::NonClientTopBorderHeight() const { 665 int OpaqueBrowserFrameView::NonClientTopBorderHeight() const {
664 if (frame_->GetDelegate()->ShouldShowWindowTitle()) { 666 if (frame_->GetDelegate()->ShouldShowWindowTitle()) {
665 int title_top_spacing, title_thickness; 667 int title_top_spacing, title_thickness;
666 return TitleCoordinates(&title_top_spacing, &title_thickness); 668 return TitleCoordinates(&title_top_spacing, &title_thickness);
667 } 669 }
668 670
669 return FrameBorderThickness() + (browser_view_->CanCurrentlyResize() ? 671 return FrameBorderThickness() +
670 kNonClientRestoredExtraThickness : 0); 672 ((frame_->IsMaximized() || frame_->IsFullscreen()) ?
673 0 : kNonClientRestoredExtraThickness);
671 } 674 }
672 675
673 int OpaqueBrowserFrameView::UnavailablePixelsAtBottomOfNonClientHeight() const { 676 int OpaqueBrowserFrameView::UnavailablePixelsAtBottomOfNonClientHeight() const {
674 // Tricky: When a toolbar is edging the titlebar, it not only draws its own 677 // Tricky: When a toolbar is edging the titlebar, it not only draws its own
675 // shadow and client edge, but an extra, light "shadow" pixel as well, which 678 // shadow and client edge, but an extra, light "shadow" pixel as well, which
676 // is treated as available space. Thus the nonclient area actually _fails_ to 679 // is treated as available space. Thus the nonclient area actually _fails_ to
677 // include some available pixels, leading to a negative number here. 680 // include some available pixels, leading to a negative number here.
678 if (browser_view_->IsToolbarVisible()) 681 if (browser_view_->IsToolbarVisible())
679 return -kFrameShadowThickness; 682 return -kFrameShadowThickness;
680 683
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
1054 } 1057 }
1055 1058
1056 // static 1059 // static
1057 void OpaqueBrowserFrameView::InitAppWindowResources() { 1060 void OpaqueBrowserFrameView::InitAppWindowResources() {
1058 static bool initialized = false; 1061 static bool initialized = false;
1059 if (!initialized) { 1062 if (!initialized) {
1060 title_font_ = win_util::GetWindowTitleFont(); 1063 title_font_ = win_util::GetWindowTitleFont();
1061 initialized = true; 1064 initialized = true;
1062 } 1065 }
1063 } 1066 }
OLDNEW
« no previous file with comments | « chrome/browser/views/frame/glass_browser_frame_view.cc ('k') | chrome/browser/window_sizer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698