diff options
Diffstat (limited to 'chromium/extensions/browser/extension_icon_placeholder.h')
-rw-r--r-- | chromium/extensions/browser/extension_icon_placeholder.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/chromium/extensions/browser/extension_icon_placeholder.h b/chromium/extensions/browser/extension_icon_placeholder.h new file mode 100644 index 00000000000..5c5e90238f9 --- /dev/null +++ b/chromium/extensions/browser/extension_icon_placeholder.h @@ -0,0 +1,54 @@ +// Copyright 2015 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 EXTENSIONS_BROWSER_EXTENSION_ICON_PLACEHOLDER_H_ +#define EXTENSIONS_BROWSER_EXTENSION_ICON_PLACEHOLDER_H_ + +#include <string> + +#include "base/macros.h" +#include "base/strings/string16.h" +#include "extensions/common/constants.h" +#include "ui/gfx/image/canvas_image_source.h" +#include "ui/gfx/image/image.h" + +namespace gfx { +class Canvas; +class Size; +} + +namespace extensions { + +// An extension icon image with a gray background and the first letter of the +// extension name, so that not all extensions without an icon look the same. +class ExtensionIconPlaceholder : public gfx::CanvasImageSource { + public: + ExtensionIconPlaceholder(extension_misc::ExtensionIcons size, + const std::string& name); + ~ExtensionIconPlaceholder() override; + + // Creates an image backed by an ImageSkia with the ExtensionIconPlaceholder + // as its image source. + static gfx::Image CreateImage(extension_misc::ExtensionIcons size, + const std::string& name); + + private: + // gfx::CanvasImageSource: + void Draw(gfx::Canvas* canvas) override; + + // The size this placeholder is filling. + extension_misc::ExtensionIcons icon_size_; + + // The first letter of the extension's name. + base::string16 letter_; + + // The gray background image, on top of which the letter is drawn. + gfx::Image base_image_; + + DISALLOW_COPY_AND_ASSIGN(ExtensionIconPlaceholder); +}; + +} // namespace extensions + +#endif // EXTENSIONS_BROWSER_EXTENSION_ICON_PLACEHOLDER_H_ |