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

Side by Side Diff: views/background.cc

Issue 7065013: Makes Background only create a brush when needed. This avoids (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 7 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 | « views/background.h ('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) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 "views/background.h" 5 #include "views/background.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "skia/ext/skia_utils_win.h" 8 #include "skia/ext/skia_utils_win.h"
9 #include "third_party/skia/include/core/SkPaint.h" 9 #include "third_party/skia/include/core/SkPaint.h"
10 #include "ui/gfx/canvas_skia.h" 10 #include "ui/gfx/canvas_skia.h"
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 67
68 Background::~Background() { 68 Background::~Background() {
69 #if defined(OS_WIN) 69 #if defined(OS_WIN)
70 DeleteObject(native_control_brush_); 70 DeleteObject(native_control_brush_);
71 #endif 71 #endif
72 } 72 }
73 73
74 void Background::SetNativeControlColor(SkColor color) { 74 void Background::SetNativeControlColor(SkColor color) {
75 color_ = color; 75 color_ = color;
76 #if defined(OS_WIN) 76 #if defined(OS_WIN)
77 DeleteObject(native_control_brush_); 77 DeleteObject(native_control_brush_);
Ben Goodger (Google) 2011/05/24 02:09:48 Should this also set native_control_brush_ back to
sky 2011/05/24 18:13:50 Definitely. Fixed.
78 native_control_brush_ = CreateSolidBrush(skia::SkColorToCOLORREF(color));
79 #endif 78 #endif
80 } 79 }
81 80
81 #if defined(OS_WIN)
82 HBRUSH Background::GetNativeControlBrush() const {
83 if (!native_control_brush_)
84 native_control_brush_ = CreateSolidBrush(skia::SkColorToCOLORREF(color_));
85 return native_control_brush_;
86 }
87 #endif
88
82 //static 89 //static
83 Background* Background::CreateSolidBackground(const SkColor& color) { 90 Background* Background::CreateSolidBackground(const SkColor& color) {
84 return new SolidBackground(color); 91 return new SolidBackground(color);
85 } 92 }
86 93
87 //static 94 //static
88 Background* Background::CreateStandardPanelBackground() { 95 Background* Background::CreateStandardPanelBackground() {
89 return CreateVerticalGradientBackground(SkColorSetRGB(246, 250, 255), 96 return CreateVerticalGradientBackground(SkColorSetRGB(246, 250, 255),
90 SkColorSetRGB(219, 235, 255)); 97 SkColorSetRGB(219, 235, 255));
91 } 98 }
92 99
93 //static 100 //static
94 Background* Background::CreateVerticalGradientBackground( 101 Background* Background::CreateVerticalGradientBackground(
95 const SkColor& color1, const SkColor& color2) { 102 const SkColor& color1, const SkColor& color2) {
96 Background* background = CreateBackgroundPainter( 103 Background* background = CreateBackgroundPainter(
97 true, Painter::CreateVerticalGradient(color1, color2)); 104 true, Painter::CreateVerticalGradient(color1, color2));
98 background->SetNativeControlColor( 105 background->SetNativeControlColor(
99 color_utils::AlphaBlend(color1, color2, 128)); 106 color_utils::AlphaBlend(color1, color2, 128));
100 107
101 return background; 108 return background;
102 } 109 }
103 110
104 //static 111 //static
105 Background* Background::CreateBackgroundPainter(bool owns_painter, 112 Background* Background::CreateBackgroundPainter(bool owns_painter,
106 Painter* painter) { 113 Painter* painter) {
107 return new BackgroundPainter(owns_painter, painter); 114 return new BackgroundPainter(owns_painter, painter);
108 } 115 }
109 116
110 } // namespace views 117 } // namespace views
OLDNEW
« no previous file with comments | « views/background.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698