summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-21 17:59:05 +0000
committersadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-21 17:59:05 +0000
commitbbfb462b6f1d53e1dec51b125203a87170bbd382 (patch)
treec25b3517192ebabc93c4c03b32679f178f332f3d
parentdbe60662784dc5b682847fa3293d88949d18ddc4 (diff)
downloadchromium_src-bbfb462b6f1d53e1dec51b125203a87170bbd382.zip
chromium_src-bbfb462b6f1d53e1dec51b125203a87170bbd382.tar.gz
chromium_src-bbfb462b6f1d53e1dec51b125203a87170bbd382.tar.bz2
mac: Remove implicit conversion from ImageSkia to SkBitmap.
BUG=141146, 132327 Review URL: https://chromiumcodereview.appspot.com/10834382 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@152592 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.mm3
-rw-r--r--chrome/browser/ui/cocoa/extensions/extension_uninstall_dialog_cocoa.mm3
-rw-r--r--skia/ext/skia_utils_mac.h4
-rw-r--r--skia/ext/skia_utils_mac.mm7
-rw-r--r--ui/gfx/image/image_skia.h2
-rw-r--r--ui/gfx/image/image_skia_unittest.cc2
-rw-r--r--ui/gfx/image/image_skia_util_mac.h8
-rw-r--r--ui/gfx/image/image_skia_util_mac.mm20
8 files changed, 43 insertions, 6 deletions
diff --git a/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.mm b/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.mm
index b3509b1..4d552cf 100644
--- a/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.mm
+++ b/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.mm
@@ -21,6 +21,7 @@
#import "third_party/GTM/AppKit/GTMUILocalizerAndLayoutTweaker.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/l10n/l10n_util_mac.h"
+#include "ui/gfx/image/image_skia_util_mac.h"
using content::OpenURLParams;
using content::Referrer;
@@ -322,7 +323,7 @@ void DrawBulletInFrame(NSRect frame) {
}
- (void)appendRatingStar:(const gfx::ImageSkia*)skiaImage {
- NSImage* image = gfx::SkBitmapToNSImageWithColorSpace(
+ NSImage* image = gfx::NSImageFromImageSkiaWithColorSpace(
*skiaImage, base::mac::GetSystemColorSpace());
NSRect frame = NSMakeRect(0, 0, skiaImage->width(), skiaImage->height());
scoped_nsobject<NSImageView> view([[NSImageView alloc] initWithFrame:frame]);
diff --git a/chrome/browser/ui/cocoa/extensions/extension_uninstall_dialog_cocoa.mm b/chrome/browser/ui/cocoa/extensions/extension_uninstall_dialog_cocoa.mm
index 869f220..dc70915 100644
--- a/chrome/browser/ui/cocoa/extensions/extension_uninstall_dialog_cocoa.mm
+++ b/chrome/browser/ui/cocoa/extensions/extension_uninstall_dialog_cocoa.mm
@@ -16,6 +16,7 @@
#include "skia/ext/skia_utils_mac.h"
#include "ui/base/l10n/l10n_util_mac.h"
#include "ui/base/resource/resource_bundle.h"
+#include "ui/gfx/image/image_skia_util_mac.h"
namespace {
@@ -55,7 +56,7 @@ void ExtensionUninstallDialogCocoa::Show() {
IDS_EXTENSION_UNINSTALL_PROMPT_HEADING,
UTF8ToUTF16(extension_->name()))];
[alert setAlertStyle:NSWarningAlertStyle];
- [alert setIcon:gfx::SkBitmapToNSImage(icon_)];
+ [alert setIcon:gfx::NSImageFromImageSkia(icon_)];
if ([alert runModal] == NSAlertFirstButtonReturn)
delegate_->ExtensionUninstallAccepted();
diff --git a/skia/ext/skia_utils_mac.h b/skia/ext/skia_utils_mac.h
index 76820e2..ad5fc93 100644
--- a/skia/ext/skia_utils_mac.h
+++ b/skia/ext/skia_utils_mac.h
@@ -86,6 +86,10 @@ SK_API SkBitmap NSImageRepToSkBitmap(
// color space.
SK_API NSBitmapImageRep* SkBitmapToNSBitmapImageRep(const SkBitmap& image);
+SK_API NSBitmapImageRep* SkBitmapToNSBitmapImageRepWithColorSpace(
+ const SkBitmap& skiaBitmap,
+ CGColorSpaceRef colorSpace);
+
// Given an SkBitmap and a color space, return an autoreleased NSImage.
SK_API NSImage* SkBitmapToNSImageWithColorSpace(const SkBitmap& icon,
CGColorSpaceRef colorSpace);
diff --git a/skia/ext/skia_utils_mac.mm b/skia/ext/skia_utils_mac.mm
index ed41b60..e95635b 100644
--- a/skia/ext/skia_utils_mac.mm
+++ b/skia/ext/skia_utils_mac.mm
@@ -214,10 +214,15 @@ SkBitmap NSImageRepToSkBitmap(
NSBitmapImageRep* SkBitmapToNSBitmapImageRep(const SkBitmap& skiaBitmap) {
base::mac::ScopedCFTypeRef<CGColorSpaceRef> color_space(
CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB));
+ return SkBitmapToNSBitmapImageRepWithColorSpace(skiaBitmap, color_space);
+}
+NSBitmapImageRep* SkBitmapToNSBitmapImageRepWithColorSpace(
+ const SkBitmap& skiaBitmap,
+ CGColorSpaceRef colorSpace) {
// First convert SkBitmap to CGImageRef.
base::mac::ScopedCFTypeRef<CGImageRef> cgimage(
- SkCreateCGImageRefWithColorspace(skiaBitmap, color_space));
+ SkCreateCGImageRefWithColorspace(skiaBitmap, colorSpace));
// Now convert to NSBitmapImageRep.
scoped_nsobject<NSBitmapImageRep> bitmap(
diff --git a/ui/gfx/image/image_skia.h b/ui/gfx/image/image_skia.h
index 7c729cb..259a71e 100644
--- a/ui/gfx/image/image_skia.h
+++ b/ui/gfx/image/image_skia.h
@@ -60,7 +60,7 @@ class UI_EXPORT ImageSkia {
// done.
ImageSkia& operator=(const SkBitmap& other);
-#if defined(OS_MACOSX) || defined(OS_WIN)
+#if defined(OS_WIN)
// Converts to gfx::ImageSkiaRep and SkBitmap.
// TODO(pkotwicz): This is temporary till conversion to gfx::ImageSkia is
// done.
diff --git a/ui/gfx/image/image_skia_unittest.cc b/ui/gfx/image/image_skia_unittest.cc
index 20d9d45..9967a2f0 100644
--- a/ui/gfx/image/image_skia_unittest.cc
+++ b/ui/gfx/image/image_skia_unittest.cc
@@ -188,7 +188,7 @@ TEST(ImageSkiaTest, GetBitmapFromEmpty) {
EXPECT_TRUE(bitmap->empty());
}
-#if defined(OS_MACOSX) || defined(OS_WIN)
+#if defined(OS_WIN)
TEST(ImageSkiaTest, OperatorBitmapFromSource) {
ImageSkia image_skia(new DynamicSource(Size(100, 200)), Size(100, 200));
// ImageSkia should use the source to create the bitmap.
diff --git a/ui/gfx/image/image_skia_util_mac.h b/ui/gfx/image/image_skia_util_mac.h
index 5ef61bc..1a4427d 100644
--- a/ui/gfx/image/image_skia_util_mac.h
+++ b/ui/gfx/image/image_skia_util_mac.h
@@ -5,10 +5,11 @@
#ifndef UI_GFX_IMAGE_IMAGE_SKIA_UTIL_MAC_H_
#define UI_GFX_IMAGE_IMAGE_SKIA_UTIL_MAC_H_
+#include <ApplicationServices/ApplicationServices.h>
+
#include "ui/base/ui_export.h"
#ifdef __LP64__
-#include <ApplicationServices/ApplicationServices.h>
typedef CGSize NSSize;
#else
typedef struct _NSSize NSSize;
@@ -37,6 +38,11 @@ UI_EXPORT gfx::ImageSkia ApplicationIconAtSize(int size);
// Converts to NSImage from ImageSkia.
UI_EXPORT NSImage* NSImageFromImageSkia(const gfx::ImageSkia& image_skia);
+// Converts to NSImage from given ImageSkia and a color space.
+UI_EXPORT NSImage* NSImageFromImageSkiaWithColorSpace(
+ const gfx::ImageSkia& image_skia,
+ CGColorSpaceRef color_space);
+
} // namespace gfx
#endif // UI_GFX_IMAGE_IMAGE_SKIA_UTIL_MAC_H_
diff --git a/ui/gfx/image/image_skia_util_mac.mm b/ui/gfx/image/image_skia_util_mac.mm
index 7fc9053..3b36325 100644
--- a/ui/gfx/image/image_skia_util_mac.mm
+++ b/ui/gfx/image/image_skia_util_mac.mm
@@ -102,4 +102,24 @@ NSImage* NSImageFromImageSkia(const gfx::ImageSkia& image_skia) {
return [image.release() autorelease];
}
+NSImage* NSImageFromImageSkiaWithColorSpace(const gfx::ImageSkia& image_skia,
+ CGColorSpaceRef color_space) {
+ if (image_skia.empty())
+ return nil;
+
+ scoped_nsobject<NSImage> image([[NSImage alloc] init]);
+
+ const std::vector<gfx::ImageSkiaRep>& image_reps =
+ image_skia.GetRepresentations();
+ for (std::vector<gfx::ImageSkiaRep>::const_iterator it = image_reps.begin();
+ it != image_reps.end(); ++it) {
+ [image addRepresentation:
+ gfx::SkBitmapToNSBitmapImageRepWithColorSpace(it->sk_bitmap(),
+ color_space)];
+ }
+
+ [image setSize:NSMakeSize(image_skia.width(), image_skia.height())];
+ return [image.release() autorelease];
+}
+
} // namespace gfx