// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_COMMON_ICON_WITH_BADGE_IMAGE_SOURCE_H_ #define CHROME_COMMON_ICON_WITH_BADGE_IMAGE_SOURCE_H_ #include #include "chrome/common/extensions/api/extension_action/action_info.h" #include "ui/gfx/image/canvas_image_source.h" #include "ui/gfx/image/image_skia.h" namespace gfx { class Size; } // CanvasImageSource for creating extension icon with a badge. class IconWithBadgeImageSource : public gfx::CanvasImageSource { public: 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); virtual ~IconWithBadgeImageSource(); private: virtual void Draw(gfx::Canvas* canvas) OVERRIDE; // Browser action icon image. gfx::ImageSkia icon_; // Extra spacing for badge compared to icon bounds. gfx::Size spacing_; // Text to be displayed on the badge. std::string text_; // Color of badge text. SkColor text_color_; // Color of the badge. SkColor background_color_; // Type of extension action this is for. extensions::ActionInfo::Type action_type_; DISALLOW_COPY_AND_ASSIGN(IconWithBadgeImageSource); }; #endif // CHROME_COMMON_ICON_WITH_BADGE_IMAGE_SOURCE_H_