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