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 "chrome/common/icon_with_badge_image_source.h" 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/common/badge_util.h" 868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)//#include "ui/base/layout.h" 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/gfx/canvas.h" 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/gfx/rect.h" 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IconWithBadgeImageSource::IconWithBadgeImageSource( 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const gfx::ImageSkia& icon, 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const gfx::Size& icon_size, 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const gfx::Size& spacing, 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::string& text, 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const SkColor& text_color, 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const SkColor& background_color, 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) extensions::ActionInfo::Type action_type) 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) : gfx::CanvasImageSource(icon_size, false), 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) icon_(icon), 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) spacing_(spacing), 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) text_(text), 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) text_color_(text_color), 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) background_color_(background_color), 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) action_type_(action_type) { 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IconWithBadgeImageSource::~IconWithBadgeImageSource() {} 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void IconWithBadgeImageSource::Draw(gfx::Canvas* canvas) { 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) canvas->DrawImageInt(icon_, 0, 0, SkPaint()); 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) gfx::Rect bounds(size_.width() + spacing_.width(), 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) size_.height() + spacing_.height()); 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Draw a badge on the provided browser action icon's canvas. 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) badge_util::PaintBadge(canvas, bounds, text_, text_color_, 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) background_color_, size_.width(), 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) action_type_); 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 41