mac: Initialize gfx::Image from NSImage

This commit is contained in:
Cheng Zhao 2015-01-02 18:22:03 -08:00
parent 40679ae82c
commit 8faab22f5e
3 changed files with 32 additions and 0 deletions

View file

@ -238,6 +238,7 @@
'atom/common/native_mate_converters/gurl_converter.h',
'atom/common/native_mate_converters/image_converter.cc',
'atom/common/native_mate_converters/image_converter.h',
'atom/common/native_mate_converters/image_converter_mac.mm',
'atom/common/native_mate_converters/string16_converter.h',
'atom/common/native_mate_converters/v8_value_converter.cc',
'atom/common/native_mate_converters/v8_value_converter.h',

View file

@ -106,6 +106,7 @@ bool Converter<gfx::ImageSkia>::FromV8(v8::Isolate* isolate,
return PopulateImageSkiaRepsFromPath(out, path);
}
#if !defined(OS_MACOSX)
bool Converter<gfx::Image>::FromV8(v8::Isolate* isolate,
v8::Handle<v8::Value> val,
gfx::Image* out) {
@ -116,5 +117,6 @@ bool Converter<gfx::Image>::FromV8(v8::Isolate* isolate,
*out = gfx::Image(image);
return true;
}
#endif
} // namespace mate

View file

@ -0,0 +1,29 @@
// Copyright (c) 2015 GitHub, Inc.
// Use of this source code is governed by the MIT license that can be
// found in the LICENSE file.
#include "atom/common/native_mate_converters/image_converter.h"
#import <Cocoa/Cocoa.h>
#include "base/mac/foundation_util.h"
#include "base/mac/scoped_nsobject.h"
#include "base/strings/sys_string_conversions.h"
#include "ui/gfx/image/image.h"
namespace mate {
bool Converter<gfx::Image>::FromV8(v8::Isolate* isolate,
v8::Handle<v8::Value> val,
gfx::Image* out) {
std::string path;
if (!ConvertFromV8(isolate, val, &path))
return false;
base::scoped_nsobject<NSImage> image([[NSImage alloc]
initByReferencingFile:base::SysUTF8ToNSString(path)]);
*out = gfx::Image(image.release());
return true;
}
} // namespace mate