round_rect_painter.cc revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/views/round_rect_painter.h"
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/gfx/canvas.h"
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/gfx/path.h"
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/gfx/skia_util.h"
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace views {
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)RoundRectPainter::RoundRectPainter(SkColor border_color, int corner_radius)
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    : border_color_(border_color),
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      corner_radius_(corner_radius) {
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)RoundRectPainter::~RoundRectPainter() {
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void RoundRectPainter::Paint(gfx::Canvas* canvas, const gfx::Size& size) {
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  SkPaint paint;
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  paint.setColor(border_color_);
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  paint.setStyle(SkPaint::kStroke_Style);
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  paint.setStrokeWidth(1);
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  paint.setFlags(SkPaint::kAntiAlias_Flag);
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  gfx::Rect rect(size);
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  rect.Inset(0, 0, 1, 1);
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  SkRect skia_rect = gfx::RectToSkRect(rect);
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  skia_rect.offset(.5, .5);
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  canvas->sk_canvas()->drawRoundRect(skia_rect, SkIntToScalar(corner_radius_),
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      SkIntToScalar(corner_radius_), paint);
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace views
36