mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-02-10 18:05:41 +08:00
For bug 58435
This commit is contained in:
@ -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();
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user