// Copyright 2014 PDFium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-
+
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
#include "../../include/javascript/JavaScript.h"
#define DOUBLE_CORRECT 0.000000000000001
BEGIN_JS_STATIC_GLOBAL_FUN(CJS_PublicMethods)
- JS_STATIC_GLOBAL_FUN_ENTRY(AFNumber_Format,6)
- JS_STATIC_GLOBAL_FUN_ENTRY(AFNumber_Keystroke,6)
- JS_STATIC_GLOBAL_FUN_ENTRY(AFPercent_Format,2)
- JS_STATIC_GLOBAL_FUN_ENTRY(AFPercent_Keystroke,2)
- JS_STATIC_GLOBAL_FUN_ENTRY(AFDate_FormatEx,1)
- JS_STATIC_GLOBAL_FUN_ENTRY(AFDate_KeystrokeEx,1)
- JS_STATIC_GLOBAL_FUN_ENTRY(AFDate_Format,1)
- JS_STATIC_GLOBAL_FUN_ENTRY(AFDate_Keystroke,1)
- JS_STATIC_GLOBAL_FUN_ENTRY(AFTime_FormatEx,1)
- JS_STATIC_GLOBAL_FUN_ENTRY(AFTime_KeystrokeEx,1)
- JS_STATIC_GLOBAL_FUN_ENTRY(AFTime_Format,1)
- JS_STATIC_GLOBAL_FUN_ENTRY(AFTime_Keystroke,1)
- JS_STATIC_GLOBAL_FUN_ENTRY(AFSpecial_Format,1)
- JS_STATIC_GLOBAL_FUN_ENTRY(AFSpecial_Keystroke,1)
- JS_STATIC_GLOBAL_FUN_ENTRY(AFSpecial_KeystrokeEx,1)
- JS_STATIC_GLOBAL_FUN_ENTRY(AFSimple,3)
- JS_STATIC_GLOBAL_FUN_ENTRY(AFMakeNumber,1)
- JS_STATIC_GLOBAL_FUN_ENTRY(AFSimple_Calculate,2)
- JS_STATIC_GLOBAL_FUN_ENTRY(AFRange_Validate,4)
- JS_STATIC_GLOBAL_FUN_ENTRY(AFMergeChange,1)
- JS_STATIC_GLOBAL_FUN_ENTRY(AFParseDateEx,2)
- JS_STATIC_GLOBAL_FUN_ENTRY(AFExtractNums,1)
+ JS_STATIC_GLOBAL_FUN_ENTRY(AFNumber_Format)
+ JS_STATIC_GLOBAL_FUN_ENTRY(AFNumber_Keystroke)
+ JS_STATIC_GLOBAL_FUN_ENTRY(AFPercent_Format)
+ JS_STATIC_GLOBAL_FUN_ENTRY(AFPercent_Keystroke)
+ JS_STATIC_GLOBAL_FUN_ENTRY(AFDate_FormatEx)
+ JS_STATIC_GLOBAL_FUN_ENTRY(AFDate_KeystrokeEx)
+ JS_STATIC_GLOBAL_FUN_ENTRY(AFDate_Format)
+ JS_STATIC_GLOBAL_FUN_ENTRY(AFDate_Keystroke)
+ JS_STATIC_GLOBAL_FUN_ENTRY(AFTime_FormatEx)
+ JS_STATIC_GLOBAL_FUN_ENTRY(AFTime_KeystrokeEx)
+ JS_STATIC_GLOBAL_FUN_ENTRY(AFTime_Format)
+ JS_STATIC_GLOBAL_FUN_ENTRY(AFTime_Keystroke)
+ JS_STATIC_GLOBAL_FUN_ENTRY(AFSpecial_Format)
+ JS_STATIC_GLOBAL_FUN_ENTRY(AFSpecial_Keystroke)
+ JS_STATIC_GLOBAL_FUN_ENTRY(AFSpecial_KeystrokeEx)
+ JS_STATIC_GLOBAL_FUN_ENTRY(AFSimple)
+ JS_STATIC_GLOBAL_FUN_ENTRY(AFMakeNumber)
+ JS_STATIC_GLOBAL_FUN_ENTRY(AFSimple_Calculate)
+ JS_STATIC_GLOBAL_FUN_ENTRY(AFRange_Validate)
+ JS_STATIC_GLOBAL_FUN_ENTRY(AFMergeChange)
+ JS_STATIC_GLOBAL_FUN_ENTRY(AFParseDateEx)
+ JS_STATIC_GLOBAL_FUN_ENTRY(AFExtractNums)
END_JS_STATIC_GLOBAL_FUN()
IMPLEMENT_JS_STATIC_GLOBAL_FUN(CJS_PublicMethods)
L"Jan", L"Feb", L"Mar", L"Apr", L"May", L"Jun", L"Jul", L"Aug", L"Sep", L"Oct", L"Nov", L"Dec"
};
-static FX_LPCWSTR fullmonths[] =
-{
- L"January", L"February", L"March", L"April", L"May", L"June", L"July", L"August", L"September", L"October", L"November", L"December"
+static FX_LPCWSTR fullmonths[] =
+{
+ L"January", L"February", L"March", L"April", L"May", L"June", L"July", L"August", L"September", L"October", L"November", L"December"
};
FX_BOOL CJS_PublicMethods::IsNumber(FX_LPCWSTR string)
{
CFX_WideString sTrim = StrTrim(string);
- FX_LPCWSTR pTrim = sTrim;
+ FX_LPCWSTR pTrim = sTrim.c_str();
FX_LPCWSTR p = pTrim;
switch (c_Mask)
{
case L'9':
- return IsDigit(c_Change);
+ return IsDigit(c_Change);
case L'A':
- return IsAlphabetic(c_Change);
+ return IsAlphabetic(c_Change);
case L'O':
- return IsAlphaNumeric(c_Change);
+ return IsAlphaNumeric(c_Change);
case L'X':
- return TRUE;
+ return TRUE;
default:
return (c_Change == c_Mask);
}
CFX_WideString CJS_PublicMethods::StrTrim(FX_LPCWSTR pStr)
{
- return StrRTrim(StrLTrim(pStr));
+ return StrRTrim(StrLTrim(pStr).c_str());
}
CFX_ByteString CJS_PublicMethods::StrLTrim(FX_LPCSTR pStr)
CFX_WideString swDigits;
while (p <= pEnd)
- {
+ {
c = *p;
if (IsDigit(c))
swDigits += c;
bDigitExist = TRUE;
}
- else
+ else
{
switch (c)
{
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;
StrArray.SetElement(nIndex, CJS_Value(isolate, StrTrim(pSub).c_str()));
delete []pSub;
-
+
nIndex ++;
p = ++pTemp;
}
-
+
}
return StrArray;
}
{
nRet = nRet * 10 + (c - '0');
nSkip = i - nStart + 1;
- if (nSkip >= nMaxStep)
+ if (nSkip >= nMaxStep)
break;
}
else
if (IsDigit((wchar_t)c))
{
number[nIndex++] = ParseStringInteger(value, i, nSkip, 4);
- i += nSkip;
+ i += nSkip;
}
else
{
CFX_WideString swTemp;
swTemp.Format(L"%d/%d/%d %d:%d:%d",nMonth,nDay,nYear,nHour,nMin,nSec);
- return JS_DateParse(swTemp);
+ return JS_DateParse(swTemp.c_str());
}
double CJS_PublicMethods::MakeRegularDate(const CFX_WideString & value, const CFX_WideString & format, FX_BOOL& bWrongFormat)
CFX_WideString sFullMonths = fullmonths[m];
sFullMonths.MakeLower();
- if (sFullMonths.Find(sMonth, 0) != -1)
+ if (sFullMonths.Find(sMonth.c_str(), 0) != -1)
{
nMonth = m + 1;
i += 4;
if (JS_PortIsNan(dRet))
{
- dRet = JS_DateParse(value);
+ dRet = JS_DateParse(value.c_str());
}
}
}
if(!pEvent->m_pValue)
return FALSE;
- CFX_WideString& Value = pEvent->Value();
+ CFX_WideString& Value = pEvent->Value();
CFX_ByteString strValue = StrTrim(CFX_ByteString::FromUnicode(Value));
-
+
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().c_str());
+ FX_BOOL bCurrencyPrepend = params[5].ToBool();
+
if (iDec < 0) iDec = -iDec;
-
+
if (iSepStyle < 0 || iSepStyle > 3)
iSepStyle = 0;
-
+
if (iNegStyle < 0 || iNegStyle > 3)
iNegStyle = 0;
-
-
+
+
//////////////////////////////////////////////////////
//for processing decimal places
strValue.Replace(",", ".");
double dValue = atof(strValue);
if (iDec > 0)
- dValue += DOUBLE_CORRECT;//
-
+ dValue += DOUBLE_CORRECT;
+
int iDec2;
- FX_BOOL bNagative = FALSE;
+ FX_BOOL bNegative = FALSE;
- strValue = fcvt(dValue,iDec,&iDec2,&bNagative);
+ strValue = fcvt(dValue,iDec,&iDec2,&bNegative);
if (strValue.IsEmpty())
{
dValue = 0;
- strValue = fcvt(dValue,iDec,&iDec2,&bNagative);
+ strValue = fcvt(dValue,iDec,&iDec2,&bNegative);
if (strValue.IsEmpty())
{
strValue = "0";
strValue = "0" + strValue;
}
iDec2 = 0;
-
+
}
int iMax = strValue.GetLength();
if (iDec2 > iMax)
{
strValue += "0";
}
- iMax = iDec2+1;
+ iMax = iDec2+1;
}
///////////////////////////////////////////////////////
//for processing seperator style
strValue.Insert(iDec2, ',');
iMax++;
}
-
+
if (iDec2 == 0)
strValue.Insert(iDec2, '0');
}
cSeperator = ',';
else
cSeperator = '.';
-
- int iDecPositive,iDecNagative;
+
+ int iDecPositive;
iDecPositive = iDec2;
- iDecNagative = iDec2;
-
+
for (iDecPositive = iDec2 -3; iDecPositive > 0;iDecPositive -= 3)
{
strValue.Insert(iDecPositive, cSeperator);
iMax++;
}
}
-
+
//////////////////////////////////////////////////////////////////////
//for processing currency string
Value = CFX_WideString::FromLocal(strValue);
-
- std::wstring strValue2(Value);
+ std::wstring strValue2 = Value.c_str();
if (bCurrencyPrepend)
strValue2 = wstrCurrency + strValue2;
else
strValue2 = strValue2 + wstrCurrency;
-
-
-
+
+
+
/////////////////////////////////////////////////////////////////////////
//for processing negative style
- if (bNagative)
+ if (bNegative)
{
if (iNegStyle == 0)
{
arColor.SetElement(1,vColElm);
vColElm = 0;
arColor.SetElement(2,vColElm);
-
+
arColor.SetElement(3,vColElm);
-
+
CJS_PropValue vProp(isolate);
vProp.StartGetting();
vProp<<arColor;
arColor.SetElement(1,vColElm);
arColor.SetElement(2,vColElm);
arColor.SetElement(3,vColElm);
-
+
CJS_PropValue vProp(isolate);
vProp.StartGetting();
fTarget->textColor(cc,vProp,sError);
-
+
CJS_Array aProp(isolate);
vProp.ConvertToArray(aProp);
ASSERT(pContext != NULL);
CJS_EventHandler* pEvent = pContext->GetEventHandler();
ASSERT(pEvent != NULL);
-
+
if(params.size() < 2)
return FALSE;
- int iSepStyle = params[1];
-
+ int iSepStyle = params[1].ToInt();
+
if (iSepStyle < 0 || iSepStyle > 3)
iSepStyle = 0;
if(!pEvent->m_pValue)
return FALSE;
- CFX_WideString & val = pEvent->Value();
+ CFX_WideString & val = pEvent->Value();
CFX_WideString & w_strChange = pEvent->Change();
CFX_WideString w_strValue = val;
if (pEvent->WillCommit())
{
CFX_WideString wstrChange = w_strChange;
- CFX_WideString wstrValue = StrLTrim(w_strValue);
+ CFX_WideString wstrValue = StrLTrim(w_strValue.c_str());
if (wstrValue.IsEmpty())
return TRUE;
-
+
CFX_WideString swTemp = wstrValue;
swTemp.Replace(L",", L".");
- if (!IsNumber(swTemp)) //!(IsNumber(wstrChange) &&
+ if (!IsNumber(swTemp.c_str()))
{
pEvent->Rc() = FALSE;
sError = JSGetStringFromID(pContext, IDS_STRING_JSAFNUMBER_KEYSTROKE);
- Alert(pContext, sError);
+ Alert(pContext, sError.c_str());
return TRUE;
}
return TRUE; // it happens after the last keystroke and before validating,
}
-
- std::wstring w_strValue2 (w_strValue);
- std::wstring w_strChange2(w_strChange);
-
+
+ std::wstring w_strValue2 = w_strValue.c_str();
+ std::wstring w_strChange2 = w_strChange.c_str();
std::wstring w_strSelected;
if(-1 != pEvent->SelStart())
w_strSelected = w_strValue2.substr(pEvent->SelStart(),(pEvent->SelEnd() - pEvent->SelStart()));
cSep = L',';
break;
}
-
+
FX_BOOL bHasSep = (w_strValue2.find(cSep) != -1);
for (std::wstring::iterator it = w_strChange2.begin(); it != w_strChange2.end(); it++)
{
bHasSign = TRUE;
continue;
}
-
+
if (!IsDigit(*it))
- {
+ {
FX_BOOL &bRc = pEvent->Rc();
bRc = FALSE;
return TRUE;
}
}
-
-
+
+
std::wstring w_prefix = w_strValue2.substr(0,pEvent->SelStart());
std::wstring w_postfix;
if (pEvent->SelEnd()<(int)w_strValue2.length())
w_strValue2 = w_prefix + w_strChange2 + w_postfix;
w_strValue = w_strValue2.c_str();
val = w_strValue;
- return TRUE;
-
+ return TRUE;
+
}
//function AFPercent_Format(nDec, sepStyle)
}
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);
dValue += DOUBLE_CORRECT;//УÕý
int iDec2;
- FX_BOOL bNagative = FALSE;
- strValue = fcvt(dValue,iDec,&iDec2,&bNagative);
+ FX_BOOL bNegative = FALSE;
+ strValue = fcvt(dValue,iDec,&iDec2,&bNegative);
if (strValue.IsEmpty())
{
dValue = 0;
- strValue = fcvt(dValue,iDec,&iDec2,&bNagative);
+ strValue = fcvt(dValue,iDec,&iDec2,&bNegative);
}
if (iDec2 < 0)
strValue = "0" + strValue;
}
iDec2 = 0;
-
+
}
int iMax = strValue.GetLength();
if (iDec2 > iMax)
{
strValue += "0";
}
- iMax = iDec2+1;
+ iMax = iDec2+1;
}
///////////////////////////////////////////////////////
//for processing seperator style
strValue.Insert(iDec2, ',');
iMax++;
}
-
+
if (iDec2 == 0)
strValue.Insert(iDec2, '0');
}
cSeperator = ',';
else
cSeperator = '.';
-
- int iDecPositive,iDecNagative;
+
+ int iDecPositive;
iDecPositive = iDec2;
- iDecNagative = iDec2;
-
+
for (iDecPositive = iDec2 -3; iDecPositive > 0; iDecPositive -= 3)
{
strValue.Insert(iDecPositive,cSeperator);
}
}
////////////////////////////////////////////////////////////////////
- //nagative mark
- if(bNagative)
+ //negative mark
+ if(bNegative)
strValue = "-" + strValue;
strValue += "%";
Value = CFX_WideString::FromLocal(strValue);
{
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;
if (JS_PortIsNan(dDate))
{
CFX_WideString swMsg;
- swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSPARSEDATE), sFormat.c_str());
- Alert(pContext, swMsg);
+ swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSPARSEDATE).c_str(), sFormat.c_str());
+ Alert(pContext, swMsg.c_str());
return FALSE;
}
-
- val = MakeFormatDate(dDate,sFormat);
+ val = MakeFormatDate(dDate,sFormat);
return TRUE;
}
{
FX_WCHAR c = strValue.GetAt(i);
if(c == L' ' || c == L':')
- {
+ {
wsArray.Add(sTemp);
sTemp = L"";
continue;
sTemp += c;
}
-
+
wsArray.Add(sTemp);
if(wsArray.GetSize() != 8)return 0;
if(sTemp.Compare(L"Nov") == 0) nMonth = 11;
if(sTemp.Compare(L"Dec") == 0) nMonth = 12;
- nDay = (int)ParseStringToNumber(wsArray[2]);
- nHour = (int)ParseStringToNumber(wsArray[3]);
- nMin = (int)ParseStringToNumber(wsArray[4]);
- nSec = (int)ParseStringToNumber(wsArray[5]);
- nYear = (int)ParseStringToNumber(wsArray[7]);
+ nDay = (int)ParseStringToNumber(wsArray[2].c_str());
+ nHour = (int)ParseStringToNumber(wsArray[3].c_str());
+ nMin = (int)ParseStringToNumber(wsArray[4].c_str());
+ nSec = (int)ParseStringToNumber(wsArray[5].c_str());
+ nYear = (int)ParseStringToNumber(wsArray[7].c_str());
double dRet = JS_MakeDate(JS_MakeDay(nYear,nMonth - 1,nDay),JS_MakeTime(nHour, nMin, nSec, 0));
if (JS_PortIsNan(dRet))
{
- dRet = JS_DateParse(strValue);
+ dRet = JS_DateParse(strValue.c_str());
}
-
+
return dRet;
}
{
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))
{
CFX_WideString swMsg;
- swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSPARSEDATE), sFormat.c_str());
- Alert(pContext, swMsg);
+ swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSPARSEDATE).c_str(), sFormat.c_str());
+ Alert(pContext, swMsg.c_str());
pEvent->Rc() = FALSE;
return TRUE;
}
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" };
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" };
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));
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));
}
std::string cFormat;
- int iIndex = params[0];
+ int iIndex = params[0].ToInt();
CJS_EventHandler* pEvent = pContext->GetEventHandler();
ASSERT(pEvent != NULL);
if(!pEvent->m_pValue)
return FALSE;
- CFX_WideString& Value = pEvent->Value();
+ CFX_WideString& Value = pEvent->Value();
std::string strSrc = CFX_ByteString::FromUnicode(Value).c_str();
-
- switch (iIndex)
+
+ switch (iIndex)
{
- case 0:
+ case 0:
cFormat = "99999";
break;
- case 1:
+ case 1:
cFormat = "99999-9999";
break;
- case 2:
+ case 2:
{
std::string NumberStr;
- util::printx("9999999999", strSrc,NumberStr);
+ util::printx("9999999999", strSrc,NumberStr);
if (NumberStr.length() >= 10 )
cFormat = "(999) 999-9999";
- else
+ else
cFormat = "999-9999";
break;
}
cFormat = "999-99-9999";
break;
}
-
+
std::string strDes;
util::printx(cFormat,strSrc,strDes);
Value = CFX_WideString::FromLocal(strDes.c_str());
return FALSE;
CFX_WideString& valEvent = pEvent->Value();
- CFX_WideString wstrMask = params[0].operator CFX_WideString();
- if (wstrMask.IsEmpty()) return TRUE;
-
- std::wstring wstrValue(valEvent);
-
+ CFX_WideString wstrMask = params[0].ToCFXWideString();
+ if (wstrMask.IsEmpty())
+ return TRUE;
+
+ std::wstring wstrValue = valEvent.c_str();
+
if (pEvent->WillCommit())
{
if (wstrValue.empty())
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++;
}
if (iIndexMask != wstrMask.GetLength() || (iIndexMask != wstrValue.size() && wstrMask.GetLength() != 0))
{
- Alert(pContext, JSGetStringFromID(pContext, IDS_STRING_JSAFNUMBER_KEYSTROKE));
+ Alert(pContext, JSGetStringFromID(pContext, IDS_STRING_JSAFNUMBER_KEYSTROKE).c_str());
pEvent->Rc() = FALSE;
}
return TRUE;
}
-
CFX_WideString &wideChange = pEvent->Change();
- std::wstring wChange(wideChange);
-
+ std::wstring wChange = wideChange.c_str();
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));
+ Alert(pContext, JSGetStringFromID(pContext, IDS_STRING_JSPARAM_TOOLONG).c_str());
pEvent->Rc() = FALSE;
return TRUE;
}
-
-
+
if (iIndexMask >= wstrMask.GetLength() && (!wChange.empty()))
{
- Alert(pContext, JSGetStringFromID(pContext, IDS_STRING_JSPARAM_TOOLONG));
+ Alert(pContext, JSGetStringFromID(pContext, IDS_STRING_JSPARAM_TOOLONG).c_str());
pEvent->Rc() = FALSE;
return TRUE;
}
-
+
for (std::wstring::iterator it = wChange.begin(); it != wChange.end(); it++)
{
if (iIndexMask >= wstrMask.GetLength())
{
- Alert(pContext, JSGetStringFromID(pContext, IDS_STRING_JSPARAM_TOOLONG));
+ Alert(pContext, JSGetStringFromID(pContext, IDS_STRING_JSPARAM_TOOLONG).c_str());
pEvent->Rc() = FALSE;
return TRUE;
}
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;
}
}
std::string cFormat;
- int iIndex = (int)params[0];
+ int iIndex = params[0].ToInt();
if(!pEvent->m_pValue)
return FALSE;
//CJS_Value val = pEvent->Value();
CFX_WideString& val = pEvent->Value();
std::string strSrc = CFX_ByteString::FromUnicode(val).c_str();
- std::wstring wstrChange(pEvent->Change());
-
- switch (iIndex)
+ std::wstring wstrChange = pEvent->Change().c_str();
+
+ switch (iIndex)
{
- case 0:
+ case 0:
cFormat = "99999";
break;
- case 1:
+ case 1:
//cFormat = "99999-9999";
cFormat = "999999999";
break;
- case 2:
+ case 2:
{
std::string NumberStr;
- util::printx("9999999999", strSrc,NumberStr);
+ util::printx("9999999999", strSrc,NumberStr);
if (strSrc.length() + wstrChange.length() > 7 )
//cFormat = "(999) 999-9999";
cFormat = "9999999999";
- else
+ else
//cFormat = "999-9999";
cFormat = "9999999";
break;
cFormat = "999999999";
break;
}
-
+
CJS_Parameters params2;
CJS_Value vMask(isolate, cFormat.c_str());
params2.push_back(vMask);
-
+
return AFSpecial_KeystrokeEx(cc,params2,vRet,sError);
}
if (pEventHandler->WillCommit())
{
- vRet = swValue;
+ vRet = swValue.c_str();
return TRUE;
}
postfix = swValue.Mid(pEventHandler->SelEnd(), swValue.GetLength() - pEventHandler->SelEnd());
else postfix = L"";
- vRet = prefix + pEventHandler->Change() + postfix;
+ vRet = (prefix + pEventHandler->Change() + postfix).c_str();
return TRUE;
}
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);
if (JS_PortIsNan(dDate))
{
CFX_WideString swMsg;
- swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSPARSEDATE), sFormat.c_str());
- Alert((CJS_Context *)cc, swMsg);
+ swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSPARSEDATE).c_str(), sFormat.c_str());
+ Alert((CJS_Context *)cc, swMsg.c_str());
return FALSE;
}
-
- vRet = dDate;
+ vRet = dDate;
return TRUE;
}
return FALSE;
}
- vRet = (double)AF_Simple(params[0].operator CFX_WideString(), (double)params[1], (double)params[2]);
+ vRet = (double)AF_Simple(params[0].ToCFXWideString().c_str(), params[1].ToDouble(), params[2].ToDouble());
return TRUE;
}
sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
return FALSE;
}
- vRet = ParseStringToNumber(params[0].operator CFX_WideString());
+ vRet = ParseStringToNumber(params[0].ToCFXWideString().c_str());
return TRUE;
}
sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
return FALSE;
}
-
+
CPDFSDK_Document* pReaderDoc = pContext->GetReaderDocument();
ASSERT(pReaderDoc != NULL);
ASSERT(pInterForm != NULL);
double dValue;
- CFX_WideString sFunction = params[0].operator CFX_WideString();
- if (wcscmp(sFunction, L"PRD") == 0)
+ CFX_WideString sFunction = params[0].ToCFXWideString();
+ if (wcscmp(sFunction.c_str(), L"PRD") == 0)
dValue = 1.0;
else
dValue = 0.0;
{
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++)
{
case FIELDTYPE_TEXTFIELD:
case FIELDTYPE_COMBOBOX:
{
- dTemp = ParseStringToNumber(pFormField->GetValue());
+ dTemp = ParseStringToNumber(pFormField->GetValue().c_str());
break;
}
case FIELDTYPE_PUSHBUTTON:
{
if (pFormCtrl->IsChecked())
{
- dTemp += ParseStringToNumber(pFormCtrl->GetExportValue());
+ dTemp += ParseStringToNumber(pFormCtrl->GetExportValue().c_str());
break;
}
else
break;
else
{
- dTemp = ParseStringToNumber(pFormField->GetValue());
+ dTemp = ParseStringToNumber(pFormField->GetValue().c_str());
break;
}
}
break;
}
- if (i == 0 && j == 0 && (wcscmp(sFunction,L"MIN") == 0 || wcscmp(sFunction, L"MAX") == 0))
+ if (i == 0 && j == 0 && (wcscmp(sFunction.c_str(), L"MIN") == 0 || wcscmp(sFunction.c_str(), L"MAX") == 0))
dValue = dTemp;
- dValue = AF_Simple(sFunction, dValue, dTemp);
+ dValue = AF_Simple(sFunction.c_str(), dValue, dTemp);
nFieldsCount++;
}
}
}
- if (wcscmp(sFunction, L"AVG") == 0 && nFieldsCount > 0)
+ if (wcscmp(sFunction.c_str(), L"AVG") == 0 && nFieldsCount > 0)
dValue /= nFieldsCount;
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;
}
-/* This function validates the current event to ensure that its value is
+/* This function validates the current event to ensure that its value is
** within the specified range. */
FX_BOOL CJS_PublicMethods::AFRange_Validate(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
CJS_EventHandler* pEvent = pContext->GetEventHandler();
ASSERT(pEvent != NULL);
- if (params.size() != 4)
+ if (params.size() != 4)
{
sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
return FALSE;
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).c_str(),
+ 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).c_str(),
+ 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).c_str(),
+ params[3].ToCFXWideString().c_str());
}
if (!swMsg.IsEmpty())
{
- Alert(pContext, swMsg);
+ Alert(pContext, swMsg.c_str());
pEvent->Rc() = FALSE;
}
return TRUE;
CJS_Context* pContext = (CJS_Context*)cc;
ASSERT(pContext != NULL);
- if (params.size() != 1)
+ if (params.size() != 1)
{
sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
return FALSE;
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',')
if (sPart.GetLength() > 0)
{
- nums.SetElement(nIndex,CJS_Value(isolate,sPart.c_str()));
+ nums.SetElement(nIndex,CJS_Value(isolate,sPart.c_str()));
}
if (nums.GetLength() > 0)