summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkoz@chromium.org <koz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-16 23:47:05 +0000
committerkoz@chromium.org <koz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-16 23:47:05 +0000
commit79fec5fdc9e9ba34b282b45b67b65c87668372ae (patch)
tree06d9ab64e26694a6e0728cd996fc27f1561439ec
parentf2cdd4ae1be5b0633b171ea838daa125c0bd2190 (diff)
downloadchromium_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.grd2
-rw-r--r--chrome/browser/ui/app_list/extension_app_item.cc60
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();