round_rect_painter.cc revision 90dce4d38c5ff5333bea97d859d4e484e27edf0c
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