OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "PublicMethods.h" | 7 #include "PublicMethods.h" |
8 | 8 |
9 #include "Field.h" | 9 #include "Field.h" |
10 #include "JS_Context.h" | 10 #include "JS_Context.h" |
(...skipping 1078 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1089 } | 1089 } |
1090 | 1090 |
1091 // function AFNumber_Keystroke(nDec, sepStyle, negStyle, currStyle, strCurrency, | 1091 // function AFNumber_Keystroke(nDec, sepStyle, negStyle, currStyle, strCurrency, |
1092 // bCurrencyPrepend) | 1092 // bCurrencyPrepend) |
1093 FX_BOOL CJS_PublicMethods::AFNumber_Keystroke( | 1093 FX_BOOL CJS_PublicMethods::AFNumber_Keystroke( |
1094 IJS_Context* cc, | 1094 IJS_Context* cc, |
1095 const std::vector<CJS_Value>& params, | 1095 const std::vector<CJS_Value>& params, |
1096 CJS_Value& vRet, | 1096 CJS_Value& vRet, |
1097 CFX_WideString& sError) { | 1097 CFX_WideString& sError) { |
1098 CJS_Context* pContext = (CJS_Context*)cc; | 1098 CJS_Context* pContext = (CJS_Context*)cc; |
1099 ASSERT(pContext != NULL); | |
1100 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 1099 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
1101 ASSERT(pEvent != NULL); | |
1102 | 1100 |
1103 if (params.size() < 2) | 1101 if (params.size() < 2) |
1104 return FALSE; | 1102 return FALSE; |
1105 int iSepStyle = params[1].ToInt(); | 1103 int iSepStyle = params[1].ToInt(); |
1106 | 1104 |
1107 if (iSepStyle < 0 || iSepStyle > 3) | 1105 if (iSepStyle < 0 || iSepStyle > 3) |
1108 iSepStyle = 0; | 1106 iSepStyle = 0; |
1109 if (!pEvent->m_pValue) | 1107 if (!pEvent->m_pValue) |
1110 return FALSE; | 1108 return FALSE; |
1111 CFX_WideString& val = pEvent->Value(); | 1109 CFX_WideString& val = pEvent->Value(); |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1210 } | 1208 } |
1211 | 1209 |
1212 // function AFPercent_Format(nDec, sepStyle) | 1210 // function AFPercent_Format(nDec, sepStyle) |
1213 FX_BOOL CJS_PublicMethods::AFPercent_Format( | 1211 FX_BOOL CJS_PublicMethods::AFPercent_Format( |
1214 IJS_Context* cc, | 1212 IJS_Context* cc, |
1215 const std::vector<CJS_Value>& params, | 1213 const std::vector<CJS_Value>& params, |
1216 CJS_Value& vRet, | 1214 CJS_Value& vRet, |
1217 CFX_WideString& sError) { | 1215 CFX_WideString& sError) { |
1218 #if _FX_OS_ != _FX_ANDROID_ | 1216 #if _FX_OS_ != _FX_ANDROID_ |
1219 CJS_Context* pContext = (CJS_Context*)cc; | 1217 CJS_Context* pContext = (CJS_Context*)cc; |
1220 ASSERT(pContext != NULL); | |
1221 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 1218 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
1222 ASSERT(pEvent != NULL); | |
1223 | 1219 |
1224 if (params.size() != 2) { | 1220 if (params.size() != 2) { |
1225 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); | 1221 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); |
1226 return FALSE; | 1222 return FALSE; |
1227 } | 1223 } |
1228 if (!pEvent->m_pValue) | 1224 if (!pEvent->m_pValue) |
1229 return FALSE; | 1225 return FALSE; |
1230 | 1226 |
1231 CFX_WideString& Value = pEvent->Value(); | 1227 CFX_WideString& Value = pEvent->Value(); |
1232 CFX_ByteString strValue = StrTrim(CFX_ByteString::FromUnicode(Value)); | 1228 CFX_ByteString strValue = StrTrim(CFX_ByteString::FromUnicode(Value)); |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1312 CFX_WideString& sError) { | 1308 CFX_WideString& sError) { |
1313 return AFNumber_Keystroke(cc, params, vRet, sError); | 1309 return AFNumber_Keystroke(cc, params, vRet, sError); |
1314 } | 1310 } |
1315 | 1311 |
1316 // function AFDate_FormatEx(cFormat) | 1312 // function AFDate_FormatEx(cFormat) |
1317 FX_BOOL CJS_PublicMethods::AFDate_FormatEx(IJS_Context* cc, | 1313 FX_BOOL CJS_PublicMethods::AFDate_FormatEx(IJS_Context* cc, |
1318 const std::vector<CJS_Value>& params, | 1314 const std::vector<CJS_Value>& params, |
1319 CJS_Value& vRet, | 1315 CJS_Value& vRet, |
1320 CFX_WideString& sError) { | 1316 CFX_WideString& sError) { |
1321 CJS_Context* pContext = (CJS_Context*)cc; | 1317 CJS_Context* pContext = (CJS_Context*)cc; |
1322 ASSERT(pContext != NULL); | |
1323 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 1318 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
1324 ASSERT(pEvent != NULL); | |
1325 | 1319 |
1326 if (params.size() != 1) { | 1320 if (params.size() != 1) { |
1327 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); | 1321 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); |
1328 return FALSE; | 1322 return FALSE; |
1329 } | 1323 } |
1330 if (!pEvent->m_pValue) | 1324 if (!pEvent->m_pValue) |
1331 return FALSE; | 1325 return FALSE; |
1332 | 1326 |
1333 CFX_WideString& val = pEvent->Value(); | 1327 CFX_WideString& val = pEvent->Value(); |
1334 CFX_WideString strValue = val; | 1328 CFX_WideString strValue = val; |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1429 return dRet; | 1423 return dRet; |
1430 } | 1424 } |
1431 | 1425 |
1432 // AFDate_KeystrokeEx(cFormat) | 1426 // AFDate_KeystrokeEx(cFormat) |
1433 FX_BOOL CJS_PublicMethods::AFDate_KeystrokeEx( | 1427 FX_BOOL CJS_PublicMethods::AFDate_KeystrokeEx( |
1434 IJS_Context* cc, | 1428 IJS_Context* cc, |
1435 const std::vector<CJS_Value>& params, | 1429 const std::vector<CJS_Value>& params, |
1436 CJS_Value& vRet, | 1430 CJS_Value& vRet, |
1437 CFX_WideString& sError) { | 1431 CFX_WideString& sError) { |
1438 CJS_Context* pContext = (CJS_Context*)cc; | 1432 CJS_Context* pContext = (CJS_Context*)cc; |
1439 ASSERT(pContext != NULL); | |
1440 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 1433 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
1441 ASSERT(pEvent != NULL); | |
1442 | 1434 |
1443 if (params.size() != 1) { | 1435 if (params.size() != 1) { |
1444 sError = L"AFDate_KeystrokeEx's parameters' size r not correct"; | 1436 sError = L"AFDate_KeystrokeEx's parameters' size r not correct"; |
1445 return FALSE; | 1437 return FALSE; |
1446 } | 1438 } |
1447 | 1439 |
1448 if (pEvent->WillCommit()) { | 1440 if (pEvent->WillCommit()) { |
1449 if (!pEvent->m_pValue) | 1441 if (!pEvent->m_pValue) |
1450 return FALSE; | 1442 return FALSE; |
1451 CFX_WideString strValue = pEvent->Value(); | 1443 CFX_WideString strValue = pEvent->Value(); |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1602 return AFDate_KeystrokeEx(cc, params, vRet, sError); | 1594 return AFDate_KeystrokeEx(cc, params, vRet, sError); |
1603 } | 1595 } |
1604 | 1596 |
1605 // function AFSpecial_Format(psf) | 1597 // function AFSpecial_Format(psf) |
1606 FX_BOOL CJS_PublicMethods::AFSpecial_Format( | 1598 FX_BOOL CJS_PublicMethods::AFSpecial_Format( |
1607 IJS_Context* cc, | 1599 IJS_Context* cc, |
1608 const std::vector<CJS_Value>& params, | 1600 const std::vector<CJS_Value>& params, |
1609 CJS_Value& vRet, | 1601 CJS_Value& vRet, |
1610 CFX_WideString& sError) { | 1602 CFX_WideString& sError) { |
1611 CJS_Context* pContext = (CJS_Context*)cc; | 1603 CJS_Context* pContext = (CJS_Context*)cc; |
1612 ASSERT(pContext != NULL); | |
1613 | 1604 |
1614 if (params.size() != 1) { | 1605 if (params.size() != 1) { |
1615 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); | 1606 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); |
1616 return FALSE; | 1607 return FALSE; |
1617 } | 1608 } |
1618 | 1609 |
1619 std::string cFormat; | 1610 std::string cFormat; |
1620 int iIndex = params[0].ToInt(); | 1611 int iIndex = params[0].ToInt(); |
1621 | 1612 |
1622 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 1613 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
1623 ASSERT(pEvent != NULL); | |
1624 | |
1625 if (!pEvent->m_pValue) | 1614 if (!pEvent->m_pValue) |
1626 return FALSE; | 1615 return FALSE; |
1627 CFX_WideString& Value = pEvent->Value(); | 1616 CFX_WideString& Value = pEvent->Value(); |
1628 std::string strSrc = CFX_ByteString::FromUnicode(Value).c_str(); | 1617 std::string strSrc = CFX_ByteString::FromUnicode(Value).c_str(); |
1629 | 1618 |
1630 switch (iIndex) { | 1619 switch (iIndex) { |
1631 case 0: | 1620 case 0: |
1632 cFormat = "99999"; | 1621 cFormat = "99999"; |
1633 break; | 1622 break; |
1634 case 1: | 1623 case 1: |
(...skipping 19 matching lines...) Expand all Loading... |
1654 return TRUE; | 1643 return TRUE; |
1655 } | 1644 } |
1656 | 1645 |
1657 // function AFSpecial_KeystrokeEx(mask) | 1646 // function AFSpecial_KeystrokeEx(mask) |
1658 FX_BOOL CJS_PublicMethods::AFSpecial_KeystrokeEx( | 1647 FX_BOOL CJS_PublicMethods::AFSpecial_KeystrokeEx( |
1659 IJS_Context* cc, | 1648 IJS_Context* cc, |
1660 const std::vector<CJS_Value>& params, | 1649 const std::vector<CJS_Value>& params, |
1661 CJS_Value& vRet, | 1650 CJS_Value& vRet, |
1662 CFX_WideString& sError) { | 1651 CFX_WideString& sError) { |
1663 CJS_Context* pContext = (CJS_Context*)cc; | 1652 CJS_Context* pContext = (CJS_Context*)cc; |
1664 ASSERT(pContext != NULL); | |
1665 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 1653 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
1666 | 1654 |
1667 ASSERT(pEvent != NULL); | |
1668 | |
1669 if (params.size() < 1) { | 1655 if (params.size() < 1) { |
1670 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); | 1656 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); |
1671 return FALSE; | 1657 return FALSE; |
1672 } | 1658 } |
1673 | 1659 |
1674 if (!pEvent->m_pValue) | 1660 if (!pEvent->m_pValue) |
1675 return FALSE; | 1661 return FALSE; |
1676 CFX_WideString& valEvent = pEvent->Value(); | 1662 CFX_WideString& valEvent = pEvent->Value(); |
1677 | 1663 |
1678 CFX_WideString wstrMask = params[0].ToCFXWideString(); | 1664 CFX_WideString wstrMask = params[0].ToCFXWideString(); |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1798 std::vector<CJS_Value> params2; | 1784 std::vector<CJS_Value> params2; |
1799 params2.push_back(CJS_Value(CJS_Runtime::FromContext(cc), cFormat.c_str())); | 1785 params2.push_back(CJS_Value(CJS_Runtime::FromContext(cc), cFormat.c_str())); |
1800 return AFSpecial_KeystrokeEx(cc, params2, vRet, sError); | 1786 return AFSpecial_KeystrokeEx(cc, params2, vRet, sError); |
1801 } | 1787 } |
1802 | 1788 |
1803 FX_BOOL CJS_PublicMethods::AFMergeChange(IJS_Context* cc, | 1789 FX_BOOL CJS_PublicMethods::AFMergeChange(IJS_Context* cc, |
1804 const std::vector<CJS_Value>& params, | 1790 const std::vector<CJS_Value>& params, |
1805 CJS_Value& vRet, | 1791 CJS_Value& vRet, |
1806 CFX_WideString& sError) { | 1792 CFX_WideString& sError) { |
1807 CJS_Context* pContext = (CJS_Context*)cc; | 1793 CJS_Context* pContext = (CJS_Context*)cc; |
1808 ASSERT(pContext != NULL); | |
1809 CJS_EventHandler* pEventHandler = pContext->GetEventHandler(); | 1794 CJS_EventHandler* pEventHandler = pContext->GetEventHandler(); |
1810 ASSERT(pEventHandler != NULL); | |
1811 | 1795 |
1812 if (params.size() != 1) { | 1796 if (params.size() != 1) { |
1813 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); | 1797 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); |
1814 return FALSE; | 1798 return FALSE; |
1815 } | 1799 } |
1816 | 1800 |
1817 CFX_WideString swValue; | 1801 CFX_WideString swValue; |
1818 if (pEventHandler->m_pValue) | 1802 if (pEventHandler->m_pValue) |
1819 swValue = pEventHandler->Value(); | 1803 swValue = pEventHandler->Value(); |
1820 | 1804 |
(...skipping 19 matching lines...) Expand all Loading... |
1840 vRet = (prefix + pEventHandler->Change() + postfix).c_str(); | 1824 vRet = (prefix + pEventHandler->Change() + postfix).c_str(); |
1841 | 1825 |
1842 return TRUE; | 1826 return TRUE; |
1843 } | 1827 } |
1844 | 1828 |
1845 FX_BOOL CJS_PublicMethods::AFParseDateEx(IJS_Context* cc, | 1829 FX_BOOL CJS_PublicMethods::AFParseDateEx(IJS_Context* cc, |
1846 const std::vector<CJS_Value>& params, | 1830 const std::vector<CJS_Value>& params, |
1847 CJS_Value& vRet, | 1831 CJS_Value& vRet, |
1848 CFX_WideString& sError) { | 1832 CFX_WideString& sError) { |
1849 CJS_Context* pContext = (CJS_Context*)cc; | 1833 CJS_Context* pContext = (CJS_Context*)cc; |
1850 ASSERT(pContext != NULL); | 1834 ASSERT(pContext); |
1851 | 1835 |
1852 if (params.size() != 2) { | 1836 if (params.size() != 2) { |
1853 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); | 1837 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); |
1854 return FALSE; | 1838 return FALSE; |
1855 } | 1839 } |
1856 | 1840 |
1857 CFX_WideString sValue = params[0].ToCFXWideString(); | 1841 CFX_WideString sValue = params[0].ToCFXWideString(); |
1858 CFX_WideString sFormat = params[1].ToCFXWideString(); | 1842 CFX_WideString sFormat = params[1].ToCFXWideString(); |
1859 | 1843 |
1860 FX_BOOL bWrongFormat = FALSE; | 1844 FX_BOOL bWrongFormat = FALSE; |
(...skipping 10 matching lines...) Expand all Loading... |
1871 vRet = dDate; | 1855 vRet = dDate; |
1872 return TRUE; | 1856 return TRUE; |
1873 } | 1857 } |
1874 | 1858 |
1875 FX_BOOL CJS_PublicMethods::AFSimple(IJS_Context* cc, | 1859 FX_BOOL CJS_PublicMethods::AFSimple(IJS_Context* cc, |
1876 const std::vector<CJS_Value>& params, | 1860 const std::vector<CJS_Value>& params, |
1877 CJS_Value& vRet, | 1861 CJS_Value& vRet, |
1878 CFX_WideString& sError) { | 1862 CFX_WideString& sError) { |
1879 if (params.size() != 3) { | 1863 if (params.size() != 3) { |
1880 CJS_Context* pContext = (CJS_Context*)cc; | 1864 CJS_Context* pContext = (CJS_Context*)cc; |
1881 ASSERT(pContext != NULL); | 1865 ASSERT(pContext); |
1882 | 1866 |
1883 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); | 1867 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); |
1884 return FALSE; | 1868 return FALSE; |
1885 } | 1869 } |
1886 | 1870 |
1887 vRet = (double)AF_Simple(params[0].ToCFXWideString().c_str(), | 1871 vRet = (double)AF_Simple(params[0].ToCFXWideString().c_str(), |
1888 params[1].ToDouble(), params[2].ToDouble()); | 1872 params[1].ToDouble(), params[2].ToDouble()); |
1889 return TRUE; | 1873 return TRUE; |
1890 } | 1874 } |
1891 | 1875 |
1892 FX_BOOL CJS_PublicMethods::AFMakeNumber(IJS_Context* cc, | 1876 FX_BOOL CJS_PublicMethods::AFMakeNumber(IJS_Context* cc, |
1893 const std::vector<CJS_Value>& params, | 1877 const std::vector<CJS_Value>& params, |
1894 CJS_Value& vRet, | 1878 CJS_Value& vRet, |
1895 CFX_WideString& sError) { | 1879 CFX_WideString& sError) { |
1896 if (params.size() != 1) { | 1880 if (params.size() != 1) { |
1897 CJS_Context* pContext = (CJS_Context*)cc; | 1881 CJS_Context* pContext = (CJS_Context*)cc; |
1898 ASSERT(pContext != NULL); | 1882 ASSERT(pContext); |
1899 | 1883 |
1900 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); | 1884 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); |
1901 return FALSE; | 1885 return FALSE; |
1902 } | 1886 } |
1903 vRet = ParseStringToNumber(params[0].ToCFXWideString().c_str()); | 1887 vRet = ParseStringToNumber(params[0].ToCFXWideString().c_str()); |
1904 return TRUE; | 1888 return TRUE; |
1905 } | 1889 } |
1906 | 1890 |
1907 FX_BOOL CJS_PublicMethods::AFSimple_Calculate( | 1891 FX_BOOL CJS_PublicMethods::AFSimple_Calculate( |
1908 IJS_Context* cc, | 1892 IJS_Context* cc, |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2004 | 1988 |
2005 /* This function validates the current event to ensure that its value is | 1989 /* This function validates the current event to ensure that its value is |
2006 ** within the specified range. */ | 1990 ** within the specified range. */ |
2007 | 1991 |
2008 FX_BOOL CJS_PublicMethods::AFRange_Validate( | 1992 FX_BOOL CJS_PublicMethods::AFRange_Validate( |
2009 IJS_Context* cc, | 1993 IJS_Context* cc, |
2010 const std::vector<CJS_Value>& params, | 1994 const std::vector<CJS_Value>& params, |
2011 CJS_Value& vRet, | 1995 CJS_Value& vRet, |
2012 CFX_WideString& sError) { | 1996 CFX_WideString& sError) { |
2013 CJS_Context* pContext = (CJS_Context*)cc; | 1997 CJS_Context* pContext = (CJS_Context*)cc; |
2014 ASSERT(pContext != NULL); | |
2015 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 1998 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
2016 ASSERT(pEvent != NULL); | |
2017 | 1999 |
2018 if (params.size() != 4) { | 2000 if (params.size() != 4) { |
2019 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); | 2001 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); |
2020 return FALSE; | 2002 return FALSE; |
2021 } | 2003 } |
2022 | 2004 |
2023 if (!pEvent->m_pValue) | 2005 if (!pEvent->m_pValue) |
2024 return FALSE; | 2006 return FALSE; |
2025 if (pEvent->Value().IsEmpty()) | 2007 if (pEvent->Value().IsEmpty()) |
2026 return TRUE; | 2008 return TRUE; |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2090 nums.SetElement(nIndex, CJS_Value(pRuntime, sPart.c_str())); | 2072 nums.SetElement(nIndex, CJS_Value(pRuntime, sPart.c_str())); |
2091 } | 2073 } |
2092 | 2074 |
2093 if (nums.GetLength() > 0) | 2075 if (nums.GetLength() > 0) |
2094 vRet = nums; | 2076 vRet = nums; |
2095 else | 2077 else |
2096 vRet.SetNull(); | 2078 vRet.SetNull(); |
2097 | 2079 |
2098 return TRUE; | 2080 return TRUE; |
2099 } | 2081 } |
OLD | NEW |