For bug 58435

This commit is contained in:
Oleg Korshul
2022-09-16 21:35:03 +03:00
parent c257b901ac
commit cfce809885
4 changed files with 24 additions and 0 deletions

View File

@ -214,3 +214,21 @@ JSSmart<CJSValue> CNativeControlEmbed::GetImagesPath()
{
return CJSContext::createString(m_pInternal->m_strImagesDirectory);
}
#include "./../../graphics/MetafileToRenderer.h"
#include "./../../raster/BgraFrame.h"
JSSmart<CJSValue> CNativeControlEmbed::GetImageOriginalSize(JSSmart<CJSValue> sUrl)
{
IMetafileToRenderter oRenderer(NULL);
oRenderer.SetMediaDirectory(NSDirectory::GetFolderPath(m_pInternal->m_strImagesDirectory));
std::wstring sPath = oRenderer.GetImagePath(sUrl->toStringW());
CBgraFrame oFrame;
if (oFrame.OpenFile(sPath))
{
JSSmart<CJSObject> ret = CJSContext::createObject();
ret->set("W", oFrame.get_Width());
ret->set("H", oFrame.get_Height());
return ret->toValue();
}
return CJSContext::createUndefined();
}

View File

@ -43,6 +43,7 @@ public:
JSSmart<CJSValue> zipCloseFile();
JSSmart<CJSValue> GetImageUrl(JSSmart<CJSValue> sUrl);
JSSmart<CJSValue> GetImagesPath();
JSSmart<CJSValue> GetImageOriginalSize(JSSmart<CJSValue> sUrl);
static void CreateObjectInContext(const std::string& name, JSSmart<CJSContext> context);
static void CreateObjectBuilderInContext(const std::string& name, JSSmart<CJSContext> context);

View File

@ -27,6 +27,7 @@
-(JSValue*) ZipClose;
-(JSValue*) GetImageUrl : (JSValue*)url;
-(JSValue*) GetImagesPath;
-(JSValue*) GetImageOriginalSize : (JSValue*)url;
@end
@ -66,6 +67,7 @@ FUNCTION_WRAPPER_JS_1(ZipFileAsBinary, zipGetFileAsBinary)
FUNCTION_WRAPPER_JS(ZipClose, zipCloseFile);
FUNCTION_WRAPPER_JS_1(GetImageUrl, GetImageUrl);
FUNCTION_WRAPPER_JS(GetImagesPath, GetImagesPath)
FUNCTION_WRAPPER_JS_1(GetImageOriginalSize, GetImageOriginalSize);
@end

View File

@ -29,6 +29,7 @@ namespace NSNativeControl
FUNCTION_WRAPPER_V8_1(_zipGetFileAsBinary, zipGetFileAsBinary)
FUNCTION_WRAPPER_V8(_zipCloseFile, zipCloseFile)
FUNCTION_WRAPPER_V8_1(_GetImageUrl, GetImageUrl)
FUNCTION_WRAPPER_V8_1(_GetImageOriginalSize, GetImageOriginalSize)
FUNCTION_WRAPPER_V8(_GetImagesPath, GetImagesPath)
v8::Handle<v8::ObjectTemplate> CreateNativeControlTemplate(v8::Isolate* isolate)
@ -63,6 +64,7 @@ namespace NSNativeControl
NSV8Objects::Template_Set(result, "ZipClose", _zipCloseFile);
NSV8Objects::Template_Set(result, "getImageUrl", _GetImageUrl);
NSV8Objects::Template_Set(result, "getImagesDirectory", _GetImagesPath);
NSV8Objects::Template_Set(result, "GetImageOriginalSize", _GetImageOriginalSize);
return handle_scope.Escape(result);
}
@ -99,6 +101,7 @@ namespace NSNativeControl
NSV8Objects::Template_Set(result, "ZipClose", _zipCloseFile);
NSV8Objects::Template_Set(result, "getImageUrl", _GetImageUrl);
NSV8Objects::Template_Set(result, "getImagesDirectory", _GetImagesPath);
NSV8Objects::Template_Set(result, "GetImageOriginalSize", _GetImageOriginalSize);
return handle_scope.Escape(result);
}