| OLD | NEW |
| 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/painter.h" | 5 #include "views/painter.h" |
| 6 | 6 |
| 7 #include "app/resource_bundle.h" | 7 #include "app/resource_bundle.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "gfx/canvas.h" | 9 #include "gfx/canvas.h" |
| 10 #include "gfx/canvas_skia.h" | |
| 11 #include "gfx/insets.h" | 10 #include "gfx/insets.h" |
| 12 #include "third_party/skia/include/core/SkBitmap.h" | 11 #include "third_party/skia/include/core/SkBitmap.h" |
| 13 #include "third_party/skia/include/effects/SkGradientShader.h" | 12 #include "third_party/skia/include/effects/SkGradientShader.h" |
| 14 | 13 |
| 15 namespace views { | 14 namespace views { |
| 16 | 15 |
| 17 namespace { | 16 namespace { |
| 18 | 17 |
| 19 class GradientPainter : public Painter { | 18 class GradientPainter : public Painter { |
| 20 public: | 19 public: |
| (...skipping 16 matching lines...) Expand all Loading... |
| 37 p[1].set(SkIntToScalar(0), SkIntToScalar(h)); | 36 p[1].set(SkIntToScalar(0), SkIntToScalar(h)); |
| 38 | 37 |
| 39 SkShader* s = | 38 SkShader* s = |
| 40 SkGradientShader::CreateLinear(p, colors_, NULL, 2, | 39 SkGradientShader::CreateLinear(p, colors_, NULL, 2, |
| 41 SkShader::kClamp_TileMode, NULL); | 40 SkShader::kClamp_TileMode, NULL); |
| 42 paint.setStyle(SkPaint::kFill_Style); | 41 paint.setStyle(SkPaint::kFill_Style); |
| 43 paint.setShader(s); | 42 paint.setShader(s); |
| 44 // Need to unref shader, otherwise never deleted. | 43 // Need to unref shader, otherwise never deleted. |
| 45 s->unref(); | 44 s->unref(); |
| 46 | 45 |
| 47 canvas->AsCanvasSkia()->drawRectCoords( | 46 canvas->drawRectCoords(SkIntToScalar(0), SkIntToScalar(0), |
| 48 SkIntToScalar(0), SkIntToScalar(0), SkIntToScalar(w), SkIntToScalar(h), | 47 SkIntToScalar(w), SkIntToScalar(h), paint); |
| 49 paint); | |
| 50 } | 48 } |
| 51 | 49 |
| 52 private: | 50 private: |
| 53 bool horizontal_; | 51 bool horizontal_; |
| 54 SkColor colors_[2]; | 52 SkColor colors_[2]; |
| 55 | 53 |
| 56 DISALLOW_COPY_AND_ASSIGN(GradientPainter); | 54 DISALLOW_COPY_AND_ASSIGN(GradientPainter); |
| 57 }; | 55 }; |
| 58 | 56 |
| 59 | 57 |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 141 }; | 139 }; |
| 142 | 140 |
| 143 } // namespace | 141 } // namespace |
| 144 | 142 |
| 145 // static | 143 // static |
| 146 void Painter::PaintPainterAt(int x, int y, int w, int h, | 144 void Painter::PaintPainterAt(int x, int y, int w, int h, |
| 147 gfx::Canvas* canvas, Painter* painter) { | 145 gfx::Canvas* canvas, Painter* painter) { |
| 148 DCHECK(canvas && painter); | 146 DCHECK(canvas && painter); |
| 149 if (w < 0 || h < 0) | 147 if (w < 0 || h < 0) |
| 150 return; | 148 return; |
| 151 canvas->AsCanvasSkia()->save(); | 149 canvas->save(); |
| 152 canvas->TranslateInt(x, y); | 150 canvas->TranslateInt(x, y); |
| 153 painter->Paint(w, h, canvas); | 151 painter->Paint(w, h, canvas); |
| 154 canvas->AsCanvasSkia()->restore(); | 152 canvas->restore(); |
| 155 } | 153 } |
| 156 | 154 |
| 157 // static | 155 // static |
| 158 Painter* Painter::CreateHorizontalGradient(SkColor c1, SkColor c2) { | 156 Painter* Painter::CreateHorizontalGradient(SkColor c1, SkColor c2) { |
| 159 return new GradientPainter(true, c1, c2); | 157 return new GradientPainter(true, c1, c2); |
| 160 } | 158 } |
| 161 | 159 |
| 162 // static | 160 // static |
| 163 Painter* Painter::CreateVerticalGradient(SkColor c1, SkColor c2) { | 161 Painter* Painter::CreateVerticalGradient(SkColor c1, SkColor c2) { |
| 164 return new GradientPainter(false, c1, c2); | 162 return new GradientPainter(false, c1, c2); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 189 canvas->DrawBitmapInt(*images_[LEFT], 0, 0); | 187 canvas->DrawBitmapInt(*images_[LEFT], 0, 0); |
| 190 canvas->DrawBitmapInt(*images_[RIGHT], w - images_[RIGHT]->width(), 0); | 188 canvas->DrawBitmapInt(*images_[RIGHT], w - images_[RIGHT]->width(), 0); |
| 191 canvas->TileImageInt(*images_[CENTER], | 189 canvas->TileImageInt(*images_[CENTER], |
| 192 images_[LEFT]->width(), | 190 images_[LEFT]->width(), |
| 193 0, | 191 0, |
| 194 w - images_[LEFT]->width() - images_[RIGHT]->width(), | 192 w - images_[LEFT]->width() - images_[RIGHT]->width(), |
| 195 height_); | 193 height_); |
| 196 } | 194 } |
| 197 | 195 |
| 198 } // namespace views | 196 } // namespace views |
| OLD | NEW |