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 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 29 IconWithBadgeImageSource::~IconWithBadgeImageSource() {} 30 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