diff --git a/atom.gyp b/atom.gyp index a34a5af042f7..3a08bd070572 100644 --- a/atom.gyp +++ b/atom.gyp @@ -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', diff --git a/atom/common/native_mate_converters/image_converter.cc b/atom/common/native_mate_converters/image_converter.cc index 9fa66af12ae6..314e4fadb4f1 100644 --- a/atom/common/native_mate_converters/image_converter.cc +++ b/atom/common/native_mate_converters/image_converter.cc @@ -106,6 +106,7 @@ bool Converter::FromV8(v8::Isolate* isolate, return PopulateImageSkiaRepsFromPath(out, path); } +#if !defined(OS_MACOSX) bool Converter::FromV8(v8::Isolate* isolate, v8::Handle val, gfx::Image* out) { @@ -116,5 +117,6 @@ bool Converter::FromV8(v8::Isolate* isolate, *out = gfx::Image(image); return true; } +#endif } // namespace mate diff --git a/atom/common/native_mate_converters/image_converter_mac.mm b/atom/common/native_mate_converters/image_converter_mac.mm new file mode 100644 index 000000000000..999bf6008ce0 --- /dev/null +++ b/atom/common/native_mate_converters/image_converter_mac.mm @@ -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 + +#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::FromV8(v8::Isolate* isolate, + v8::Handle val, + gfx::Image* out) { + std::string path; + if (!ConvertFromV8(isolate, val, &path)) + return false; + + base::scoped_nsobject image([[NSImage alloc] + initByReferencingFile:base::SysUTF8ToNSString(path)]); + *out = gfx::Image(image.release()); + return true; +} + +} // namespace mate