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)
2190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)gfx::Size RoundRectPainter::GetMinimumSize() const {
2290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  return gfx::Size(1, 1);
2390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
2490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void RoundRectPainter::Paint(gfx::Canvas* canvas, const gfx::Size& size) {
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  SkPaint paint;
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  paint.setColor(border_color_);
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  paint.setStyle(SkPaint::kStroke_Style);
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  paint.setStrokeWidth(1);
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  paint.setFlags(SkPaint::kAntiAlias_Flag);
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  gfx::Rect rect(size);
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  rect.Inset(0, 0, 1, 1);
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  SkRect skia_rect = gfx::RectToSkRect(rect);
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  skia_rect.offset(.5, .5);
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  canvas->sk_canvas()->drawRoundRect(skia_rect, SkIntToScalar(corner_radius_),
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      SkIntToScalar(corner_radius_), paint);
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace views
40