diff options
author | koz@chromium.org <koz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-16 23:47:05 +0000 |
---|---|---|
committer | koz@chromium.org <koz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-16 23:47:05 +0000 |
commit | 79fec5fdc9e9ba34b282b45b67b65c87668372ae (patch) | |
tree | 06d9ab64e26694a6e0728cd996fc27f1561439ec | |
parent | f2cdd4ae1be5b0633b171ea838daa125c0bd2190 (diff) | |
download | chromium_src-79fec5fdc9e9ba34b282b45b67b65c87668372ae.zip chromium_src-79fec5fdc9e9ba34b282b45b67b65c87668372ae.tar.gz chromium_src-79fec5fdc9e9ba34b282b45b67b65c87668372ae.tar.bz2 |
Add new overlay for v1 apps in the launcher.
BUG=225975
TBR=oshima@chromium.org
Review URL: https://codereview.chromium.org/13813004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194487 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/app/theme/theme_resources.grd | 2 | ||||
-rw-r--r-- | chrome/browser/ui/app_list/extension_app_item.cc | 60 |
2 files changed, 18 insertions, 44 deletions
diff --git a/chrome/app/theme/theme_resources.grd b/chrome/app/theme/theme_resources.grd index ad0c91c..a0eacb9 100644 --- a/chrome/app/theme/theme_resources.grd +++ b/chrome/app/theme/theme_resources.grd @@ -44,7 +44,7 @@ <structure type="chrome_scaled_image" name="IDR_APP_LIST" file="win/app_list.png" /> </if> <if expr="pp_ifdef('enable_app_list') and not pp_ifdef('chromeos')"> - <structure type="chrome_scaled_image" name="IDR_APP_LIST_TAB_OVERLAY" file="app_list_tab_overlay.png" /> + <structure type="chrome_scaled_image" name="IDR_APP_LIST_TAB_OVERLAY" file="win/app_list_v1_overlay.png" /> </if> <structure type="chrome_scaled_image" name="IDR_ASK_MEDIA" file="ask_media.png" /> <if expr="pp_ifdef('toolkit_views')"> diff --git a/chrome/browser/ui/app_list/extension_app_item.cc b/chrome/browser/ui/app_list/extension_app_item.cc index df8b78b..7b4501d 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()); } @@ -321,15 +299,11 @@ const Extension* ExtensionAppItem::GetExtension() const { } void ExtensionAppItem::LoadImage(const Extension* extension) { - int icon_size = extension_misc::EXTENSION_ICON_MEDIUM; - if (HasOverlay()) - icon_size = extension_misc::EXTENSION_ICON_SMALL; - icon_.reset(new extensions::IconImage( profile_, extension, extensions::IconsInfo::GetIcons(extension), - icon_size, + extension_misc::EXTENSION_ICON_MEDIUM, extensions::IconsInfo::GetDefaultAppIcon(), this)); UpdateIcon(); |