普通文本  |  41行  |  1.36 KB

// 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.

#include "chrome/common/icon_with_badge_image_source.h"

#include "chrome/common/badge_util.h"
//#include "ui/base/layout.h"
#include "ui/gfx/canvas.h"
#include "ui/gfx/rect.h"

IconWithBadgeImageSource::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)
        : gfx::CanvasImageSource(icon_size, false),
          icon_(icon),
          spacing_(spacing),
          text_(text),
          text_color_(text_color),
          background_color_(background_color),
          action_type_(action_type) {
}

IconWithBadgeImageSource::~IconWithBadgeImageSource() {}

void IconWithBadgeImageSource::Draw(gfx::Canvas* canvas) {
  canvas->DrawImageInt(icon_, 0, 0, SkPaint());
  gfx::Rect bounds(size_.width() + spacing_.width(),
                   size_.height() + spacing_.height());

  // Draw a badge on the provided browser action icon's canvas.
  badge_util::PaintBadge(canvas, bounds, text_, text_color_,
                         background_color_, size_.width(),
                         action_type_);
}