本文整理汇总了C++中CJS_Context::GetJSRuntime方法的典型用法代码示例。如果您正苦于以下问题:C++ CJS_Context::GetJSRuntime方法的具体用法?C++ CJS_Context::GetJSRuntime怎么用?C++ CJS_Context::GetJSRuntime使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CJS_Context
的用法示例。
在下文中一共展示了CJS_Context::GetJSRuntime方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: activeDocs
FX_BOOL app::activeDocs(IFXJS_Context* cc,
CJS_PropValue& vp,
CFX_WideString& sError) {
if (!vp.IsGetting())
return FALSE;
CJS_Context* pContext = (CJS_Context*)cc;
CPDFDoc_Environment* pApp = pContext->GetReaderApp();
CJS_Runtime* pRuntime = pContext->GetJSRuntime();
CPDFSDK_Document* pCurDoc = pContext->GetReaderDocument();
CJS_Array aDocs(pRuntime->GetIsolate());
if (CPDFSDK_Document* pDoc = pApp->GetSDKDocument()) {
CJS_Document* pJSDocument = NULL;
if (pDoc == pCurDoc) {
v8::Local<v8::Object> pObj = FXJS_GetThisObj(pRuntime->GetIsolate());
if (FXJS_GetObjDefnID(pObj) ==
FXJS_GetObjDefnID(pRuntime->GetIsolate(), L"Document"))
pJSDocument =
(CJS_Document*)FXJS_GetPrivate(pRuntime->GetIsolate(), pObj);
} else {
v8::Local<v8::Object> pObj = FXJS_NewFxDynamicObj(
pRuntime->GetIsolate(), pContext,
FXJS_GetObjDefnID(pRuntime->GetIsolate(), L"Document"));
pJSDocument =
(CJS_Document*)FXJS_GetPrivate(pRuntime->GetIsolate(), pObj);
ASSERT(pJSDocument != NULL);
}
aDocs.SetElement(0, CJS_Value(pRuntime->GetIsolate(), pJSDocument));
}
if (aDocs.GetLength() > 0)
vp << aDocs;
else
vp.SetNull();
return TRUE;
}
示例2: activeDocs
bool app::activeDocs(IJS_Context* cc,
CJS_PropValue& vp,
CFX_WideString& sError) {
if (!vp.IsGetting())
return false;
CJS_Context* pContext = (CJS_Context*)cc;
CJS_Runtime* pRuntime = pContext->GetJSRuntime();
CJS_Document* pJSDocument = nullptr;
v8::Local<v8::Object> pObj = pRuntime->GetThisObj();
if (CFXJS_Engine::GetObjDefnID(pObj) == CJS_Document::g_nObjDefnID) {
pJSDocument = static_cast<CJS_Document*>(pRuntime->GetObjectPrivate(pObj));
}
CJS_Array aDocs;
aDocs.SetElement(pRuntime, 0, CJS_Value(pRuntime, pJSDocument));
if (aDocs.GetLength(pRuntime) > 0)
vp << aDocs;
else
vp.GetJSValue()->SetNull(pRuntime);
return true;
}
示例3: GetIsolate
static v8::Isolate* GetIsolate(IFXJS_Context* cc) {
CJS_Context* pContext = (CJS_Context*)cc;
CJS_Runtime* pRuntime = pContext->GetJSRuntime();
return pRuntime->GetIsolate();
}
示例4: mailDoc
FX_BOOL Document::mailDoc(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
{
ASSERT(m_pDocument != NULL);
FX_BOOL bUI = TRUE;
CFX_WideString cTo = L"";
CFX_WideString cCc = L"";
CFX_WideString cBcc = L"";
CFX_WideString cSubject = L"";
CFX_WideString cMsg = L"";
if (params.size() >= 1)
bUI = params[0].ToBool();
if (params.size() >= 2)
cTo = params[1].ToCFXWideString();
if (params.size() >= 3)
cCc = params[2].ToCFXWideString();
if (params.size() >= 4)
cBcc = params[3].ToCFXWideString();
if (params.size() >= 5)
cSubject = params[4].ToCFXWideString();
if (params.size() >= 6)
cMsg = params[5].ToCFXWideString();
v8::Isolate* isolate = GetIsolate(cc);
if(params.size() >= 1 && params[0].GetType() == VT_object)
{
JSObject pObj = params[0].ToV8Object();
v8::Handle<v8::Value> pValue = JS_GetObjectElement(isolate,pObj, L"bUI");
bUI = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToInt();
pValue = JS_GetObjectElement(isolate,pObj, L"cTo");
cTo = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString();
pValue = JS_GetObjectElement(isolate,pObj, L"cCc");
cCc = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString();
pValue = JS_GetObjectElement(isolate,pObj, L"cBcc");
cBcc = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString();
pValue = JS_GetObjectElement(isolate,pObj, L"cSubject");
cSubject = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString();
pValue = JS_GetObjectElement(isolate,pObj, L"cMsg");
cMsg = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString();
}
CJS_Context* pContext = (CJS_Context*)cc;
ASSERT(pContext != NULL);
CJS_Runtime* pRuntime = pContext->GetJSRuntime();
ASSERT(pRuntime != NULL);
pRuntime->BeginBlock();
CPDFDoc_Environment* pEnv = pRuntime->GetReaderApp();
pEnv->JS_docmailForm(NULL, 0, bUI, cTo.c_str(), cSubject.c_str(), cCc.c_str(), cBcc.c_str(), cMsg.c_str());
pRuntime->EndBlock();
return TRUE;
}
示例5: submitForm
FX_BOOL Document::submitForm(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
{
ASSERT(m_pDocument != NULL);
CJS_Context* pContext = (CJS_Context*)cc;
int nSize = params.size();
if (nSize < 1) {
sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
return FALSE;
}
CFX_WideString strURL;
FX_BOOL bFDF = TRUE;
FX_BOOL bEmpty = FALSE;
v8::Isolate* isolate = GetIsolate(cc);
CJS_Array aFields(isolate);
CJS_Value v = params[0];
if (v.GetType() == VT_string)
{
strURL = params[0].ToCFXWideString();
if (nSize > 1)
bFDF = params[1].ToBool();
if (nSize > 2)
bEmpty = params[2].ToBool();
if (nSize > 3)
aFields.Attach(params[3].ToV8Array());
}
else if (v.GetType() == VT_object)
{
JSObject pObj = params[0].ToV8Object();
v8::Handle<v8::Value> pValue = JS_GetObjectElement(isolate, pObj, L"cURL");
if (!pValue.IsEmpty())
strURL = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
pValue = JS_GetObjectElement(isolate, pObj, L"bFDF");
bFDF = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToBool();
pValue = JS_GetObjectElement(isolate, pObj, L"bEmpty");
bEmpty = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToBool();
pValue = JS_GetObjectElement(isolate, pObj,L"aFields");
aFields.Attach(CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToV8Array());
}
CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
ASSERT(pInterForm != NULL);
CPDF_InterForm* pPDFInterForm = pInterForm->GetInterForm();
ASSERT(pPDFInterForm != NULL);
FX_BOOL bAll = (aFields.GetLength() == 0);
if (bAll && bEmpty)
{
CJS_Context* pContext = (CJS_Context*)cc;
ASSERT(pContext != NULL);
CJS_Runtime* pRuntime = pContext->GetJSRuntime();
ASSERT(pRuntime != NULL);
if (pPDFInterForm->CheckRequiredFields())
{
pRuntime->BeginBlock();
pInterForm->SubmitForm(strURL, FALSE);
pRuntime->EndBlock();
}
return TRUE;
}
else
{
CFX_PtrArray fieldObjects;
for (int i=0,sz=aFields.GetLength(); i<sz; i++)
{
CJS_Value valName(isolate);
aFields.GetElement(i, valName);
CFX_WideString sName = valName.ToCFXWideString();
CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
ASSERT(pPDFForm != NULL);
for (int j=0, jsz=pPDFForm->CountFields(sName); j<jsz; j++)
{
CPDF_FormField* pField = pPDFForm->GetField(j, sName);
if (!bEmpty && pField->GetValue().IsEmpty())
continue;
fieldObjects.Add(pField);
}
}
CJS_Context* pContext = (CJS_Context*)cc;
ASSERT(pContext != NULL);
CJS_Runtime* pRuntime = pContext->GetJSRuntime();
ASSERT(pRuntime != NULL);
if (pPDFInterForm->CheckRequiredFields(&fieldObjects, TRUE))
{
pRuntime->BeginBlock();
pInterForm->SubmitFields(strURL, fieldObjects, TRUE, !bFDF);
pRuntime->EndBlock();
}
//.........这里部分代码省略.........
示例6: print
FX_BOOL Document::print(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
{
CJS_Context* pContext = (CJS_Context*)cc;
ASSERT(pContext != NULL);
CJS_Runtime* pRuntime = pContext->GetJSRuntime();
ASSERT(pRuntime != NULL);
FX_BOOL bUI = TRUE;
int nStart = 0;
int nEnd = 0;
FX_BOOL bSilent = FALSE;
FX_BOOL bShrinkToFit = FALSE;
FX_BOOL bPrintAsImage = FALSE;
FX_BOOL bReverse = FALSE;
FX_BOOL bAnnotations = FALSE;
int nlength = params.size();
if(nlength ==9)
{
if (params[8].GetType() == VT_fxobject)
{
JSFXObject pObj = params[8].ToV8Object();
{
if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"PrintParamsObj"))
{
if (CJS_Object* pJSObj = params[8].ToCJSObject())
{
if (PrintParamsObj* pprintparamsObj = (PrintParamsObj*)pJSObj->GetEmbedObject())
{
bUI = pprintparamsObj->bUI;
nStart = pprintparamsObj->nStart;
nEnd = pprintparamsObj->nEnd;
bSilent = pprintparamsObj->bSilent;
bShrinkToFit = pprintparamsObj->bShrinkToFit;
bPrintAsImage = pprintparamsObj->bPrintAsImage;
bReverse = pprintparamsObj->bReverse;
bAnnotations = pprintparamsObj->bAnnotations;
}
}
}
}
}
}
else
{
if(nlength >= 1)
bUI = params[0].ToBool();
if(nlength >= 2)
nStart = params[1].ToInt();
if(nlength >= 3)
nEnd = params[2].ToInt();
if(nlength >= 4)
bSilent = params[3].ToBool();
if(nlength >= 5)
bShrinkToFit = params[4].ToBool();
if(nlength >= 6)
bPrintAsImage = params[5].ToBool();
if(nlength >= 7)
bReverse = params[6].ToBool();
if(nlength >= 8)
bAnnotations = params[7].ToBool();
}
ASSERT(m_pDocument != NULL);
if (CPDFDoc_Environment* pEnv = m_pDocument->GetEnv())
{
pEnv->JS_docprint(bUI, nStart, nEnd, bSilent, bShrinkToFit, bPrintAsImage, bReverse, bAnnotations);
return TRUE;
}
return FALSE;
}