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

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

Issue 118058: Fix opaque app mode display.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years, 6 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 | « app/resources/app_top_right.png ('k') | no next file » | 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 "app/gfx/canvas.h" 7 #include "app/gfx/canvas.h"
8 #include "app/gfx/font.h" 8 #include "app/gfx/font.h"
9 #include "app/gfx/path.h" 9 #include "app/gfx/path.h"
10 #include "app/l10n_util.h" 10 #include "app/l10n_util.h"
(...skipping 740 matching lines...) Expand 10 before | Expand all | Expand 10 after
751 otr_avatar_bounds_.width(), otr_avatar_bounds_.height(), 751 otr_avatar_bounds_.width(), otr_avatar_bounds_.height(),
752 MirroredLeftPointForRect(otr_avatar_bounds_), otr_avatar_bounds_.y(), 752 MirroredLeftPointForRect(otr_avatar_bounds_), otr_avatar_bounds_.y(),
753 otr_avatar_bounds_.width(), otr_avatar_bounds_.height(), false); 753 otr_avatar_bounds_.width(), otr_avatar_bounds_.height(), false);
754 } 754 }
755 755
756 void OpaqueBrowserFrameView::PaintRestoredClientEdge(gfx::Canvas* canvas) { 756 void OpaqueBrowserFrameView::PaintRestoredClientEdge(gfx::Canvas* canvas) {
757 ThemeProvider* tp = GetThemeProvider(); 757 ThemeProvider* tp = GetThemeProvider();
758 int client_area_top = frame_->GetWindow()->GetClientView()->y(); 758 int client_area_top = frame_->GetWindow()->GetClientView()->y();
759 759
760 gfx::Rect client_area_bounds = CalculateClientAreaBounds(width(), height()); 760 gfx::Rect client_area_bounds = CalculateClientAreaBounds(width(), height());
761 SkColor toolbar_color = tp->GetColor(BrowserThemeProvider::COLOR_TOOLBAR);
762
761 if (browser_view_->IsToolbarVisible()) { 763 if (browser_view_->IsToolbarVisible()) {
762 // The client edges start below the toolbar or its corner images, whichever 764 // The client edges start below the toolbar or its corner images, whichever
763 // is shorter. 765 // is shorter.
764 gfx::Rect toolbar_bounds(browser_view_->GetToolbarBounds()); 766 gfx::Rect toolbar_bounds(browser_view_->GetToolbarBounds());
765 client_area_top += browser_view_->GetToolbarBounds().y() + 767 client_area_top += browser_view_->GetToolbarBounds().y() +
766 std::min(tp->GetBitmapNamed(IDR_CONTENT_TOP_LEFT_CORNER)->height(), 768 std::min(tp->GetBitmapNamed(IDR_CONTENT_TOP_LEFT_CORNER)->height(),
767 toolbar_bounds.height()); 769 toolbar_bounds.height());
768 } else { 770 } else {
769 // The toolbar isn't going to draw a client edge for us, so draw one 771 // The toolbar isn't going to draw a client edge for us, so draw one
770 // ourselves. 772 // ourselves.
771 // This next calculation is necessary because the top center bitmap is
772 // shorter than the top left and right bitmaps. We need their top edges to
773 // line up, and we need the left and right edges to start below the corners'
774 // bottoms.
775 SkBitmap* top_left = tp->GetBitmapNamed(IDR_APP_TOP_LEFT); 773 SkBitmap* top_left = tp->GetBitmapNamed(IDR_APP_TOP_LEFT);
776 SkBitmap* top_center = tp->GetBitmapNamed(IDR_APP_TOP_CENTER); 774 SkBitmap* top_center = tp->GetBitmapNamed(IDR_APP_TOP_CENTER);
777 SkBitmap* top_right = tp->GetBitmapNamed(IDR_APP_TOP_RIGHT); 775 SkBitmap* top_right = tp->GetBitmapNamed(IDR_APP_TOP_RIGHT);
778 int top_edge_y = client_area_top - top_center->height(); 776 int top_edge_y = client_area_top - top_center->height();
777 int height = client_area_top - top_edge_y;
779 778
780 client_area_top = std::min(top_edge_y + top_left->height(),
781 height() - NonClientBorderThickness());
782 int height = client_area_top - top_edge_y;
783 canvas->DrawBitmapInt(*top_left, 0, 0, top_left->width(), height, 779 canvas->DrawBitmapInt(*top_left, 0, 0, top_left->width(), height,
784 client_area_bounds.x() - top_left->width(), top_edge_y, 780 client_area_bounds.x() - top_left->width(), top_edge_y,
785 top_left->width(), height, false); 781 top_left->width(), height, false);
786 canvas->TileImageInt(*top_center, 0, 0, client_area_bounds.x(), top_edge_y, 782 canvas->TileImageInt(*top_center, 0, 0, client_area_bounds.x(), top_edge_y,
787 client_area_bounds.width(), std::min(height, top_center->height())); 783 client_area_bounds.width(), std::min(height, top_center->height()));
788 canvas->DrawBitmapInt(*top_right, 0, 0, top_right->width(), height, 784 canvas->DrawBitmapInt(*top_right, 0, 0, top_right->width(), height,
789 client_area_bounds.right(), top_edge_y, 785 client_area_bounds.right(), top_edge_y,
790 top_right->width(), height, false); 786 top_right->width(), height, false);
787
788 // Draw the toolbar color across the top edge.
789 canvas->DrawLineInt(toolbar_color,
790 client_area_bounds.x() - kClientEdgeThickness,
791 client_area_top - kClientEdgeThickness,
792 client_area_bounds.right() + kClientEdgeThickness,
793 client_area_top - kClientEdgeThickness);
791 } 794 }
792 795
793 int client_area_bottom = 796 int client_area_bottom =
794 std::max(client_area_top, height() - NonClientBorderThickness()); 797 std::max(client_area_top, height() - NonClientBorderThickness());
795 int client_area_height = client_area_bottom - client_area_top; 798 int client_area_height = client_area_bottom - client_area_top;
796 799
797 // Draw the toolbar color so that the one pixel areas down the sides 800 // Draw the toolbar color so that the one pixel areas down the sides
798 // show the right color even if not covered by the toolbar image. 801 // show the right color even if not covered by the toolbar image.
799 SkColor toolbar_color = tp->GetColor(BrowserThemeProvider::COLOR_TOOLBAR);
800 canvas->DrawLineInt(toolbar_color, 802 canvas->DrawLineInt(toolbar_color,
801 client_area_bounds.x() - kClientEdgeThickness, 803 client_area_bounds.x() - kClientEdgeThickness,
802 client_area_top, 804 client_area_top,
803 client_area_bounds.x() - kClientEdgeThickness, 805 client_area_bounds.x() - kClientEdgeThickness,
804 client_area_bottom - 1 + kClientEdgeThickness); 806 client_area_bottom - 1 + kClientEdgeThickness);
805 canvas->DrawLineInt(toolbar_color, 807 canvas->DrawLineInt(toolbar_color,
806 client_area_bounds.x() - kClientEdgeThickness, 808 client_area_bounds.x() - kClientEdgeThickness,
807 client_area_bottom - 1 + kClientEdgeThickness, 809 client_area_bottom - 1 + kClientEdgeThickness,
808 client_area_bounds.right() + kClientEdgeThickness, 810 client_area_bounds.right() + kClientEdgeThickness,
809 client_area_bottom - 1 + kClientEdgeThickness); 811 client_area_bottom - 1 + kClientEdgeThickness);
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
980 if (!initialized) { 982 if (!initialized) {
981 #if defined(OS_WIN) 983 #if defined(OS_WIN)
982 title_font_ = new gfx::Font(win_util::GetWindowTitleFont()); 984 title_font_ = new gfx::Font(win_util::GetWindowTitleFont());
983 #else 985 #else
984 NOTIMPLEMENTED(); 986 NOTIMPLEMENTED();
985 title_font_ = new gfx::Font(); 987 title_font_ = new gfx::Font();
986 #endif 988 #endif
987 initialized = true; 989 initialized = true;
988 } 990 }
989 } 991 }
OLDNEW
« no previous file with comments | « app/resources/app_top_right.png ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698