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