• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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