diff options
Diffstat (limited to 'fpdfsdk/src')
-rw-r--r-- | fpdfsdk/src/javascript/Document.cpp | 139 | ||||
-rw-r--r-- | fpdfsdk/src/javascript/Field.cpp | 71 | ||||
-rw-r--r-- | fpdfsdk/src/javascript/JS_Value.cpp | 57 | ||||
-rw-r--r-- | fpdfsdk/src/javascript/PublicMethods.cpp | 148 | ||||
-rw-r--r-- | fpdfsdk/src/javascript/app.cpp | 159 | ||||
-rw-r--r-- | fpdfsdk/src/javascript/color.cpp | 16 | ||||
-rw-r--r-- | fpdfsdk/src/javascript/event.cpp | 2 | ||||
-rw-r--r-- | fpdfsdk/src/javascript/global.cpp | 23 | ||||
-rw-r--r-- | fpdfsdk/src/javascript/util.cpp | 26 |
9 files changed, 292 insertions, 349 deletions
diff --git a/fpdfsdk/src/javascript/Document.cpp b/fpdfsdk/src/javascript/Document.cpp index f823d8084f..00721bda82 100644 --- a/fpdfsdk/src/javascript/Document.cpp +++ b/fpdfsdk/src/javascript/Document.cpp @@ -326,7 +326,7 @@ FX_BOOL Document::getField(IFXJS_Context* cc, const CJS_Parameters& params, CJS_ if (params.size() < 1) return FALSE; - CFX_WideString wideName = params[0].operator CFX_WideString(); + CFX_WideString wideName = params[0].ToCFXWideString(); CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm(); ASSERT(pInterForm != NULL); @@ -364,7 +364,7 @@ FX_BOOL Document::getNthFieldName(IFXJS_Context* cc, const CJS_Parameters& param { ASSERT(m_pDocument != NULL); - int nIndex = params.size() > 0 ? (int)params[0] : -1; + int nIndex = params.size() > 0 ? params[0].ToInt() : -1; if (nIndex == -1) return FALSE; CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm(); @@ -412,12 +412,12 @@ FX_BOOL Document::mailForm(IFXJS_Context* cc, const CJS_Parameters& params, CJS_ int iLength = params.size(); - FX_BOOL bUI = iLength > 0 ? (FX_BOOL)params[0] : TRUE; - CFX_WideString cTo = iLength > 1 ? (FX_LPCWSTR)params[1].operator CFX_WideString() : L""; - CFX_WideString cCc = iLength > 2 ? (FX_LPCWSTR)params[2].operator CFX_WideString() : L""; - CFX_WideString cBcc = iLength > 3 ? (FX_LPCWSTR)params[3].operator CFX_WideString() : L""; - CFX_WideString cSubject = iLength > 4 ? (FX_LPCWSTR)params[4].operator CFX_WideString() : L""; - CFX_WideString cMsg = iLength > 5 ? (FX_LPCWSTR)params[5].operator CFX_WideString() : L""; + FX_BOOL bUI = iLength > 0 ? params[0].ToBool() : TRUE; + CFX_WideString cTo = iLength > 1 ? params[1].ToCFXWideString() : L""; + CFX_WideString cCc = iLength > 2 ? params[2].ToCFXWideString() : L""; + CFX_WideString cBcc = iLength > 3 ? params[3].ToCFXWideString() : L""; + CFX_WideString cSubject = iLength > 4 ? params[4].ToCFXWideString() : L""; + CFX_WideString cMsg = iLength > 5 ? params[5].ToCFXWideString() : L""; CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterForm(); ASSERT(pInterForm != NULL); @@ -460,11 +460,11 @@ FX_BOOL Document::print(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Val { if (params[8].GetType() == VT_fxobject) { - JSFXObject pObj = (JSFXObject)params[8]; + JSFXObject pObj = params[8].ToV8Object(); { if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"PrintParamsObj")) { - if (CJS_Object* pJSObj = (CJS_Object*)params[8]) + if (CJS_Object* pJSObj = params[8].ToCJSObject()) { if (PrintParamsObj* pprintparamsObj = (PrintParamsObj*)pJSObj->GetEmbedObject()) { @@ -485,21 +485,21 @@ FX_BOOL Document::print(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Val else { if(nlength >= 1) - bUI = params[0]; + bUI = params[0].ToBool(); if(nlength >= 2) - nStart = (int)params[1]; + nStart = params[1].ToInt(); if(nlength >= 3) - nEnd = (int)params[2]; + nEnd = params[2].ToInt(); if(nlength >= 4) - bSilent = params[3]; + bSilent = params[3].ToBool(); if(nlength >= 5) - bShrinkToFit = params[4]; + bShrinkToFit = params[4].ToBool(); if(nlength >= 6) - bPrintAsImage = params[5]; + bPrintAsImage = params[5].ToBool(); if(nlength >= 7) - bReverse = params[6]; + bReverse = params[6].ToBool(); if(nlength >= 8) - bAnnotations = params[7]; + bAnnotations = params[7].ToBool(); } ASSERT(m_pDocument != NULL); @@ -526,7 +526,7 @@ FX_BOOL Document::removeField(IFXJS_Context* cc, const CJS_Parameters& params, C if (params.size() < 1) return TRUE; - CFX_WideString sFieldName = params[0].operator CFX_WideString(); + CFX_WideString sFieldName = params[0].ToCFXWideString(); CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterForm(); ASSERT(pInterForm != NULL); @@ -592,7 +592,7 @@ FX_BOOL Document::resetForm(IFXJS_Context* cc, const CJS_Parameters& params, CJS switch (params[0].GetType()) { default: - aName.Attach(params[0]); + aName.Attach(params[0].ToV8Array()); break; case VT_string: aName.SetElement(0,params[0]); @@ -605,7 +605,7 @@ FX_BOOL Document::resetForm(IFXJS_Context* cc, const CJS_Parameters& params, CJS { CJS_Value valElement(isolate); aName.GetElement(i,valElement); - CFX_WideString swVal = valElement.operator CFX_WideString(); + CFX_WideString swVal = valElement.ToCFXWideString(); for (int j=0,jsz=pPDFForm->CountFields(swVal); j<jsz; j++) { @@ -656,26 +656,26 @@ FX_BOOL Document::submitForm(IFXJS_Context* cc, const CJS_Parameters& params, CJ CJS_Value v = params[0]; if (v.GetType() == VT_string) { - strURL = params[0].operator CFX_WideString(); + strURL = params[0].ToCFXWideString(); if (nSize > 1) - bFDF = params[1]; + bFDF = params[1].ToBool(); if (nSize > 2) - bEmpty = params[2]; + bEmpty = params[2].ToBool(); if (nSize > 3) - aFields.Attach(params[3]); + aFields.Attach(params[3].ToV8Array()); } else if (v.GetType() == VT_object) { - JSObject pObj = (JSObject)params[0]; - v8::Handle<v8::Value> pValue = JS_GetObjectElement(isolate,pObj, L"cURL"); + 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)); - pValue = JS_GetObjectElement(isolate,pObj, L"bFDF"); - bFDF = CJS_Value(isolate,pValue, GET_VALUE_TYPE(pValue)); - pValue = JS_GetObjectElement(isolate,pObj, L"bEmpty"); - bEmpty = CJS_Value(isolate,pValue, GET_VALUE_TYPE(pValue)); - pValue = JS_GetObjectElement(isolate,pObj,L"aFields"); - aFields.Attach(CJS_Value(isolate,pValue, GET_VALUE_TYPE(pValue))); + 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(); @@ -710,7 +710,7 @@ FX_BOOL Document::submitForm(IFXJS_Context* cc, const CJS_Parameters& params, CJ { CJS_Value valName(isolate); aFields.GetElement(i, valName); - CFX_WideString sName = valName.operator CFX_WideString(); + CFX_WideString sName = valName.ToCFXWideString(); CPDF_InterForm* pPDFForm = pInterForm->GetInterForm(); ASSERT(pPDFForm != NULL); @@ -781,37 +781,42 @@ FX_BOOL Document::mailDoc(IFXJS_Context* cc, const CJS_Parameters& params, CJS_V CFX_WideString cSubject = L""; CFX_WideString cMsg = L""; - - bUI = params.size()>=1?static_cast<FX_BOOL>(params[0]):TRUE; - cTo = params.size()>=2?(const wchar_t*)params[1].operator CFX_WideString():L""; - cCc = params.size()>=3?(const wchar_t*)params[2].operator CFX_WideString():L""; - cBcc = params.size()>=4?(const wchar_t*)params[3].operator CFX_WideString():L""; - cSubject = params.size()>=5?(const wchar_t*)params[4].operator CFX_WideString():L""; - cMsg = params.size()>=6?(const wchar_t*)params[5].operator CFX_WideString():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) + if(params.size() >= 1 && params[0].GetType() == VT_object) { - JSObject pObj = (JSObject )params[0]; + JSObject pObj = params[0].ToV8Object(); v8::Handle<v8::Value> pValue = JS_GetObjectElement(isolate,pObj, L"bUI"); - bUI = (int)CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)); + 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)).operator CFX_WideString(); + 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)).operator CFX_WideString(); + 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)).operator CFX_WideString(); + 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)).operator CFX_WideString(); + 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)).operator CFX_WideString(); + cMsg = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString(); } @@ -1459,12 +1464,12 @@ FX_BOOL Document::addIcon(IFXJS_Context* cc, const CJS_Parameters& params, CJS_V CJS_Runtime* pRuntime = pContext->GetJSRuntime(); ASSERT(pRuntime != NULL); - CFX_WideString swIconName = params[0].operator CFX_WideString(); + CFX_WideString swIconName = params[0].ToCFXWideString(); - JSFXObject pJSIcon = (JSFXObject)params[1]; + JSFXObject pJSIcon = params[1].ToV8Object(); if (JS_GetObjDefnID(pJSIcon) != JS_GetObjDefnID(*pRuntime, L"Icon")) return FALSE; - CJS_EmbedObj* pEmbedObj = ((CJS_Object*)params[1])->GetEmbedObject(); + CJS_EmbedObj* pEmbedObj = params[1].ToCJSObject()->GetEmbedObject(); if (!pEmbedObj)return FALSE; Icon* pIcon = (Icon*)pEmbedObj; @@ -1527,7 +1532,7 @@ FX_BOOL Document::getIcon(IFXJS_Context* cc, const CJS_Parameters& params, CJS_V if (params.size() != 1)return FALSE; if(!m_pIconTree) return FALSE; - CFX_WideString swIconName = params[0].operator CFX_WideString(); + CFX_WideString swIconName = params[0].ToCFXWideString(); int iIconCounts = m_pIconTree->GetLength(); CJS_Context* pContext = (CJS_Context *)cc; @@ -1563,7 +1568,7 @@ FX_BOOL Document::removeIcon(IFXJS_Context* cc, const CJS_Parameters& params, CJ if (params.size() != 1)return FALSE; if(!m_pIconTree) return FALSE; - CFX_WideString swIconName = params[0].operator CFX_WideString(); + CFX_WideString swIconName = params[0].ToCFXWideString(); return TRUE; } @@ -1603,9 +1608,9 @@ FX_BOOL Document::getPageNthWord(IFXJS_Context* cc, const CJS_Parameters& params if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) return FALSE; - int nPageNo = params.GetSize() > 0 ? (int)params[0] : 0; - int nWordNo = params.GetSize() > 1 ? (int)params[1] : 0; - bool bStrip = params.GetSize() > 2 ? (bool)params[2] : true; + int nPageNo = params.GetSize() > 0 ? params[0].ToInt() : 0; + int nWordNo = params.GetSize() > 1 ? params[1].ToInt() : 0; + bool bStrip = params.GetSize() > 2 ? params[2].ToBool() : true; CPDF_Document* pDocument = m_pDocument->GetDocument(); if (!pDocument) return FALSE; @@ -1675,7 +1680,7 @@ FX_BOOL Document::getPageNumWords(IFXJS_Context* cc, const CJS_Parameters& param if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) return FALSE; - int nPageNo = params.GetSize() > 0 ? (int)params[0] : 0; + int nPageNo = params.GetSize() > 0 ? params[0].ToInt() : 0; CPDF_Document* pDocument = m_pDocument->GetDocument(); ASSERT(pDocument != NULL); @@ -1847,22 +1852,22 @@ FX_BOOL Document::deletePages(IFXJS_Context* cc, const CJS_Parameters& params, C { if (params[0].GetType() == VT_object) { - JSObject pObj = (JSObject )params[0]; - v8::Handle<v8::Value> pValue = JS_GetObjectElement(isolate,pObj, L"nStart"); - nStart = (int)CJS_Value(m_isolate,pValue,GET_VALUE_TYPE(pValue)); + JSObject pObj = params[0].ToV8Object(); + v8::Handle<v8::Value> pValue = JS_GetObjectElement(isolate, pObj, L"nStart"); + nStart = CJS_Value(m_isolate, pValue, GET_VALUE_TYPE(pValue)).ToInt(); - pValue = JS_GetObjectElement(isolate,pObj, L"nEnd"); - nEnd = (int)CJS_Value(m_isolate,pValue,GET_VALUE_TYPE(pValue)); + pValue = JS_GetObjectElement(isolate, pObj, L"nEnd"); + nEnd = CJS_Value(m_isolate, pValue, GET_VALUE_TYPE(pValue)).ToInt(); } else { - nStart = (int)params[0]; + nStart = params[0].ToInt(); } } else { - nStart = (int)params[0]; - nEnd = (int)params[1]; + nStart = params[0].ToInt(); + nEnd = params[1].ToInt(); } int nTotal = m_pDocument->GetPageCount(); diff --git a/fpdfsdk/src/javascript/Field.cpp b/fpdfsdk/src/javascript/Field.cpp index 85b7d12c3f..36bd1caf42 100644 --- a/fpdfsdk/src/javascript/Field.cpp +++ b/fpdfsdk/src/javascript/Field.cpp @@ -1072,7 +1072,7 @@ FX_BOOL Field::currentValueIndices(IFXJS_Context* cc, CJS_PropValue& vp, CFX_Wid for (int i=0,sz=SelArray.GetLength(); i<sz; i++) { SelArray.GetElement(i,SelValue); - iSelecting = (FX_INT32)SelValue; + iSelecting = SelValue.ToInt(); array.Add(iSelecting); } } @@ -2375,10 +2375,10 @@ FX_BOOL Field::rect(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError rcArray.GetElement(3, Lower_Righty); FX_FLOAT pArray[4] = {0.0f,0.0f,0.0f,0.0f}; - pArray[0] = (FX_FLOAT)(FX_INT32)Upper_Leftx; - pArray[1] = (FX_FLOAT)(FX_INT32)Lower_Righty; - pArray[2] = (FX_FLOAT)(FX_INT32)Lower_Rightx; - pArray[3] = (FX_FLOAT)(FX_INT32)Upper_Lefty; + pArray[0] = (FX_FLOAT)Upper_Leftx.ToInt(); + pArray[1] = (FX_FLOAT)Lower_Righty.ToInt(); + pArray[2] = (FX_FLOAT)Lower_Rightx.ToInt(); + pArray[3] = (FX_FLOAT)Upper_Lefty.ToInt(); CPDF_Rect crRect(pArray); @@ -3085,7 +3085,7 @@ FX_BOOL Field::value(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErro { CJS_Value ElementValue(m_isolate); ValueArray.GetElement(i, ElementValue); - strArray.Add(ElementValue.operator CFX_WideString()); + strArray.Add(ElementValue.ToCFXWideString()); } } else @@ -3149,7 +3149,7 @@ FX_BOOL Field::value(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErro { iIndex = pFormField->GetSelectedIndex(i); ElementValue = pFormField->GetOptionValue(iIndex); - if (FXSYS_wcslen((FX_LPCWSTR)ElementValue.operator CFX_WideString()) == 0) + if (FXSYS_wcslen(ElementValue.ToCFXWideString().c_str()) == 0) ElementValue = pFormField->GetOptionLabel(iIndex); ValueArray.SetElement(i, ElementValue); } @@ -3374,8 +3374,8 @@ FX_BOOL Field::buttonGetCaption(IFXJS_Context* cc, const CJS_Parameters& params, int nface = 0; int iSize = params.size(); - if ( iSize >= 1) - nface = (FX_INT32) params[0]; + if (iSize >= 1) + nface = params[0].ToInt(); CFX_PtrArray FieldArray; GetFormFields(m_FieldName,FieldArray); @@ -3410,8 +3410,8 @@ FX_BOOL Field::buttonGetIcon(IFXJS_Context* cc, const CJS_Parameters& params, CJ int nface = 0; int iSize = params.size(); - if ( iSize >= 1) - nface = (FX_INT32) params[0]; + if (iSize >= 1) + nface = params[0].ToInt(); CFX_PtrArray FieldArray; GetFormFields(m_FieldName,FieldArray); @@ -3519,15 +3519,14 @@ FX_BOOL Field::checkThisBox(IFXJS_Context* cc, const CJS_Parameters& params, CJS if (!m_bCanSet) return FALSE; int iSize = params.size(); - int nWidget = -1; - if ( iSize >= 1) - nWidget= (FX_INT32) params[0]; - else + if (iSize < 1) return FALSE; - FX_BOOL bCheckit = TRUE; - if ( iSize >= 2) - bCheckit = params[1]; + int nWidget = params[0].ToInt(); + + FX_BOOL bCheckit = TRUE; + if (iSize >= 2) + bCheckit = params[1].ToBool(); CFX_PtrArray FieldArray; GetFormFields(m_FieldName,FieldArray); @@ -3535,9 +3534,9 @@ FX_BOOL Field::checkThisBox(IFXJS_Context* cc, const CJS_Parameters& params, CJS CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0); ASSERT(pFormField != NULL); - + if (pFormField->GetFieldType() != FIELDTYPE_CHECKBOX && pFormField->GetFieldType() != FIELDTYPE_RADIOBUTTON) - return FALSE; + return FALSE; if(nWidget <0 || nWidget >= pFormField->CountControls()) return FALSE; if (pFormField->GetFieldType() == FIELDTYPE_RADIOBUTTON) @@ -3546,7 +3545,6 @@ FX_BOOL Field::checkThisBox(IFXJS_Context* cc, const CJS_Parameters& params, CJS pFormField->CheckControl(nWidget, bCheckit, TRUE); UpdateFormField(m_pDocument, pFormField, TRUE, TRUE, TRUE); - return TRUE; } @@ -3562,14 +3560,10 @@ FX_BOOL Field::defaultIsChecked(IFXJS_Context* cc, const CJS_Parameters& params, if (!m_bCanSet) return FALSE; int iSize = params.size(); - int nWidget = -1; - if ( iSize >= 1) - nWidget= (FX_INT32) params[0]; - else + if (iSize < 1) return FALSE; - //FX_BOOL bIsDefaultChecked = TRUE; - //if ( iSize >= 2) - // bIsDefaultChecked = params[1]; + + int nWidget = params[0].ToInt(); CFX_PtrArray FieldArray; GetFormFields(m_FieldName,FieldArray); @@ -3665,16 +3659,15 @@ FX_BOOL Field::getArray(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Val FX_BOOL Field::getItemAt(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError) { ASSERT(m_pDocument != NULL); + int iSize = params.size(); int nIdx = -1; - if (params.size() >=1) - nIdx = (FX_INT32) params[0]; + if (iSize >= 1) + nIdx = params[0].ToInt(); + FX_BOOL bExport = TRUE; - int iSize = params.size(); - if ( iSize >= 2) - { - bExport =(FX_BOOL) params[1]; - } + if (iSize >= 2) + bExport = params[1].ToBool(); CFX_PtrArray FieldArray; GetFormFields(m_FieldName,FieldArray); @@ -3720,8 +3713,8 @@ FX_BOOL Field::isBoxChecked(IFXJS_Context* cc, const CJS_Parameters& params, CJS ASSERT(m_pDocument != NULL); int nIndex = -1; - if (params.size() >=1) - nIndex = (FX_INT32) params[0]; + if (params.size() >= 1) + nIndex = params[0].ToInt(); CFX_PtrArray FieldArray; GetFormFields(m_FieldName,FieldArray); @@ -3755,8 +3748,8 @@ FX_BOOL Field::isDefaultChecked(IFXJS_Context* cc, const CJS_Parameters& params, ASSERT(m_pDocument != NULL); int nIndex = -1; - if (params.size() >=1) - nIndex = (FX_INT32) params[0]; + if (params.size() >= 1) + nIndex = params[0].ToInt(); CFX_PtrArray FieldArray; GetFormFields(m_FieldName,FieldArray); diff --git a/fpdfsdk/src/javascript/JS_Value.cpp b/fpdfsdk/src/javascript/JS_Value.cpp index 6743daa4d5..be374895e4 100644 --- a/fpdfsdk/src/javascript/JS_Value.cpp +++ b/fpdfsdk/src/javascript/JS_Value.cpp @@ -85,7 +85,7 @@ void CJS_Value::Attach(v8::Handle<v8::Value> pValue,FXJSVALUETYPE t) void CJS_Value::Attach(CJS_Value *pValue) { if (pValue) - Attach(pValue->ToJSValue(),pValue->GetType()); + Attach(pValue->ToV8Value(), pValue->GetType()); } void CJS_Value::Detach() @@ -96,63 +96,53 @@ void CJS_Value::Detach() /* ---------------------------------------------------------------------------------------- */ -CJS_Value::operator int() const +int CJS_Value::ToInt() const { - return JS_ToInt32(m_pValue); - } -CJS_Value::operator bool() const +bool CJS_Value::ToBool() const { - return JS_ToBoolean(m_pValue); - } -CJS_Value::operator double() const +double CJS_Value::ToDouble() const { - return JS_ToNumber(m_pValue); - } -CJS_Value::operator float() const +float CJS_Value::ToFloat() const { - - return (float)JS_ToNumber(m_pValue); - + return (float)ToDouble(); } -CJS_Value::operator CJS_Object *() const +CJS_Object* CJS_Value::ToCJSObject() const { - v8::Handle<v8::Object> pObj = JS_ToObject(m_pValue); return (CJS_Object*)JS_GetPrivate(m_isolate, pObj); } -CJS_Value::operator v8::Handle<v8::Object>() const +v8::Handle<v8::Object> CJS_Value::ToV8Object() const { return JS_ToObject(m_pValue); } -CJS_Value::operator CFX_WideString() const +CFX_WideString CJS_Value::ToCFXWideString() const { return JS_ToString(m_pValue); } -CJS_Value::operator CFX_ByteString() const +CFX_ByteString CJS_Value::ToCFXByteString() const { - return CFX_ByteString::FromUnicode(operator CFX_WideString()); + return CFX_ByteString::FromUnicode(ToCFXWideString()); } -v8::Handle<v8::Value> CJS_Value::ToJSValue() +v8::Handle<v8::Value> CJS_Value::ToV8Value() const { return m_pValue; } - -CJS_Value::operator v8::Handle<v8::Array>() const +v8::Handle<v8::Array>CJS_Value::ToV8Array() const { if (IsArrayObject()) return v8::Handle<v8::Array>::Cast(JS_ToObject(m_pValue)); @@ -245,7 +235,7 @@ void CJS_Value::operator = (CJS_Date & date) void CJS_Value::operator = (CJS_Value value) { - m_pValue = value.ToJSValue(); + m_pValue = value.ToV8Value(); m_eType = value.m_eType; } @@ -342,7 +332,7 @@ void CJS_PropValue::operator <<(int iValue) void CJS_PropValue::operator >>(int & iValue) const { ASSERT(m_bIsSetting); - iValue = CJS_Value::operator int(); + iValue = CJS_Value::ToInt(); } @@ -355,8 +345,7 @@ void CJS_PropValue::operator <<(bool bValue) void CJS_PropValue::operator >>(bool& bValue) const { ASSERT(m_bIsSetting); - bValue = CJS_Value::operator bool(); - + bValue = CJS_Value::ToBool(); } void CJS_PropValue::operator <<(double dValue) @@ -368,7 +357,7 @@ void CJS_PropValue::operator <<(double dValue) void CJS_PropValue::operator >>(double& dValue) const { ASSERT(m_bIsSetting); - dValue = CJS_Value::operator double(); + dValue = CJS_Value::ToDouble(); } void CJS_PropValue::operator <<(CJS_Object* pObj) @@ -380,7 +369,7 @@ void CJS_PropValue::operator <<(CJS_Object* pObj) void CJS_PropValue::operator >>(CJS_Object*& ppObj) const { ASSERT(m_bIsSetting); - ppObj = CJS_Value::operator CJS_Object *(); + ppObj = CJS_Value::ToCJSObject(); } void CJS_PropValue::operator <<(CJS_Document* pJsDoc) @@ -392,7 +381,7 @@ void CJS_PropValue::operator <<(CJS_Document* pJsDoc) void CJS_PropValue::operator >>(CJS_Document*& ppJsDoc) const { ASSERT(m_bIsSetting); - ppJsDoc = static_cast<CJS_Document*>(CJS_Value::operator CJS_Object *()); + ppJsDoc = static_cast<CJS_Document*>(CJS_Value::ToCJSObject()); } void CJS_PropValue::operator<<(JSFXObject pObj) @@ -404,7 +393,7 @@ void CJS_PropValue::operator<<(JSFXObject pObj) void CJS_PropValue::operator>>(JSFXObject &ppObj) const { ASSERT(m_bIsSetting); - ppObj = CJS_Value::operator JSFXObject (); + ppObj = CJS_Value::ToV8Object(); } @@ -426,7 +415,7 @@ void CJS_PropValue::operator <<(CFX_ByteString string) void CJS_PropValue::operator >>(CFX_ByteString &string) const { ASSERT(m_bIsSetting); - string = CJS_Value::operator CFX_ByteString(); + string = CJS_Value::ToCFXByteString(); } void CJS_PropValue::operator <<(FX_LPCWSTR c_string) @@ -438,7 +427,7 @@ void CJS_PropValue::operator <<(FX_LPCWSTR c_string) void CJS_PropValue::operator >>(CFX_WideString &wide_string) const { ASSERT(m_bIsSetting); - wide_string = CJS_Value::operator CFX_WideString(); + wide_string = CJS_Value::ToCFXWideString(); } void CJS_PropValue::operator <<(CFX_WideString wide_string) @@ -508,7 +497,7 @@ void CJS_Array::SetElement(unsigned index,CJS_Value value) if (m_pArray.IsEmpty()) m_pArray = JS_NewArray(m_isolate); - JS_PutArrayElement(m_pArray,index,value.ToJSValue(),value.GetType()); + JS_PutArrayElement(m_pArray, index, value.ToV8Value(), value.GetType()); } int CJS_Array::GetLength() diff --git a/fpdfsdk/src/javascript/PublicMethods.cpp b/fpdfsdk/src/javascript/PublicMethods.cpp index e3479f1fa4..ff5b9a787a 100644 --- a/fpdfsdk/src/javascript/PublicMethods.cpp +++ b/fpdfsdk/src/javascript/PublicMethods.cpp @@ -430,7 +430,7 @@ CJS_Array CJS_PublicMethods::AF_MakeArrayFromList(v8::Isolate* isolate, CJS_Valu val.ConvertToArray(StrArray); return StrArray; } - CFX_WideString wsStr = val.operator CFX_WideString(); + CFX_WideString wsStr = val.ToCFXWideString(); CFX_ByteString t = CFX_ByteString::FromUnicode(wsStr); const char * p = (const char *)t; @@ -1071,12 +1071,12 @@ FX_BOOL CJS_PublicMethods::AFNumber_Format(IFXJS_Context* cc, const CJS_Paramete if (strValue.IsEmpty()) return TRUE; - int iDec = params[0]; - int iSepStyle = params[1]; - int iNegStyle = params[2]; + int iDec = params[0].ToInt(); + int iSepStyle = params[1].ToInt(); + int iNegStyle = params[2].ToInt(); // params[3] is iCurrStyle, it's not used. - std::wstring wstrCurrency(params[4].operator CFX_WideString()); - FX_BOOL bCurrencyPrepend = params[5]; + std::wstring wstrCurrency(params[4].ToCFXWideString()); + FX_BOOL bCurrencyPrepend = params[5].ToBool(); if (iDec < 0) iDec = -iDec; @@ -1268,7 +1268,7 @@ FX_BOOL CJS_PublicMethods::AFNumber_Keystroke(IFXJS_Context* cc, const CJS_Param if(params.size() < 2) return FALSE; - int iSepStyle = params[1]; + int iSepStyle = params[1].ToInt(); if (iSepStyle < 0 || iSepStyle > 3) iSepStyle = 0; @@ -1406,30 +1406,20 @@ FX_BOOL CJS_PublicMethods::AFPercent_Format(IFXJS_Context* cc, const CJS_Paramet } if(!pEvent->m_pValue) return FALSE; + CFX_WideString& Value = pEvent->Value(); - -// HWND hMainFrame = NULL; -// -// CPDFSDK_FormFillApp *pApp = pContext->GetReaderApp(); -// ASSERT(pApp); -// hMainFrame = pApp->GetMainFrameWnd(); - CFX_ByteString strValue = StrTrim(CFX_ByteString::FromUnicode(Value)); - if (strValue.IsEmpty()) return TRUE; - - int iDec = params[0]; - int iSepStyle = params[1]; - - //ASSERT(iDec > 0); + + int iDec = params[0].ToInt(); if (iDec < 0) iDec = -iDec; - + + int iSepStyle = params[1].ToInt(); if (iSepStyle < 0 || iSepStyle > 3) iSepStyle = 0; - - + ////////////////////////////////////////////////////// //for processing decimal places double dValue = atof(strValue); @@ -1527,16 +1517,16 @@ FX_BOOL CJS_PublicMethods::AFDate_FormatEx(IFXJS_Context* cc, const CJS_Paramete { sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); return FALSE; - } + } if(!pEvent->m_pValue) return FALSE; - CFX_WideString& val = pEvent->Value(); - - CFX_WideString strValue = val; - if (strValue.IsEmpty()) return TRUE; - CFX_WideString sFormat = params[0].operator CFX_WideString(); + CFX_WideString& val = pEvent->Value(); + CFX_WideString strValue = val; + if (strValue.IsEmpty()) + return TRUE; + CFX_WideString sFormat = params[0].ToCFXWideString(); FX_BOOL bWrongFormat = FALSE; double dDate = 0.0f; @@ -1558,9 +1548,8 @@ FX_BOOL CJS_PublicMethods::AFDate_FormatEx(IFXJS_Context* cc, const CJS_Paramete Alert(pContext, swMsg); return FALSE; } - - val = MakeFormatDate(dDate,sFormat); + val = MakeFormatDate(dDate,sFormat); return TRUE; } @@ -1636,17 +1625,17 @@ FX_BOOL CJS_PublicMethods::AFDate_KeystrokeEx(IFXJS_Context* cc, const CJS_Param { sError = L"AFDate_KeystrokeEx's parameters' size r not correct"; return FALSE; - } - + } + if (pEvent->WillCommit()) { if(!pEvent->m_pValue) return FALSE; CFX_WideString strValue = pEvent->Value(); - if (strValue.IsEmpty()) return TRUE; - - CFX_WideString sFormat = params[0].operator CFX_WideString(); + if (strValue.IsEmpty()) + return TRUE; + CFX_WideString sFormat = params[0].ToCFXWideString(); FX_BOOL bWrongFormat = FALSE; double dRet = MakeRegularDate(strValue,sFormat,bWrongFormat); if (bWrongFormat || JS_PortIsNan(dRet)) @@ -1674,7 +1663,7 @@ FX_BOOL CJS_PublicMethods::AFDate_Format(IFXJS_Context* cc, const CJS_Parameters return FALSE; } - int iIndex = params[0]; + int iIndex = params[0].ToInt(); FX_LPCWSTR cFormats[] = {L"m/d", L"m/d/yy", L"mm/dd/yy", L"mm/yy", L"d-mmm", L"d-mmm-yy", L"dd-mmm-yy", L"yy-mm-dd", L"mmm-yy", L"mmmm-yy", L"mmm d, yyyy", L"mmmm d, yyyy", L"m/d/yy h:MM tt", L"m/d/yy HH:MM" }; @@ -1705,7 +1694,7 @@ FX_BOOL CJS_PublicMethods::AFDate_Keystroke(IFXJS_Context* cc, const CJS_Paramet return FALSE; } - int iIndex = params[0]; + int iIndex = params[0].ToInt(); FX_LPCWSTR cFormats[] = {L"m/d", L"m/d/yy", L"mm/dd/yy", L"mm/yy", L"d-mmm", L"d-mmm-yy", L"dd-mmm-yy", L"yy-mm-dd", L"mmm-yy", L"mmmm-yy", L"mmm d, yyyy", L"mmmm d, yyyy", L"m/d/yy h:MM tt", L"m/d/yy HH:MM" }; @@ -1735,7 +1724,7 @@ FX_BOOL CJS_PublicMethods::AFTime_Format(IFXJS_Context* cc, const CJS_Parameters return FALSE; } - int iIndex = params[0]; + int iIndex = params[0].ToInt(); FX_LPCWSTR cFormats[] = {L"HH:MM", L"h:MM tt", L"HH:MM:ss", L"h:MM:ss tt"}; ASSERT(iIndex<FX_ArraySize(cFormats)); @@ -1761,7 +1750,7 @@ FX_BOOL CJS_PublicMethods::AFTime_Keystroke(IFXJS_Context* cc, const CJS_Paramet return FALSE; } - int iIndex = params[0]; + int iIndex = params[0].ToInt(); FX_LPCWSTR cFormats[] = {L"HH:MM", L"h:MM tt", L"HH:MM:ss", L"h:MM:ss tt"}; ASSERT(iIndex<FX_ArraySize(cFormats)); @@ -1799,7 +1788,7 @@ FX_BOOL CJS_PublicMethods::AFSpecial_Format(IFXJS_Context* cc, const CJS_Paramet } std::string cFormat; - int iIndex = params[0]; + int iIndex = params[0].ToInt(); CJS_EventHandler* pEvent = pContext->GetEventHandler(); ASSERT(pEvent != NULL); @@ -1858,11 +1847,12 @@ FX_BOOL CJS_PublicMethods::AFSpecial_KeystrokeEx(IFXJS_Context* cc, const CJS_Pa return FALSE; CFX_WideString& valEvent = pEvent->Value(); - CFX_WideString wstrMask = params[0].operator CFX_WideString(); - if (wstrMask.IsEmpty()) return TRUE; - + CFX_WideString wstrMask = params[0].ToCFXWideString(); + if (wstrMask.IsEmpty()) + return TRUE; + std::wstring wstrValue(valEvent); - + if (pEvent->WillCommit()) { if (wstrValue.empty()) @@ -1871,7 +1861,7 @@ FX_BOOL CJS_PublicMethods::AFSpecial_KeystrokeEx(IFXJS_Context* cc, const CJS_Pa for (std::wstring::iterator it = wstrValue.begin(); it != wstrValue.end(); it++) { wchar_t w_Value = *it; - if (!maskSatisfied(w_Value,wstrMask[iIndexMask])) + if (!maskSatisfied(w_Value,wstrMask[iIndexMask])) break; iIndexMask++; } @@ -1884,31 +1874,27 @@ FX_BOOL CJS_PublicMethods::AFSpecial_KeystrokeEx(IFXJS_Context* cc, const CJS_Pa return TRUE; } - CFX_WideString &wideChange = pEvent->Change(); std::wstring wChange(wideChange); - if (wChange.empty()) return TRUE; - int iIndexMask = pEvent->SelStart(); - //iIndexMask++; - - + + int iIndexMask = pEvent->SelStart(); + if (wstrValue.length() - (pEvent->SelEnd()-pEvent->SelStart()) + wChange.length() > (FX_DWORD)wstrMask.GetLength()) { Alert(pContext, JSGetStringFromID(pContext, IDS_STRING_JSPARAM_TOOLONG)); pEvent->Rc() = FALSE; return TRUE; } - - + if (iIndexMask >= wstrMask.GetLength() && (!wChange.empty())) { Alert(pContext, JSGetStringFromID(pContext, IDS_STRING_JSPARAM_TOOLONG)); pEvent->Rc() = FALSE; return TRUE; } - + for (std::wstring::iterator it = wChange.begin(); it != wChange.end(); it++) { if (iIndexMask >= wstrMask.GetLength()) @@ -1920,21 +1906,18 @@ FX_BOOL CJS_PublicMethods::AFSpecial_KeystrokeEx(IFXJS_Context* cc, const CJS_Pa wchar_t w_Mask = wstrMask[iIndexMask]; if (!isReservedMaskChar(w_Mask)) { - //wChange.insert(it,w_Mask); *it = w_Mask; } wchar_t w_Change = *it; - - if (!maskSatisfied(w_Change,w_Mask)) + if (!maskSatisfied(w_Change,w_Mask)) { pEvent->Rc() = FALSE; return TRUE; } iIndexMask++; } - - wideChange = wChange.c_str(); - + + wideChange = wChange.c_str(); return TRUE; } @@ -1956,7 +1939,7 @@ FX_BOOL CJS_PublicMethods::AFSpecial_Keystroke(IFXJS_Context* cc, const CJS_Para } std::string cFormat; - int iIndex = (int)params[0]; + int iIndex = params[0].ToInt(); if(!pEvent->m_pValue) return FALSE; @@ -2050,8 +2033,8 @@ FX_BOOL CJS_PublicMethods::AFParseDateEx(IFXJS_Context* cc, const CJS_Parameters return FALSE; } - CFX_WideString sValue = params[0].operator CFX_WideString(); - CFX_WideString sFormat = params[1].operator CFX_WideString(); + CFX_WideString sValue = params[0].ToCFXWideString(); + CFX_WideString sFormat = params[1].ToCFXWideString(); FX_BOOL bWrongFormat = FALSE; double dDate = MakeRegularDate(sValue,sFormat,bWrongFormat); @@ -2063,9 +2046,8 @@ FX_BOOL CJS_PublicMethods::AFParseDateEx(IFXJS_Context* cc, const CJS_Parameters Alert((CJS_Context *)cc, swMsg); return FALSE; } - - vRet = dDate; + vRet = dDate; return TRUE; } @@ -2080,7 +2062,7 @@ FX_BOOL CJS_PublicMethods::AFSimple(IFXJS_Context* cc, const CJS_Parameters& par return FALSE; } - vRet = (double)AF_Simple(params[0].operator CFX_WideString(), (double)params[1], (double)params[2]); + vRet = (double)AF_Simple(params[0].ToCFXWideString(), params[1].ToDouble(), params[2].ToDouble()); return TRUE; } @@ -2094,7 +2076,7 @@ FX_BOOL CJS_PublicMethods::AFMakeNumber(IFXJS_Context* cc, const CJS_Parameters& sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); return FALSE; } - vRet = ParseStringToNumber(params[0].operator CFX_WideString()); + vRet = ParseStringToNumber(params[0].ToCFXWideString()); return TRUE; } @@ -2118,7 +2100,7 @@ FX_BOOL CJS_PublicMethods::AFSimple_Calculate(IFXJS_Context* cc, const CJS_Param sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); return FALSE; } - + CPDFSDK_Document* pReaderDoc = pContext->GetReaderDocument(); ASSERT(pReaderDoc != NULL); @@ -2129,7 +2111,7 @@ FX_BOOL CJS_PublicMethods::AFSimple_Calculate(IFXJS_Context* cc, const CJS_Param ASSERT(pInterForm != NULL); double dValue; - CFX_WideString sFunction = params[0].operator CFX_WideString(); + CFX_WideString sFunction = params[0].ToCFXWideString(); if (wcscmp(sFunction, L"PRD") == 0) dValue = 1.0; else @@ -2143,7 +2125,7 @@ FX_BOOL CJS_PublicMethods::AFSimple_Calculate(IFXJS_Context* cc, const CJS_Param { CJS_Value jsValue(isolate); FieldNameArray.GetElement(i,jsValue); - CFX_WideString wsFieldName = jsValue.operator CFX_WideString(); + CFX_WideString wsFieldName = jsValue.ToCFXWideString(); for (int j=0,jsz=pInterForm->CountFields(wsFieldName); j<jsz; j++) { @@ -2214,7 +2196,7 @@ FX_BOOL CJS_PublicMethods::AFSimple_Calculate(IFXJS_Context* cc, const CJS_Param dValue = (double)floor(dValue * FXSYS_pow((double)10,(double)6) + 0.49) / FXSYS_pow((double)10,(double)6); CJS_Value jsValue(isolate,dValue); if((CJS_EventHandler*)pContext->GetEventHandler()->m_pValue) - ((CJS_EventHandler*)pContext->GetEventHandler())->Value() = jsValue; + ((CJS_EventHandler*)pContext->GetEventHandler())->Value() = jsValue.ToCFXWideString(); return TRUE; } @@ -2240,28 +2222,30 @@ FX_BOOL CJS_PublicMethods::AFRange_Validate(IFXJS_Context* cc, const CJS_Paramet if (pEvent->Value().IsEmpty() ) return TRUE; double dEentValue = atof(CFX_ByteString::FromUnicode(pEvent->Value())); - FX_BOOL bGreaterThan, bLessThan; - double dGreaterThan, dLessThan; - bGreaterThan = (FX_BOOL)params[0]; + FX_BOOL bGreaterThan = params[0].ToBool(); + double dGreaterThan = params[1].ToDouble(); + FX_BOOL bLessThan = params[2].ToBool(); + double dLessThan = params[3].ToDouble(); CFX_WideString swMsg; - dGreaterThan = (double)params[1]; - bLessThan = (FX_BOOL)params[2]; - dLessThan = (double)params[3]; if (bGreaterThan && bLessThan) { if (dEentValue < dGreaterThan || dEentValue > dLessThan) - swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSRANGE1),(FX_LPCWSTR)params[1].operator CFX_WideString(), (FX_LPCWSTR)params[3].operator CFX_WideString()); + swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSRANGE1), + params[1].ToCFXWideString().c_str(), + params[3].ToCFXWideString().c_str()); } else if (bGreaterThan) { if (dEentValue < dGreaterThan) - swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSRANGE2), (FX_LPCWSTR)params[1].operator CFX_WideString()); + swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSRANGE2), + params[1].ToCFXWideString().c_str()); } else if (bLessThan) { if (dEentValue > dLessThan) - swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSRANGE3), (FX_LPCWSTR)params[3].operator CFX_WideString()); + swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSRANGE3), + params[3].ToCFXWideString().c_str()); } if (!swMsg.IsEmpty()) @@ -2286,7 +2270,7 @@ FX_BOOL CJS_PublicMethods::AFExtractNums(IFXJS_Context* cc, const CJS_Parameters CJS_Array nums(isolate); - CFX_WideString str = params[0].operator CFX_WideString(); + CFX_WideString str = params[0].ToCFXWideString(); CFX_WideString sPart; if (str.GetAt(0) == L'.' || str.GetAt(0) == L',') diff --git a/fpdfsdk/src/javascript/app.cpp b/fpdfsdk/src/javascript/app.cpp index e17857b12b..57d9cfeaf2 100644 --- a/fpdfsdk/src/javascript/app.cpp +++ b/fpdfsdk/src/javascript/app.cpp @@ -325,19 +325,19 @@ FX_BOOL app::alert(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& v { if (params[0].GetType() == VT_object) { - JSObject pObj = params[0]; + JSObject pObj = params[0].ToV8Object(); { v8::Handle<v8::Value> pValue = JS_GetObjectElement(isolate, pObj, L"cMsg"); - swMsg = CJS_Value(isolate,pValue,VT_unknown).operator CFX_WideString(); + swMsg = CJS_Value(isolate, pValue, VT_unknown).ToCFXWideString(); - pValue = JS_GetObjectElement(isolate,pObj,L"cTitle"); - swTitle = CJS_Value(isolate, pValue,VT_unknown).operator CFX_WideString(); + pValue = JS_GetObjectElement(isolate, pObj, L"cTitle"); + swTitle = CJS_Value(isolate, pValue, VT_unknown).ToCFXWideString(); - pValue = JS_GetObjectElement(isolate,pObj,L"nIcon"); - iIcon = (int)CJS_Value(isolate,pValue,VT_unknown); + pValue = JS_GetObjectElement(isolate, pObj, L"nIcon"); + iIcon = CJS_Value(isolate, pValue, VT_unknown).ToInt(); - pValue = JS_GetObjectElement(isolate,pObj,L"nType"); - iType = (int)CJS_Value(isolate,pValue,VT_unknown); + pValue = JS_GetObjectElement(isolate, pObj, L"nType"); + iType = CJS_Value(isolate, pValue, VT_unknown).ToInt(); } if (swMsg == L"") @@ -355,22 +355,12 @@ FX_BOOL app::alert(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& v for(int i = 0; i < iLenth; i++) { carray.GetElement(i, *pValue); - swMsg += (*pValue).operator CFX_WideString(); + swMsg += (*pValue).ToCFXWideString(); if (i < iLenth - 1) swMsg += L", "; } if(pValue) delete pValue; -// if ((iLenth > 1) && pValue) -// { -// delete[]pValue; -// pValue = NULL; -// } -// else if ((iLenth == 1) && pValue) -// { -// delete pValue; -// pValue = NULL; -// } } } @@ -379,7 +369,7 @@ FX_BOOL app::alert(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& v } else if (params[0].GetType() == VT_boolean) { - FX_BOOL bGet = (FX_BOOL)params[0]; + FX_BOOL bGet = params[0].ToBool(); if (bGet) swMsg = L"true"; else @@ -389,7 +379,7 @@ FX_BOOL app::alert(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& v } else { - swMsg = params[0]; + swMsg = params[0].ToCFXWideString(); swTitle = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSALERT); } } @@ -397,7 +387,7 @@ FX_BOOL app::alert(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& v { if (params[0].GetType() == VT_boolean) { - FX_BOOL bGet = (FX_BOOL)params[0]; + FX_BOOL bGet = params[0].ToBool(); if (bGet) swMsg = L"true"; else @@ -405,18 +395,18 @@ FX_BOOL app::alert(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& v } else { - swMsg = params[0]; + swMsg = params[0].ToCFXWideString(); } swTitle = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSALERT); for(int i = 1;i<iSize;i++) { if (i == 1) - iIcon = int(params[i]); + iIcon = params[i].ToInt(); if (i == 2) - iType = int(params[i]); + iType = params[i].ToInt(); if (i == 3) - swTitle = params[i]; + swTitle = params[i].ToCFXWideString(); } } @@ -440,15 +430,12 @@ FX_BOOL app::beep(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vR CJS_Context* pContext = (CJS_Context*)cc; CJS_Runtime* pRuntime = pContext->GetJSRuntime(); CPDFDoc_Environment * pEnv = pRuntime->GetReaderApp(); - pEnv->JS_appBeep((int)params[0]); - + pEnv->JS_appBeep(params[0].ToInt()); return TRUE; } - else - { - sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAMERROR); - return FALSE; - } + + sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAMERROR); + return FALSE; } FX_BOOL app::findComponent(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError) @@ -479,14 +466,14 @@ FX_BOOL app::setInterval(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Va CJS_Runtime* pRuntime = pContext->GetJSRuntime(); ASSERT(pRuntime != NULL); - CFX_WideString script = params.size() > 0 ? (FX_LPCWSTR)(params[0].operator CFX_WideString()) : L""; + CFX_WideString script = params.size() > 0 ? (FX_LPCWSTR)(params[0].ToCFXWideString()) : L""; if (script.IsEmpty()) { sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSAFNUMBER_KEYSTROKE); return TRUE; } - FX_DWORD dwInterval = params.size() > 1 ? (int)params[1] : 1000; + FX_DWORD dwInterval = params.size() > 1 ? params[1].ToInt() : 1000; CPDFDoc_Environment* pApp = pRuntime->GetReaderApp(); ASSERT(pApp); @@ -528,17 +515,18 @@ FX_BOOL app::setTimeOut(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Val CJS_Runtime* pRuntime = pContext->GetJSRuntime(); ASSERT(pRuntime != NULL); - CFX_WideString script = params.size() > 0 ? (FX_LPCWSTR)(params[0].operator CFX_WideString()) : L""; + CFX_WideString script = params.size() > 0 ? (FX_LPCWSTR)(params[0].ToCFXWideString()) : L""; if (script.IsEmpty()) { sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSAFNUMBER_KEYSTROKE); return TRUE; } - FX_DWORD dwTimeOut = params.size() > 1 ? (int)params[1] : 1000; + FX_DWORD dwTimeOut = params.size() > 1 ? params[1].ToInt() : 1000; CPDFDoc_Environment* pApp = pRuntime->GetReaderApp(); ASSERT(pApp); + CJS_Timer* pTimer = new CJS_Timer(this, pApp); m_aTimer.Add(pTimer); @@ -546,12 +534,9 @@ FX_BOOL app::setTimeOut(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Val pTimer->SetRuntime(pRuntime); pTimer->SetJScript(script); pTimer->SetTimeOut(dwTimeOut); -// pTimer->SetStartTime(GetTickCount()); -// pTimer->SetJSTimer(1000); pTimer->SetJSTimer(dwTimeOut); JSFXObject pRetObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjDefnID(*pRuntime, L"TimerObj")); -// ASSERT(pRetObj != NULL); CJS_TimerObj* pJS_TimerObj = (CJS_TimerObj*)JS_GetPrivate(pRuntime->GetIsolate(),pRetObj); ASSERT(pJS_TimerObj != NULL); @@ -581,11 +566,11 @@ FX_BOOL app::clearTimeOut(IFXJS_Context* cc, const CJS_Parameters& params, CJS_V if (params[0].GetType() == VT_fxobject) { - JSFXObject pObj = (JSFXObject)params[0]; + JSFXObject pObj = params[0].ToV8Object(); { if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"TimerObj")) { - if (CJS_Object* pJSObj = (CJS_Object*)params[0]) + if (CJS_Object* pJSObj = params[0].ToCJSObject()) { if (TimerObj* pTimerObj = (TimerObj*)pJSObj->GetEmbedObject()) { @@ -629,11 +614,11 @@ FX_BOOL app::clearInterval(IFXJS_Context* cc, const CJS_Parameters& params, CJS_ if (params[0].GetType() == VT_fxobject) { - JSFXObject pObj = (JSFXObject)params[0]; + JSFXObject pObj = params[0].ToV8Object(); { if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"TimerObj")) { - if (CJS_Object* pJSObj = (CJS_Object*)params[0]) + if (CJS_Object* pJSObj = params[0].ToCJSObject()) { if (TimerObj* pTimerObj = (TimerObj*)pJSObj->GetEmbedObject()) { @@ -717,8 +702,6 @@ FX_BOOL app::goForward(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Valu FX_BOOL app::mailMsg(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError) { CJS_Context* pContext = (CJS_Context*)cc; - ASSERT(pContext != NULL); - v8::Isolate* isolate = GetIsolate(cc); FX_BOOL bUI = TRUE; @@ -727,42 +710,48 @@ FX_BOOL app::mailMsg(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& CFX_WideString cBcc = L""; CFX_WideString cSubject = L""; CFX_WideString cMsg = L""; - if(params.size() < 2) - return FALSE; - - bUI = params.size()>=1?(int)params[0]:TRUE; - cTo = params.size()>=2?(const wchar_t*)(FX_LPCWSTR)params[1].operator CFX_WideString():L""; - cCc = params.size()>=3?(const wchar_t*)(FX_LPCWSTR)params[2].operator CFX_WideString():L""; - cBcc = params.size()>=4?(const wchar_t*)(FX_LPCWSTR)params[3].operator CFX_WideString():L""; - cSubject = params.size()>=5?(const wchar_t*)(FX_LPCWSTR)params[4].operator CFX_WideString():L""; - cMsg = params.size()>=6?(const wchar_t*)(FX_LPCWSTR)params[5].operator CFX_WideString():L""; + if (params.size() < 1) + return FALSE; if (params[0].GetType() == VT_object) { - JSObject pObj = (JSObject)params[0]; + JSObject pObj = params[0].ToV8Object(); - v8::Handle<v8::Value> pValue = JS_GetObjectElement(isolate,pObj, L"bUI"); - bUI = (int)CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)); + v8::Handle<v8::Value> pValue = JS_GetObjectElement(isolate, pObj, L"bUI"); + bUI = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToBool(); pValue = JS_GetObjectElement(isolate, pObj, L"cTo"); - cTo = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString(); - - pValue = JS_GetObjectElement(isolate,pObj, L"cCc"); - cCc = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString(); - - pValue = JS_GetObjectElement(isolate,pObj, L"cBcc"); - cBcc = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString(); - - pValue = JS_GetObjectElement(isolate,pObj, L"cSubject"); - cSubject = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString(); - - pValue = JS_GetObjectElement(isolate,pObj, L"cMsg"); - cMsg = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString(); + 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(); + } else { + if (params.size() < 2) + return FALSE; + + bUI = params[0].ToBool(); + 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(); } - - CJS_Runtime* pRuntime = pContext->GetJSRuntime(); ASSERT(pRuntime != NULL); @@ -771,10 +760,8 @@ FX_BOOL app::mailMsg(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& pRuntime->BeginBlock(); pApp->JS_docmailForm(NULL, 0, bUI, cTo.c_str(), cSubject.c_str(), cCc.c_str(), cBcc.c_str(), cMsg.c_str()); - /////////////////////////////////////////////////////////////////////////////////////////////// pRuntime->EndBlock(); - //return bRet; return FALSE; } @@ -864,40 +851,40 @@ FX_BOOL app::response(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value int iLength = params.size(); if (iLength > 0 && params[0].GetType() == VT_object) { - JSObject pObj = (JSObject )params[0]; + JSObject pObj = params[0].ToV8Object(); v8::Handle<v8::Value> pValue = JS_GetObjectElement(isolate,pObj,L"cQuestion"); - swQuestion = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString(); + swQuestion = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString(); pValue = JS_GetObjectElement(isolate,pObj,L"cTitle"); - swTitle = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString(); + swTitle = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString(); pValue = JS_GetObjectElement(isolate,pObj,L"cDefault"); - swDefault = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString(); + swDefault = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString(); pValue = JS_GetObjectElement(isolate,pObj,L"cLabel"); - swLabel = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString(); + swLabel = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString(); pValue = JS_GetObjectElement(isolate,pObj,L"bPassword"); - bPassWord = (bool)CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)); + bPassWord = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToBool(); } else { switch(iLength) { case 5: - swLabel = params[4]; + swLabel = params[4].ToCFXWideString(); // FALLTHROUGH case 4: - bPassWord = params[3]; + bPassWord = params[3].ToBool(); // FALLTHROUGH case 3: - swDefault = params[2]; + swDefault = params[2].ToCFXWideString(); // FALLTHROUGH case 2: - swTitle = params[1]; + swTitle = params[1].ToCFXWideString(); // FALLTHROUGH case 1: - swQuestion = params[0]; + swQuestion = params[0].ToCFXWideString(); // FALLTHROUGH default: break; diff --git a/fpdfsdk/src/javascript/color.cpp b/fpdfsdk/src/javascript/color.cpp index a338624bd9..ddf6ed4361 100644 --- a/fpdfsdk/src/javascript/color.cpp +++ b/fpdfsdk/src/javascript/color.cpp @@ -104,9 +104,8 @@ void color::ConvertArrayToPWLColor(CJS_Array& array, CPWL_Color& color) if (nArrayLen < 1) return; CJS_Value value(array.GetIsolate()); - CFX_ByteString sSpace; array.GetElement(0, value); - sSpace = value; + CFX_ByteString sSpace = value.ToCFXByteString(); double d1 = 0; double d2 = 0; @@ -116,25 +115,25 @@ void color::ConvertArrayToPWLColor(CJS_Array& array, CPWL_Color& color) if (nArrayLen > 1) { array.GetElement(1, value); - d1 = value; + d1 = value.ToDouble(); } if (nArrayLen > 2) { array.GetElement(2, value); - d2 = value; + d2 = value.ToDouble(); } if (nArrayLen > 3) { array.GetElement(3, value); - d3 = value; + d3 = value.ToDouble(); } if (nArrayLen > 4) { array.GetElement(4, value); - d4 = value; + d4 = value.ToDouble(); } if (sSpace == "T") @@ -199,10 +198,9 @@ FX_BOOL color::convert(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Valu CPWL_Color crSource; ConvertArrayToPWLColor(aSource, crSource); - CFX_ByteString sDestSpace = params[1]; - + CFX_ByteString sDestSpace = params[1].ToCFXByteString(); int nColorType = COLORTYPE_TRANSPARENT; - + if (sDestSpace == "T") { nColorType = COLORTYPE_TRANSPARENT; diff --git a/fpdfsdk/src/javascript/event.cpp b/fpdfsdk/src/javascript/event.cpp index 620b43ebfa..fb57e741ee 100644 --- a/fpdfsdk/src/javascript/event.cpp +++ b/fpdfsdk/src/javascript/event.cpp @@ -352,7 +352,7 @@ FX_BOOL event::value(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErro CFX_WideString & val = pEvent->Value(); if (vp.IsSetting()) { - val = vp; + vp >> val; } else { diff --git a/fpdfsdk/src/javascript/global.cpp b/fpdfsdk/src/javascript/global.cpp index 4ed0d66b1e..6b5d5e2725 100644 --- a/fpdfsdk/src/javascript/global.cpp +++ b/fpdfsdk/src/javascript/global.cpp @@ -174,7 +174,7 @@ FX_BOOL global_alternate::DoProperty(IFXJS_Context* cc, FX_LPCWSTR propname, CJS { bool bData; vp >> bData; - return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_BOOLEAN, 0, (bool)vp, "", v8::Handle<v8::Object>(), FALSE); + return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_BOOLEAN, 0, bData, "", v8::Handle<v8::Object>(), FALSE); } case VT_string: { @@ -184,20 +184,9 @@ FX_BOOL global_alternate::DoProperty(IFXJS_Context* cc, FX_LPCWSTR propname, CJS } case VT_object: { - JSObject pData = (JSObject)vp; + JSObject pData; + vp >> pData; return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_OBJECT, 0, false, "", pData, FALSE); -// else -// { -// if (vp.IsArrayObject()) -// { -// CJS_Array array; -// vp.ConvertToArray(array); -// return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_OBJECT, 0, false, "", -// (Dobject*)(Darray*)array, FALSE); -// } -// else -// return FALSE; -// } } case VT_null: { @@ -278,14 +267,14 @@ FX_BOOL global_alternate::setPersistent(IFXJS_Context* cc, const CJS_Parameters& return FALSE; } - CFX_ByteString sName = params[0]; + CFX_ByteString sName = params[0].ToCFXByteString(); js_global_data* pData = NULL; if (m_mapGlobal.Lookup(sName, (FX_LPVOID&)pData)) { if (pData && !pData->bDeleted) { - pData->bPersistent = (bool)params[1]; + pData->bPersistent = params[1].ToBool(); return TRUE; } } @@ -434,7 +423,7 @@ void global_alternate::ObjectToArray(v8::Handle<v8::Object> pObj, CJS_GlobalVari break; case VT_string: { - CFX_ByteString sValue = CJS_Value(isolate, v, VT_string); + CFX_ByteString sValue = CJS_Value(isolate, v, VT_string).ToCFXByteString(); CJS_KeyValue* pObjElement = new CJS_KeyValue; pObjElement->nType = JS_GLOBALDATA_TYPE_STRING; pObjElement->sKey = sKey; diff --git a/fpdfsdk/src/javascript/util.cpp b/fpdfsdk/src/javascript/util.cpp index 0ac98ddbac..6898d0c1a2 100644 --- a/fpdfsdk/src/javascript/util.cpp +++ b/fpdfsdk/src/javascript/util.cpp @@ -142,7 +142,7 @@ FX_BOOL util::printf(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& int iSize = params.size(); if (iSize < 1) return FALSE; - std::wstring c_ConvChar((const wchar_t*)(FX_LPCWSTR)params[0].operator CFX_WideString()); + std::wstring c_ConvChar(params[0].ToCFXWideString().c_str()); std::vector<std::wstring> c_strConvers; int iOffset = 0; int iOffend = 0; @@ -182,13 +182,13 @@ FX_BOOL util::printf(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& switch (ParstDataType(&c_strFormat)) { case UTIL_INT: - strSegment.Format(c_strFormat.c_str(),(int)params[iIndex]); + strSegment.Format(c_strFormat.c_str(), params[iIndex].ToInt()); break; case UTIL_DOUBLE: - strSegment.Format(c_strFormat.c_str(),(double)params[iIndex]); + strSegment.Format(c_strFormat.c_str(), params[iIndex].ToDouble()); break; case UTIL_STRING: - strSegment.Format(c_strFormat.c_str(),(FX_LPCWSTR)params[iIndex].operator CFX_WideString()); + strSegment.Format(c_strFormat.c_str(), params[iIndex].ToCFXWideString().c_str()); break; default: strSegment.Format(L"%S", c_strFormat.c_str()); @@ -229,8 +229,7 @@ FX_BOOL util::printd(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& if (p1.GetType() == VT_number) { - int nFormat = p1; - + int nFormat = p1.ToInt(); CFX_WideString swResult; switch (nFormat) @@ -271,13 +270,12 @@ FX_BOOL util::printd(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& } else if (p1.GetType() == VT_string) { - std::basic_string<wchar_t> cFormat = (FX_LPCWSTR)p1.operator CFX_WideString(); + std::basic_string<wchar_t> cFormat = p1.ToCFXWideString().c_str(); bool bXFAPicture = false; if (iSize > 2) { - //CJS_Value value; - bXFAPicture = params[2]; + bXFAPicture = params[2].ToBool(); } if (bXFAPicture) @@ -467,8 +465,8 @@ FX_BOOL util::printx(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& int iSize = params.size(); if (iSize<2) return FALSE; - CFX_WideString sFormat = params[0].operator CFX_WideString(); - CFX_WideString sSource = params[1].operator CFX_WideString(); + CFX_WideString sFormat = params[0].ToCFXWideString(); + CFX_WideString sSource = params[1].ToCFXWideString(); std::string cFormat = CFX_ByteString::FromUnicode(sFormat).c_str(); std::string cSource = CFX_ByteString::FromUnicode(sSource).c_str(); std::string cDest; @@ -582,9 +580,9 @@ FX_BOOL util::scand(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& int iSize = params.size(); if (iSize < 2) return FALSE; - CFX_WideString sFormat = params[0].operator CFX_WideString(); - CFX_WideString sDate = params[1].operator CFX_WideString(); + CFX_WideString sFormat = params[0].ToCFXWideString(); + CFX_WideString sDate = params[1].ToCFXWideString(); double dDate = JS_GetDateTime(); if (sDate.GetLength() > 0) { @@ -638,7 +636,7 @@ FX_BOOL util::byteToChar(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Va int iSize = params.size(); if (iSize == 0) return FALSE; - int nByte = (int)params[0]; + int nByte = params[0].ToInt(); unsigned char cByte = (unsigned char)nByte; CFX_WideString csValue; csValue.Format(L"%c", cByte); |