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

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

Issue 2825018: Canvas refactoring part 3.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 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
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "app/resource_bundle.h" 8 #include "app/resource_bundle.h"
9 #include "app/theme_provider.h" 9 #include "app/theme_provider.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
11 #include "chrome/browser/browser_theme_provider.h" 11 #include "chrome/browser/browser_theme_provider.h"
12 #include "chrome/browser/tab_contents/tab_contents.h" 12 #include "chrome/browser/tab_contents/tab_contents.h"
13 #include "chrome/browser/views/frame/browser_extender.h" 13 #include "chrome/browser/views/frame/browser_extender.h"
14 #include "chrome/browser/views/frame/browser_frame.h" 14 #include "chrome/browser/views/frame/browser_frame.h"
15 #include "chrome/browser/views/frame/browser_view.h" 15 #include "chrome/browser/views/frame/browser_view.h"
16 #include "chrome/browser/views/tabs/tab_strip.h" 16 #include "chrome/browser/views/tabs/tab_strip.h"
17 #include "chrome/browser/views/toolbar_view.h" 17 #include "chrome/browser/views/toolbar_view.h"
18 #include "gfx/canvas.h" 18 #include "gfx/canvas_skia.h"
19 #include "gfx/font.h" 19 #include "gfx/font.h"
20 #include "gfx/path.h" 20 #include "gfx/path.h"
21 #include "grit/app_resources.h" 21 #include "grit/app_resources.h"
22 #include "grit/chromium_strings.h" 22 #include "grit/chromium_strings.h"
23 #include "grit/generated_resources.h" 23 #include "grit/generated_resources.h"
24 #include "grit/theme_resources.h" 24 #include "grit/theme_resources.h"
25 #include "views/controls/button/image_button.h" 25 #include "views/controls/button/image_button.h"
26 #include "views/controls/image_view.h" 26 #include "views/controls/image_view.h"
27 #include "views/widget/root_view.h" 27 #include "views/widget/root_view.h"
28 #include "views/window/window.h" 28 #include "views/window/window.h"
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 } 375 }
376 376
377 // The otr icon is clipped for side tabs. 377 // The otr icon is clipped for side tabs.
378 for (int i = 0, count = GetChildViewCount(); i < count; ++i) { 378 for (int i = 0, count = GetChildViewCount(); i < count; ++i) {
379 View* child = GetChildViewAt(i); 379 View* child = GetChildViewAt(i);
380 if (!child) { 380 if (!child) {
381 NOTREACHED() << "Should not have a NULL child View for index in bounds"; 381 NOTREACHED() << "Should not have a NULL child View for index in bounds";
382 continue; 382 continue;
383 } 383 }
384 if (child == otr_avatar_icon_) { 384 if (child == otr_avatar_icon_) {
385 canvas->save(); 385 canvas->AsCanvasSkia()->save();
386 canvas->ClipRectInt(0, 2, width(), otr_avatar_icon_->height() - 10); 386 canvas->ClipRectInt(0, 2, width(), otr_avatar_icon_->height() - 10);
387 child->ProcessPaint(canvas); 387 child->ProcessPaint(canvas);
388 canvas->restore(); 388 canvas->AsCanvasSkia()->restore();
389 } else { 389 } else {
390 child->ProcessPaint(canvas); 390 child->ProcessPaint(canvas);
391 } 391 }
392 } 392 }
393 } 393 }
394 394
395 void OpaqueBrowserFrameView::Layout() { 395 void OpaqueBrowserFrameView::Layout() {
396 LayoutWindowControls(); 396 LayoutWindowControls();
397 LayoutTitleBar(); 397 LayoutTitleBar();
398 LayoutOTRAvatar(); 398 LayoutOTRAvatar();
(...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after
778 int bottom_y = y + split_point; 778 int bottom_y = y + split_point;
779 SkBitmap* toolbar_left = tp->GetBitmapNamed(IDR_CONTENT_TOP_LEFT_CORNER); 779 SkBitmap* toolbar_left = tp->GetBitmapNamed(IDR_CONTENT_TOP_LEFT_CORNER);
780 int bottom_edge_height = std::min(toolbar_left->height(), h) - split_point; 780 int bottom_edge_height = std::min(toolbar_left->height(), h) - split_point;
781 781
782 // Split our canvas out so we can mask out the corners of the toolbar 782 // Split our canvas out so we can mask out the corners of the toolbar
783 // without masking out the frame. 783 // without masking out the frame.
784 SkRect bounds; 784 SkRect bounds;
785 bounds.set(SkIntToScalar(x - kClientEdgeThickness), SkIntToScalar(y), 785 bounds.set(SkIntToScalar(x - kClientEdgeThickness), SkIntToScalar(y),
786 SkIntToScalar(x + w + kClientEdgeThickness * 2), 786 SkIntToScalar(x + w + kClientEdgeThickness * 2),
787 SkIntToScalar(y + h)); 787 SkIntToScalar(y + h));
788 canvas->saveLayerAlpha(&bounds, 255); 788 canvas->AsCanvasSkia()->saveLayerAlpha(&bounds, 255);
789 canvas->drawARGB(0, 255, 255, 255, SkXfermode::kClear_Mode); 789 canvas->AsCanvasSkia()->drawARGB(0, 255, 255, 255, SkXfermode::kClear_Mode);
790 790
791 SkColor theme_toolbar_color = 791 SkColor theme_toolbar_color =
792 tp->GetColor(BrowserThemeProvider::COLOR_TOOLBAR); 792 tp->GetColor(BrowserThemeProvider::COLOR_TOOLBAR);
793 canvas->FillRectInt(theme_toolbar_color, x, bottom_y, w, bottom_edge_height); 793 canvas->FillRectInt(theme_toolbar_color, x, bottom_y, w, bottom_edge_height);
794 794
795 int strip_height = browser_view_->GetTabStripHeight(); 795 int strip_height = browser_view_->GetTabStripHeight();
796 SkBitmap* theme_toolbar = tp->GetBitmapNamed(IDR_THEME_TOOLBAR); 796 SkBitmap* theme_toolbar = tp->GetBitmapNamed(IDR_THEME_TOOLBAR);
797 797
798 canvas->TileImageInt(*theme_toolbar, 798 canvas->TileImageInt(*theme_toolbar,
799 x - kClientEdgeThickness, 799 x - kClientEdgeThickness,
(...skipping 29 matching lines...) Expand all
829 // Mask the right edge. 829 // Mask the right edge.
830 int right_x = x + w - toolbar_right_mask->width() + kClientEdgeThickness + 830 int right_x = x + w - toolbar_right_mask->width() + kClientEdgeThickness +
831 kContentEdgeShadowThickness; 831 kContentEdgeShadowThickness;
832 canvas->DrawBitmapInt(*toolbar_right_mask, 0, 0, 832 canvas->DrawBitmapInt(*toolbar_right_mask, 0, 0,
833 toolbar_right_mask->width(), split_point, right_x, y, 833 toolbar_right_mask->width(), split_point, right_x, y,
834 toolbar_right_mask->width(), split_point, false, paint); 834 toolbar_right_mask->width(), split_point, false, paint);
835 canvas->DrawBitmapInt(*toolbar_right_mask, 0, 835 canvas->DrawBitmapInt(*toolbar_right_mask, 0,
836 toolbar_right_mask->height() - bottom_edge_height, 836 toolbar_right_mask->height() - bottom_edge_height,
837 toolbar_right_mask->width(), bottom_edge_height, right_x, bottom_y, 837 toolbar_right_mask->width(), bottom_edge_height, right_x, bottom_y,
838 toolbar_right_mask->width(), bottom_edge_height, false, paint); 838 toolbar_right_mask->width(), bottom_edge_height, false, paint);
839 canvas->restore(); 839 canvas->AsCanvasSkia()->restore();
840 840
841 canvas->DrawBitmapInt(*toolbar_left, 0, 0, toolbar_left->width(), split_point, 841 canvas->DrawBitmapInt(*toolbar_left, 0, 0, toolbar_left->width(), split_point,
842 left_x, y, 842 left_x, y,
843 toolbar_left->width(), split_point, false); 843 toolbar_left->width(), split_point, false);
844 canvas->DrawBitmapInt(*toolbar_left, 0, 844 canvas->DrawBitmapInt(*toolbar_left, 0,
845 toolbar_left->height() - bottom_edge_height, toolbar_left->width(), 845 toolbar_left->height() - bottom_edge_height, toolbar_left->width(),
846 bottom_edge_height, left_x, bottom_y, 846 bottom_edge_height, left_x, bottom_y,
847 toolbar_left->width(), bottom_edge_height, false); 847 toolbar_left->width(), bottom_edge_height, false);
848 848
849 SkBitmap* toolbar_center = 849 SkBitmap* toolbar_center =
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
1080 // static 1080 // static
1081 gfx::Rect OpaqueBrowserFrameView::GetViewBounds(views::View* src, 1081 gfx::Rect OpaqueBrowserFrameView::GetViewBounds(views::View* src,
1082 views::View* dst) { 1082 views::View* dst) {
1083 gfx::Rect bounds(src->bounds()); 1083 gfx::Rect bounds(src->bounds());
1084 1084
1085 gfx::Point origin_in_dst(bounds.origin()); 1085 gfx::Point origin_in_dst(bounds.origin());
1086 View::ConvertPointToView(src->GetParent(), dst, &origin_in_dst); 1086 View::ConvertPointToView(src->GetParent(), dst, &origin_in_dst);
1087 bounds.set_origin(origin_in_dst); 1087 bounds.set_origin(origin_in_dst);
1088 return bounds; 1088 return bounds;
1089 } 1089 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698