diff options
author | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-21 17:59:05 +0000 |
---|---|---|
committer | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-21 17:59:05 +0000 |
commit | bbfb462b6f1d53e1dec51b125203a87170bbd382 (patch) | |
tree | c25b3517192ebabc93c4c03b32679f178f332f3d | |
parent | dbe60662784dc5b682847fa3293d88949d18ddc4 (diff) | |
download | chromium_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.mm | 3 | ||||
-rw-r--r-- | chrome/browser/ui/cocoa/extensions/extension_uninstall_dialog_cocoa.mm | 3 | ||||
-rw-r--r-- | skia/ext/skia_utils_mac.h | 4 | ||||
-rw-r--r-- | skia/ext/skia_utils_mac.mm | 7 | ||||
-rw-r--r-- | ui/gfx/image/image_skia.h | 2 | ||||
-rw-r--r-- | ui/gfx/image/image_skia_unittest.cc | 2 | ||||
-rw-r--r-- | ui/gfx/image/image_skia_util_mac.h | 8 | ||||
-rw-r--r-- | ui/gfx/image/image_skia_util_mac.mm | 20 |
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 |