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

Side by Side Diff: chrome/browser/views/autocomplete/autocomplete_popup_contents_view.cc

Issue 2862025: Canvas refactoring part 2.... (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/autocomplete/autocomplete_popup_contents_view.h" 5 #include "chrome/browser/views/autocomplete/autocomplete_popup_contents_view.h"
6 6
7 #include "app/bidi_line_iterator.h" 7 #include "app/bidi_line_iterator.h"
8 #include "app/l10n_util.h" 8 #include "app/l10n_util.h"
9 #include "app/resource_bundle.h" 9 #include "app/resource_bundle.h"
10 #include "app/theme_provider.h" 10 #include "app/theme_provider.h"
11 #include "app/text_elider.h" 11 #include "app/text_elider.h"
12 #include "base/compiler_specific.h" 12 #include "base/compiler_specific.h"
13 #include "base/i18n/rtl.h" 13 #include "base/i18n/rtl.h"
14 #include "chrome/browser/autocomplete/autocomplete_edit_view.h" 14 #include "chrome/browser/autocomplete/autocomplete_edit_view.h"
15 #include "chrome/browser/autocomplete/autocomplete_popup_model.h" 15 #include "chrome/browser/autocomplete/autocomplete_popup_model.h"
16 #include "chrome/browser/views/bubble_border.h" 16 #include "chrome/browser/views/bubble_border.h"
17 #include "chrome/browser/views/location_bar/location_bar_view.h" 17 #include "chrome/browser/views/location_bar/location_bar_view.h"
18 #include "gfx/canvas.h" 18 #include "gfx/canvas.h"
19 #include "gfx/canvas_skia.h"
19 #include "gfx/color_utils.h" 20 #include "gfx/color_utils.h"
20 #include "gfx/insets.h" 21 #include "gfx/insets.h"
21 #include "gfx/path.h" 22 #include "gfx/path.h"
22 #include "grit/generated_resources.h" 23 #include "grit/generated_resources.h"
23 #include "grit/theme_resources.h" 24 #include "grit/theme_resources.h"
24 #include "third_party/skia/include/core/SkShader.h" 25 #include "third_party/skia/include/core/SkShader.h"
25 #include "third_party/icu/public/common/unicode/ubidi.h" 26 #include "third_party/icu/public/common/unicode/ubidi.h"
26 #include "views/widget/widget.h" 27 #include "views/widget/widget.h"
27 28
28 #if defined(OS_WIN) 29 #if defined(OS_WIN)
(...skipping 728 matching lines...) Expand 10 before | Expand all | Expand 10 after
757 // We paint our children in an unconventional way. 758 // We paint our children in an unconventional way.
758 // 759 //
759 // Because the border of this view creates an anti-aliased round-rect region 760 // Because the border of this view creates an anti-aliased round-rect region
760 // for the contents, we need to render our rectangular result child views into 761 // for the contents, we need to render our rectangular result child views into
761 // this round rect region. We can't use a simple clip because clipping is 762 // this round rect region. We can't use a simple clip because clipping is
762 // 1-bit and we get nasty jagged edges. 763 // 1-bit and we get nasty jagged edges.
763 // 764 //
764 // Instead, we paint all our children into a second canvas and use that as a 765 // Instead, we paint all our children into a second canvas and use that as a
765 // shader to fill a path representing the round-rect clipping region. This 766 // shader to fill a path representing the round-rect clipping region. This
766 // yields a nice anti-aliased edge. 767 // yields a nice anti-aliased edge.
767 gfx::Canvas contents_canvas(width(), height(), true); 768 gfx::CanvasSkia contents_canvas(width(), height(), true);
768 contents_canvas.drawColor(GetColor(NORMAL, BACKGROUND)); 769 contents_canvas.drawColor(GetColor(NORMAL, BACKGROUND));
769 View::PaintChildren(&contents_canvas); 770 View::PaintChildren(contents_canvas.AsCanvas());
770 // We want the contents background to be slightly transparent so we can see 771 // We want the contents background to be slightly transparent so we can see
771 // the blurry glass effect on DWM systems behind. We do this _after_ we paint 772 // the blurry glass effect on DWM systems behind. We do this _after_ we paint
772 // the children since they paint text, and GDI will reset this alpha data if 773 // the children since they paint text, and GDI will reset this alpha data if
773 // we paint text after this call. 774 // we paint text after this call.
774 MakeCanvasTransparent(&contents_canvas); 775 MakeCanvasTransparent(contents_canvas.AsCanvas());
775 776
776 // Now paint the contents of the contents canvas into the actual canvas. 777 // Now paint the contents of the contents canvas into the actual canvas.
777 SkPaint paint; 778 SkPaint paint;
778 paint.setAntiAlias(true); 779 paint.setAntiAlias(true);
779 780
780 SkShader* shader = SkShader::CreateBitmapShader( 781 SkShader* shader = SkShader::CreateBitmapShader(
781 contents_canvas.getDevice()->accessBitmap(false), 782 contents_canvas.getDevice()->accessBitmap(false),
782 SkShader::kClamp_TileMode, 783 SkShader::kClamp_TileMode,
783 SkShader::kClamp_TileMode); 784 SkShader::kClamp_TileMode);
784 paint.setShader(shader); 785 paint.setShader(shader);
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
963 DCHECK(nb_match <= GetChildViewCount()); 964 DCHECK(nb_match <= GetChildViewCount());
964 for (int i = 0; i < nb_match; ++i) { 965 for (int i = 0; i < nb_match; ++i) {
965 views::View* child = GetChildViewAt(i); 966 views::View* child = GetChildViewAt(i);
966 gfx::Point point_in_child_coords(point); 967 gfx::Point point_in_child_coords(point);
967 View::ConvertPointToView(this, child, &point_in_child_coords); 968 View::ConvertPointToView(this, child, &point_in_child_coords);
968 if (child->HitTest(point_in_child_coords)) 969 if (child->HitTest(point_in_child_coords))
969 return i; 970 return i;
970 } 971 }
971 return AutocompletePopupModel::kNoMatch; 972 return AutocompletePopupModel::kNoMatch;
972 } 973 }
OLDNEW
« no previous file with comments | « chrome/browser/renderer_host/render_widget_host_view_win.cc ('k') | chrome/browser/views/bookmark_bar_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698