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