1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/common/icon_with_badge_image_source.h"
6
7 #include "chrome/common/badge_util.h"
8 //#include "ui/base/layout.h"
9 #include "ui/gfx/canvas.h"
10 #include "ui/gfx/rect.h"
11
IconWithBadgeImageSource(const gfx::ImageSkia & icon,const gfx::Size & icon_size,const gfx::Size & spacing,const std::string & text,const SkColor & text_color,const SkColor & background_color,extensions::ActionInfo::Type action_type)12 IconWithBadgeImageSource::IconWithBadgeImageSource(
13 const gfx::ImageSkia& icon,
14 const gfx::Size& icon_size,
15 const gfx::Size& spacing,
16 const std::string& text,
17 const SkColor& text_color,
18 const SkColor& background_color,
19 extensions::ActionInfo::Type action_type)
20 : gfx::CanvasImageSource(icon_size, false),
21 icon_(icon),
22 spacing_(spacing),
23 text_(text),
24 text_color_(text_color),
25 background_color_(background_color),
26 action_type_(action_type) {
27 }
28
~IconWithBadgeImageSource()29 IconWithBadgeImageSource::~IconWithBadgeImageSource() {}
30
Draw(gfx::Canvas * canvas)31 void IconWithBadgeImageSource::Draw(gfx::Canvas* canvas) {
32 canvas->DrawImageInt(icon_, 0, 0, SkPaint());
33 gfx::Rect bounds(size_.width() + spacing_.width(),
34 size_.height() + spacing_.height());
35
36 // Draw a badge on the provided browser action icon's canvas.
37 badge_util::PaintBadge(canvas, bounds, text_, text_color_,
38 background_color_, size_.width(),
39 action_type_);
40 }
41