Chromium Code Reviews| Index: chrome/browser/ui/app_list/extension_app_item.cc |
| diff --git a/chrome/browser/ui/app_list/extension_app_item.cc b/chrome/browser/ui/app_list/extension_app_item.cc |
| index 8b0c4bb108559a91c8bfb13887cf2dd0aa3f2c2a..7ebc1ccdc1651f92a654848c27468631fbfe3a8e 100644 |
| --- a/chrome/browser/ui/app_list/extension_app_item.cc |
| +++ b/chrome/browser/ui/app_list/extension_app_item.cc |
| @@ -117,39 +117,29 @@ class ExtensionUninstaller : public ExtensionUninstallDialog::Delegate { |
| DISALLOW_COPY_AND_ASSIGN(ExtensionUninstaller); |
| }; |
| -class TabOverlayImageSource : public gfx::CanvasImageSource { |
| +// Overlays a shortcut icon over the bottom left corner of a given image. |
| +class ShortcutOverlayImageSource : public gfx::CanvasImageSource { |
| public: |
| - TabOverlayImageSource(const gfx::ImageSkia& icon, const gfx::Size& size) |
| - : gfx::CanvasImageSource(size, false), |
| + explicit ShortcutOverlayImageSource(const gfx::ImageSkia& icon) |
| + : gfx::CanvasImageSource(icon.size(), false), |
| icon_(icon) { |
| - if (!icon_.isNull()) { |
| - DCHECK_EQ(extension_misc::EXTENSION_ICON_SMALL, icon_.width()); |
| - DCHECK_EQ(extension_misc::EXTENSION_ICON_SMALL, icon_.height()); |
| - } |
| } |
| - virtual ~TabOverlayImageSource() {} |
| + virtual ~ShortcutOverlayImageSource() {} |
| private: |
| // gfx::CanvasImageSource overrides: |
| virtual void Draw(gfx::Canvas* canvas) OVERRIDE { |
| - using extension_misc::EXTENSION_ICON_SMALL; |
| - using extension_misc::EXTENSION_ICON_MEDIUM; |
| - |
| - const int kIconOffset = (EXTENSION_ICON_MEDIUM - EXTENSION_ICON_SMALL) / 2; |
| - |
| - // The tab overlay is not vertically symmetric, to position the app in the |
| - // middle of the overlay we need a slight adjustment. |
| - const int kVerticalAdjust = 4; |
| - canvas->DrawImageInt( |
| - *ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed( |
| - IDR_APP_LIST_TAB_OVERLAY), |
| - 0, 0); |
| - canvas->DrawImageInt(icon_, kIconOffset, kIconOffset + kVerticalAdjust); |
| + canvas->DrawImageInt(icon_, 0, 0); |
| + |
| + // Draw the overlay in the bottom left corner of the icon. |
| + const gfx::ImageSkia& overlay = *ui::ResourceBundle::GetSharedInstance(). |
| + GetImageSkiaNamed(IDR_APP_LIST_TAB_OVERLAY); |
| + canvas->DrawImageInt(overlay, 0, icon_.height() - overlay.height()); |
| } |
| gfx::ImageSkia icon_; |
| - DISALLOW_COPY_AND_ASSIGN(TabOverlayImageSource); |
| + DISALLOW_COPY_AND_ASSIGN(ShortcutOverlayImageSource); |
| }; |
| extensions::ExtensionPrefs::LaunchType GetExtensionLaunchType( |
| @@ -280,17 +270,8 @@ void ExtensionAppItem::Move(const ExtensionAppItem* prev, |
| void ExtensionAppItem::UpdateIcon() { |
| if (!GetExtension()) { |
| gfx::ImageSkia icon = installing_icon_; |
| - if (HasOverlay()) { |
| - // The tab overlay requires icons of a certain size. |
| - gfx::Size small_size(extension_misc::EXTENSION_ICON_SMALL, |
| - extension_misc::EXTENSION_ICON_SMALL); |
| - icon = gfx::ImageSkiaOperations::CreateResizedImage( |
| - icon, skia::ImageOperations::RESIZE_GOOD, small_size); |
| - |
| - gfx::Size size(extension_misc::EXTENSION_ICON_MEDIUM, |
| - extension_misc::EXTENSION_ICON_MEDIUM); |
| - icon = gfx::ImageSkia(new TabOverlayImageSource(icon, size), size); |
| - } |
| + if (HasOverlay()) |
| + icon = gfx::ImageSkia(new ShortcutOverlayImageSource(icon), icon.size()); |
| SetIcon(icon, !HasOverlay()); |
| return; |
| } |
| @@ -304,11 +285,8 @@ void ExtensionAppItem::UpdateIcon() { |
| icon = gfx::ImageSkiaOperations::CreateHSLShiftedImage(icon, shift); |
| } |
| - if (HasOverlay()) { |
| - const gfx::Size size(extension_misc::EXTENSION_ICON_MEDIUM, |
| - extension_misc::EXTENSION_ICON_MEDIUM); |
| - icon = gfx::ImageSkia(new TabOverlayImageSource(icon, size), size); |
| - } |
| + if (HasOverlay()) |
| + icon = gfx::ImageSkia(new ShortcutOverlayImageSource(icon), icon.size()); |
| SetIcon(icon, !HasOverlay()); |
| } |
| @@ -322,9 +300,6 @@ const Extension* ExtensionAppItem::GetExtension() const { |
| void ExtensionAppItem::LoadImage(const Extension* extension) { |
| int icon_size = extension_misc::EXTENSION_ICON_MEDIUM; |
|
xiyuan
2013/04/09 18:06:27
nit: get rid of |icon_size| and use extension_misc
koz (OOO until 15th September)
2013/04/09 18:09:32
Done.
|
| - if (HasOverlay()) |
| - icon_size = extension_misc::EXTENSION_ICON_SMALL; |
| - |
| icon_.reset(new extensions::IconImage( |
| profile_, |
| extension, |