| 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 "xfa/fxfa/parser/xfa_script_hostpseudomodel.h" | 7 #include "xfa/fxfa/parser/xfa_script_hostpseudomodel.h" |
| 8 | 8 |
| 9 #include "xfa/fxfa/app/xfa_ffnotify.h" | 9 #include "xfa/fxfa/app/xfa_ffnotify.h" |
| 10 #include "xfa/fxfa/parser/xfa_doclayout.h" | 10 #include "xfa/fxfa/parser/xfa_doclayout.h" |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 : CXFA_OrdinaryObject(pDocument, XFA_ELEMENT_HostPseudoModel) { | 31 : CXFA_OrdinaryObject(pDocument, XFA_ELEMENT_HostPseudoModel) { |
| 32 m_uScriptHash = XFA_HASHCODE_Host; | 32 m_uScriptHash = XFA_HASHCODE_Host; |
| 33 } | 33 } |
| 34 CScript_HostPseudoModel::~CScript_HostPseudoModel() {} | 34 CScript_HostPseudoModel::~CScript_HostPseudoModel() {} |
| 35 void CScript_HostPseudoModel::Script_HostPseudoModel_LoadString( | 35 void CScript_HostPseudoModel::Script_HostPseudoModel_LoadString( |
| 36 CFXJSE_Value* pValue, | 36 CFXJSE_Value* pValue, |
| 37 CXFA_FFNotify* pNotify, | 37 CXFA_FFNotify* pNotify, |
| 38 uint32_t dwFlag) { | 38 uint32_t dwFlag) { |
| 39 CFX_WideString wsValue; | 39 CFX_WideString wsValue; |
| 40 pNotify->GetAppProvider()->LoadString(dwFlag, wsValue); | 40 pNotify->GetAppProvider()->LoadString(dwFlag, wsValue); |
| 41 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsValue).AsStringC()); | 41 pValue->SetString(FX_UTF8Encode(wsValue).AsStringC()); |
| 42 } | 42 } |
| 43 void CScript_HostPseudoModel::Script_HostPseudoModel_AppType( | 43 void CScript_HostPseudoModel::Script_HostPseudoModel_AppType( |
| 44 CFXJSE_Value* pValue, | 44 CFXJSE_Value* pValue, |
| 45 FX_BOOL bSetting, | 45 FX_BOOL bSetting, |
| 46 XFA_ATTRIBUTE eAttribute) { | 46 XFA_ATTRIBUTE eAttribute) { |
| 47 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); | 47 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); |
| 48 if (!pNotify) { | 48 if (!pNotify) { |
| 49 return; | 49 return; |
| 50 } | 50 } |
| 51 if (bSetting) { | 51 if (bSetting) { |
| 52 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 52 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 53 return; | 53 return; |
| 54 } | 54 } |
| 55 CFX_WideString wsAppType; | 55 CFX_WideString wsAppType; |
| 56 pNotify->GetAppProvider()->GetAppType(wsAppType); | 56 pNotify->GetAppProvider()->GetAppType(wsAppType); |
| 57 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsAppType).AsStringC()); | 57 pValue->SetString(FX_UTF8Encode(wsAppType).AsStringC()); |
| 58 } | 58 } |
| 59 void CScript_HostPseudoModel::Script_HostPseudoModel_FoxitAppType( | 59 void CScript_HostPseudoModel::Script_HostPseudoModel_FoxitAppType( |
| 60 CFXJSE_Value* pValue, | 60 CFXJSE_Value* pValue, |
| 61 FX_BOOL bSetting, | 61 FX_BOOL bSetting, |
| 62 XFA_ATTRIBUTE eAttribute) { | 62 XFA_ATTRIBUTE eAttribute) { |
| 63 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); | 63 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); |
| 64 if (!pNotify) { | 64 if (!pNotify) { |
| 65 return; | 65 return; |
| 66 } | 66 } |
| 67 if (bSetting) { | 67 if (bSetting) { |
| 68 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 68 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 69 return; | 69 return; |
| 70 } | 70 } |
| 71 CFX_WideString wsAppType; | 71 CFX_WideString wsAppType; |
| 72 pNotify->GetAppProvider()->GetFoxitAppType(wsAppType); | 72 pNotify->GetAppProvider()->GetFoxitAppType(wsAppType); |
| 73 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsAppType).AsStringC()); | 73 pValue->SetString(FX_UTF8Encode(wsAppType).AsStringC()); |
| 74 } | 74 } |
| 75 void CScript_HostPseudoModel::Script_HostPseudoModel_CalculationsEnabled( | 75 void CScript_HostPseudoModel::Script_HostPseudoModel_CalculationsEnabled( |
| 76 CFXJSE_Value* pValue, | 76 CFXJSE_Value* pValue, |
| 77 FX_BOOL bSetting, | 77 FX_BOOL bSetting, |
| 78 XFA_ATTRIBUTE eAttribute) { | 78 XFA_ATTRIBUTE eAttribute) { |
| 79 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); | 79 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); |
| 80 if (!pNotify) { | 80 if (!pNotify) { |
| 81 return; | 81 return; |
| 82 } | 82 } |
| 83 CXFA_FFDoc* hDoc = pNotify->GetHDOC(); | 83 CXFA_FFDoc* hDoc = pNotify->GetHDOC(); |
| 84 if (bSetting) { | 84 if (bSetting) { |
| 85 pNotify->GetDocProvider()->SetCalculationsEnabled( | 85 pNotify->GetDocProvider()->SetCalculationsEnabled(hDoc, |
| 86 hDoc, FXJSE_Value_ToBoolean(pValue)); | 86 pValue->ToBoolean()); |
| 87 return; | 87 return; |
| 88 } | 88 } |
| 89 FX_BOOL bEnabled = pNotify->GetDocProvider()->IsCalculationsEnabled(hDoc); | 89 pValue->SetBoolean(pNotify->GetDocProvider()->IsCalculationsEnabled(hDoc)); |
| 90 FXJSE_Value_SetBoolean(pValue, bEnabled); | |
| 91 } | 90 } |
| 92 void CScript_HostPseudoModel::Script_HostPseudoModel_CurrentPage( | 91 void CScript_HostPseudoModel::Script_HostPseudoModel_CurrentPage( |
| 93 CFXJSE_Value* pValue, | 92 CFXJSE_Value* pValue, |
| 94 FX_BOOL bSetting, | 93 FX_BOOL bSetting, |
| 95 XFA_ATTRIBUTE eAttribute) { | 94 XFA_ATTRIBUTE eAttribute) { |
| 96 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); | 95 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); |
| 97 if (!pNotify) { | 96 if (!pNotify) { |
| 98 return; | 97 return; |
| 99 } | 98 } |
| 100 CXFA_FFDoc* hDoc = pNotify->GetHDOC(); | 99 CXFA_FFDoc* hDoc = pNotify->GetHDOC(); |
| 101 if (bSetting) { | 100 if (bSetting) { |
| 102 pNotify->GetDocProvider()->SetCurrentPage(hDoc, | 101 pNotify->GetDocProvider()->SetCurrentPage(hDoc, pValue->ToInteger()); |
| 103 FXJSE_Value_ToInteger(pValue)); | |
| 104 return; | 102 return; |
| 105 } | 103 } |
| 106 int32_t iCurrentPage = pNotify->GetDocProvider()->GetCurrentPage(hDoc); | 104 pValue->SetInteger(pNotify->GetDocProvider()->GetCurrentPage(hDoc)); |
| 107 FXJSE_Value_SetInteger(pValue, iCurrentPage); | |
| 108 } | 105 } |
| 109 void CScript_HostPseudoModel::Script_HostPseudoModel_Language( | 106 void CScript_HostPseudoModel::Script_HostPseudoModel_Language( |
| 110 CFXJSE_Value* pValue, | 107 CFXJSE_Value* pValue, |
| 111 FX_BOOL bSetting, | 108 FX_BOOL bSetting, |
| 112 XFA_ATTRIBUTE eAttribute) { | 109 XFA_ATTRIBUTE eAttribute) { |
| 113 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); | 110 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); |
| 114 if (!pNotify) { | 111 if (!pNotify) { |
| 115 return; | 112 return; |
| 116 } | 113 } |
| 117 if (bSetting) { | 114 if (bSetting) { |
| 118 ThrowException(XFA_IDS_UNABLE_SET_LANGUAGE); | 115 ThrowException(XFA_IDS_UNABLE_SET_LANGUAGE); |
| 119 return; | 116 return; |
| 120 } | 117 } |
| 121 CFX_WideString wsLanguage; | 118 CFX_WideString wsLanguage; |
| 122 pNotify->GetAppProvider()->GetLanguage(wsLanguage); | 119 pNotify->GetAppProvider()->GetLanguage(wsLanguage); |
| 123 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsLanguage).AsStringC()); | 120 pValue->SetString(FX_UTF8Encode(wsLanguage).AsStringC()); |
| 124 } | 121 } |
| 125 void CScript_HostPseudoModel::Script_HostPseudoModel_NumPages( | 122 void CScript_HostPseudoModel::Script_HostPseudoModel_NumPages( |
| 126 CFXJSE_Value* pValue, | 123 CFXJSE_Value* pValue, |
| 127 FX_BOOL bSetting, | 124 FX_BOOL bSetting, |
| 128 XFA_ATTRIBUTE eAttribute) { | 125 XFA_ATTRIBUTE eAttribute) { |
| 129 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); | 126 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); |
| 130 if (!pNotify) { | 127 if (!pNotify) { |
| 131 return; | 128 return; |
| 132 } | 129 } |
| 133 CXFA_FFDoc* hDoc = pNotify->GetHDOC(); | 130 CXFA_FFDoc* hDoc = pNotify->GetHDOC(); |
| 134 if (bSetting) { | 131 if (bSetting) { |
| 135 ThrowException(XFA_IDS_UNABLE_SET_NUMPAGES); | 132 ThrowException(XFA_IDS_UNABLE_SET_NUMPAGES); |
| 136 return; | 133 return; |
| 137 } | 134 } |
| 138 int32_t iNumPages = pNotify->GetDocProvider()->CountPages(hDoc); | 135 pValue->SetInteger(pNotify->GetDocProvider()->CountPages(hDoc)); |
| 139 FXJSE_Value_SetInteger(pValue, iNumPages); | |
| 140 } | 136 } |
| 141 void CScript_HostPseudoModel::Script_HostPseudoModel_Platform( | 137 void CScript_HostPseudoModel::Script_HostPseudoModel_Platform( |
| 142 CFXJSE_Value* pValue, | 138 CFXJSE_Value* pValue, |
| 143 FX_BOOL bSetting, | 139 FX_BOOL bSetting, |
| 144 XFA_ATTRIBUTE eAttribute) { | 140 XFA_ATTRIBUTE eAttribute) { |
| 145 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); | 141 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); |
| 146 if (!pNotify) { | 142 if (!pNotify) { |
| 147 return; | 143 return; |
| 148 } | 144 } |
| 149 if (bSetting) { | 145 if (bSetting) { |
| 150 ThrowException(XFA_IDS_UNABLE_SET_PLATFORM); | 146 ThrowException(XFA_IDS_UNABLE_SET_PLATFORM); |
| 151 return; | 147 return; |
| 152 } | 148 } |
| 153 CFX_WideString wsPlatform; | 149 CFX_WideString wsPlatform; |
| 154 pNotify->GetAppProvider()->GetPlatform(wsPlatform); | 150 pNotify->GetAppProvider()->GetPlatform(wsPlatform); |
| 155 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsPlatform).AsStringC()); | 151 pValue->SetString(FX_UTF8Encode(wsPlatform).AsStringC()); |
| 156 } | 152 } |
| 157 void CScript_HostPseudoModel::Script_HostPseudoModel_Title( | 153 void CScript_HostPseudoModel::Script_HostPseudoModel_Title( |
| 158 CFXJSE_Value* pValue, | 154 CFXJSE_Value* pValue, |
| 159 FX_BOOL bSetting, | 155 FX_BOOL bSetting, |
| 160 XFA_ATTRIBUTE eAttribute) { | 156 XFA_ATTRIBUTE eAttribute) { |
| 161 if (!m_pDocument->GetScriptContext()->IsRunAtClient()) { | 157 if (!m_pDocument->GetScriptContext()->IsRunAtClient()) { |
| 162 return; | 158 return; |
| 163 } | 159 } |
| 164 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); | 160 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); |
| 165 if (!pNotify) { | 161 if (!pNotify) { |
| 166 return; | 162 return; |
| 167 } | 163 } |
| 168 CXFA_FFDoc* hDoc = pNotify->GetHDOC(); | 164 CXFA_FFDoc* hDoc = pNotify->GetHDOC(); |
| 169 if (bSetting) { | 165 if (bSetting) { |
| 170 CFX_ByteString bsValue; | 166 CFX_ByteString bsValue; |
| 171 FXJSE_Value_ToUTF8String(pValue, bsValue); | 167 pValue->ToString(bsValue); |
| 172 pNotify->GetDocProvider()->SetTitle( | 168 pNotify->GetDocProvider()->SetTitle( |
| 173 hDoc, CFX_WideString::FromUTF8(bsValue.AsStringC())); | 169 hDoc, CFX_WideString::FromUTF8(bsValue.AsStringC())); |
| 174 return; | 170 return; |
| 175 } | 171 } |
| 176 CFX_WideString wsTitle; | 172 CFX_WideString wsTitle; |
| 177 pNotify->GetDocProvider()->GetTitle(hDoc, wsTitle); | 173 pNotify->GetDocProvider()->GetTitle(hDoc, wsTitle); |
| 178 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsTitle).AsStringC()); | 174 pValue->SetString(FX_UTF8Encode(wsTitle).AsStringC()); |
| 179 } | 175 } |
| 180 void CScript_HostPseudoModel::Script_HostPseudoModel_ValidationsEnabled( | 176 void CScript_HostPseudoModel::Script_HostPseudoModel_ValidationsEnabled( |
| 181 CFXJSE_Value* pValue, | 177 CFXJSE_Value* pValue, |
| 182 FX_BOOL bSetting, | 178 FX_BOOL bSetting, |
| 183 XFA_ATTRIBUTE eAttribute) { | 179 XFA_ATTRIBUTE eAttribute) { |
| 184 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); | 180 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); |
| 185 if (!pNotify) { | 181 if (!pNotify) { |
| 186 return; | 182 return; |
| 187 } | 183 } |
| 188 CXFA_FFDoc* hDoc = pNotify->GetHDOC(); | 184 CXFA_FFDoc* hDoc = pNotify->GetHDOC(); |
| 189 if (bSetting) { | 185 if (bSetting) { |
| 190 pNotify->GetDocProvider()->SetValidationsEnabled( | 186 pNotify->GetDocProvider()->SetValidationsEnabled(hDoc, pValue->ToBoolean()); |
| 191 hDoc, FXJSE_Value_ToBoolean(pValue)); | |
| 192 return; | 187 return; |
| 193 } | 188 } |
| 194 FX_BOOL bEnabled = pNotify->GetDocProvider()->IsValidationsEnabled(hDoc); | 189 FX_BOOL bEnabled = pNotify->GetDocProvider()->IsValidationsEnabled(hDoc); |
| 195 FXJSE_Value_SetBoolean(pValue, bEnabled); | 190 pValue->SetBoolean(bEnabled); |
| 196 } | 191 } |
| 197 void CScript_HostPseudoModel::Script_HostPseudoModel_Variation( | 192 void CScript_HostPseudoModel::Script_HostPseudoModel_Variation( |
| 198 CFXJSE_Value* pValue, | 193 CFXJSE_Value* pValue, |
| 199 FX_BOOL bSetting, | 194 FX_BOOL bSetting, |
| 200 XFA_ATTRIBUTE eAttribute) { | 195 XFA_ATTRIBUTE eAttribute) { |
| 201 if (!m_pDocument->GetScriptContext()->IsRunAtClient()) { | 196 if (!m_pDocument->GetScriptContext()->IsRunAtClient()) { |
| 202 return; | 197 return; |
| 203 } | 198 } |
| 204 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); | 199 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); |
| 205 if (!pNotify) { | 200 if (!pNotify) { |
| 206 return; | 201 return; |
| 207 } | 202 } |
| 208 if (bSetting) { | 203 if (bSetting) { |
| 209 ThrowException(XFA_IDS_UNABLE_SET_VARIATION); | 204 ThrowException(XFA_IDS_UNABLE_SET_VARIATION); |
| 210 return; | 205 return; |
| 211 } | 206 } |
| 212 CFX_WideString wsVariation; | 207 CFX_WideString wsVariation; |
| 213 pNotify->GetAppProvider()->GetVariation(wsVariation); | 208 pNotify->GetAppProvider()->GetVariation(wsVariation); |
| 214 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsVariation).AsStringC()); | 209 pValue->SetString(FX_UTF8Encode(wsVariation).AsStringC()); |
| 215 } | 210 } |
| 216 void CScript_HostPseudoModel::Script_HostPseudoModel_Version( | 211 void CScript_HostPseudoModel::Script_HostPseudoModel_Version( |
| 217 CFXJSE_Value* pValue, | 212 CFXJSE_Value* pValue, |
| 218 FX_BOOL bSetting, | 213 FX_BOOL bSetting, |
| 219 XFA_ATTRIBUTE eAttribute) { | 214 XFA_ATTRIBUTE eAttribute) { |
| 220 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); | 215 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); |
| 221 if (!pNotify) { | 216 if (!pNotify) { |
| 222 return; | 217 return; |
| 223 } | 218 } |
| 224 if (bSetting) { | 219 if (bSetting) { |
| 225 ThrowException(XFA_IDS_UNABLE_SET_VERSION); | 220 ThrowException(XFA_IDS_UNABLE_SET_VERSION); |
| 226 return; | 221 return; |
| 227 } | 222 } |
| 228 CFX_WideString wsVersion; | 223 CFX_WideString wsVersion; |
| 229 pNotify->GetAppProvider()->GetVersion(wsVersion); | 224 pNotify->GetAppProvider()->GetVersion(wsVersion); |
| 230 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsVersion).AsStringC()); | 225 pValue->SetString(FX_UTF8Encode(wsVersion).AsStringC()); |
| 231 } | 226 } |
| 232 void CScript_HostPseudoModel::Script_HostPseudoModel_FoxitVersion( | 227 void CScript_HostPseudoModel::Script_HostPseudoModel_FoxitVersion( |
| 233 CFXJSE_Value* pValue, | 228 CFXJSE_Value* pValue, |
| 234 FX_BOOL bSetting, | 229 FX_BOOL bSetting, |
| 235 XFA_ATTRIBUTE eAttribute) { | 230 XFA_ATTRIBUTE eAttribute) { |
| 236 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); | 231 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); |
| 237 if (!pNotify) { | 232 if (!pNotify) { |
| 238 return; | 233 return; |
| 239 } | 234 } |
| 240 if (bSetting) { | 235 if (bSetting) { |
| 241 ThrowException(XFA_IDS_UNABLE_SET_VERSION); | 236 ThrowException(XFA_IDS_UNABLE_SET_VERSION); |
| 242 return; | 237 return; |
| 243 } | 238 } |
| 244 CFX_WideString wsVersion; | 239 CFX_WideString wsVersion; |
| 245 pNotify->GetAppProvider()->GetFoxitVersion(wsVersion); | 240 pNotify->GetAppProvider()->GetFoxitVersion(wsVersion); |
| 246 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsVersion).AsStringC()); | 241 pValue->SetString(FX_UTF8Encode(wsVersion).AsStringC()); |
| 247 } | 242 } |
| 248 void CScript_HostPseudoModel::Script_HostPseudoModel_Name( | 243 void CScript_HostPseudoModel::Script_HostPseudoModel_Name( |
| 249 CFXJSE_Value* pValue, | 244 CFXJSE_Value* pValue, |
| 250 FX_BOOL bSetting, | 245 FX_BOOL bSetting, |
| 251 XFA_ATTRIBUTE eAttribute) { | 246 XFA_ATTRIBUTE eAttribute) { |
| 252 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); | 247 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); |
| 253 if (!pNotify) { | 248 if (!pNotify) { |
| 254 return; | 249 return; |
| 255 } | 250 } |
| 256 if (bSetting) { | 251 if (bSetting) { |
| 257 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 252 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 258 return; | 253 return; |
| 259 } | 254 } |
| 260 CFX_WideString wsAppName; | 255 CFX_WideString wsAppName; |
| 261 pNotify->GetAppProvider()->GetAppName(wsAppName); | 256 pNotify->GetAppProvider()->GetAppName(wsAppName); |
| 262 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsAppName).AsStringC()); | 257 pValue->SetString(FX_UTF8Encode(wsAppName).AsStringC()); |
| 263 } | 258 } |
| 264 void CScript_HostPseudoModel::Script_HostPseudoModel_FoxitName( | 259 void CScript_HostPseudoModel::Script_HostPseudoModel_FoxitName( |
| 265 CFXJSE_Value* pValue, | 260 CFXJSE_Value* pValue, |
| 266 FX_BOOL bSetting, | 261 FX_BOOL bSetting, |
| 267 XFA_ATTRIBUTE eAttribute) { | 262 XFA_ATTRIBUTE eAttribute) { |
| 268 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); | 263 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); |
| 269 if (!pNotify) { | 264 if (!pNotify) { |
| 270 return; | 265 return; |
| 271 } | 266 } |
| 272 if (bSetting) { | 267 if (bSetting) { |
| 273 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 268 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 274 return; | 269 return; |
| 275 } | 270 } |
| 276 CFX_WideString wsFoxitAppName; | 271 CFX_WideString wsFoxitAppName; |
| 277 pNotify->GetAppProvider()->GetFoxitAppName(wsFoxitAppName); | 272 pNotify->GetAppProvider()->GetFoxitAppName(wsFoxitAppName); |
| 278 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsFoxitAppName).AsStringC()); | 273 pValue->SetString(FX_UTF8Encode(wsFoxitAppName).AsStringC()); |
| 279 } | 274 } |
| 280 void CScript_HostPseudoModel::Script_HostPseudoModel_GotoURL( | 275 void CScript_HostPseudoModel::Script_HostPseudoModel_GotoURL( |
| 281 CFXJSE_Arguments* pArguments) { | 276 CFXJSE_Arguments* pArguments) { |
| 282 if (!m_pDocument->GetScriptContext()->IsRunAtClient()) { | 277 if (!m_pDocument->GetScriptContext()->IsRunAtClient()) { |
| 283 return; | 278 return; |
| 284 } | 279 } |
| 285 int32_t iLength = pArguments->GetLength(); | 280 int32_t iLength = pArguments->GetLength(); |
| 286 if (iLength != 1) { | 281 if (iLength != 1) { |
| 287 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"gotoURL"); | 282 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"gotoURL"); |
| 288 return; | 283 return; |
| (...skipping 24 matching lines...) Expand all Loading... |
| 313 if (!pNotify) { | 308 if (!pNotify) { |
| 314 return; | 309 return; |
| 315 } | 310 } |
| 316 CXFA_Node* pNode = NULL; | 311 CXFA_Node* pNode = NULL; |
| 317 if (iLength >= 1) { | 312 if (iLength >= 1) { |
| 318 std::unique_ptr<CFXJSE_Value> pValue(pArguments->GetValue(0)); | 313 std::unique_ptr<CFXJSE_Value> pValue(pArguments->GetValue(0)); |
| 319 if (FXJSE_Value_IsObject(pValue.get())) { | 314 if (FXJSE_Value_IsObject(pValue.get())) { |
| 320 pNode = ToNode(pValue.get(), nullptr); | 315 pNode = ToNode(pValue.get(), nullptr); |
| 321 } else if (FXJSE_Value_IsUTF8String(pValue.get())) { | 316 } else if (FXJSE_Value_IsUTF8String(pValue.get())) { |
| 322 CFX_ByteString bsString; | 317 CFX_ByteString bsString; |
| 323 FXJSE_Value_ToUTF8String(pValue.get(), bsString); | 318 pValue->ToString(bsString); |
| 324 CFX_WideString wsExpression = | 319 CFX_WideString wsExpression = |
| 325 CFX_WideString::FromUTF8(bsString.AsStringC()); | 320 CFX_WideString::FromUTF8(bsString.AsStringC()); |
| 326 CXFA_ScriptContext* pScriptContext = m_pDocument->GetScriptContext(); | 321 CXFA_ScriptContext* pScriptContext = m_pDocument->GetScriptContext(); |
| 327 if (!pScriptContext) | 322 if (!pScriptContext) |
| 328 return; | 323 return; |
| 329 | 324 |
| 330 CXFA_Object* pObject = pScriptContext->GetThisObject(); | 325 CXFA_Object* pObject = pScriptContext->GetThisObject(); |
| 331 if (!pObject) | 326 if (!pObject) |
| 332 return; | 327 return; |
| 333 | 328 |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 380 if (iLength >= 3) { | 375 if (iLength >= 3) { |
| 381 CFX_ByteString bsDefaultAnswer = pArguments->GetUTF8String(2); | 376 CFX_ByteString bsDefaultAnswer = pArguments->GetUTF8String(2); |
| 382 wsDefaultAnswer = CFX_WideString::FromUTF8(bsDefaultAnswer.AsStringC()); | 377 wsDefaultAnswer = CFX_WideString::FromUTF8(bsDefaultAnswer.AsStringC()); |
| 383 } | 378 } |
| 384 if (iLength >= 4) { | 379 if (iLength >= 4) { |
| 385 bMark = pArguments->GetInt32(3) == 0 ? FALSE : TRUE; | 380 bMark = pArguments->GetInt32(3) == 0 ? FALSE : TRUE; |
| 386 } | 381 } |
| 387 CFX_WideString wsAnswer = pNotify->GetAppProvider()->Response( | 382 CFX_WideString wsAnswer = pNotify->GetAppProvider()->Response( |
| 388 wsQuestion, wsTitle, wsDefaultAnswer, bMark); | 383 wsQuestion, wsTitle, wsDefaultAnswer, bMark); |
| 389 CFXJSE_Value* pValue = pArguments->GetReturnValue(); | 384 CFXJSE_Value* pValue = pArguments->GetReturnValue(); |
| 390 if (pValue) { | 385 if (pValue) |
| 391 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsAnswer).AsStringC()); | 386 pValue->SetString(FX_UTF8Encode(wsAnswer).AsStringC()); |
| 392 } | |
| 393 } | 387 } |
| 394 void CScript_HostPseudoModel::Script_HostPseudoModel_DocumentInBatch( | 388 void CScript_HostPseudoModel::Script_HostPseudoModel_DocumentInBatch( |
| 395 CFXJSE_Arguments* pArguments) { | 389 CFXJSE_Arguments* pArguments) { |
| 396 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); | 390 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); |
| 397 if (!pNotify) { | 391 if (!pNotify) { |
| 398 return; | 392 return; |
| 399 } | 393 } |
| 400 int32_t iCur = pNotify->GetAppProvider()->GetCurDocumentInBatch(); | 394 int32_t iCur = pNotify->GetAppProvider()->GetCurDocumentInBatch(); |
| 401 CFXJSE_Value* pValue = pArguments->GetReturnValue(); | 395 CFXJSE_Value* pValue = pArguments->GetReturnValue(); |
| 402 if (pValue) { | 396 if (pValue) |
| 403 FXJSE_Value_SetInteger(pValue, iCur); | 397 pValue->SetInteger(iCur); |
| 404 } | |
| 405 } | 398 } |
| 406 static int32_t XFA_FilterName(const CFX_WideStringC& wsExpression, | 399 static int32_t XFA_FilterName(const CFX_WideStringC& wsExpression, |
| 407 int32_t nStart, | 400 int32_t nStart, |
| 408 CFX_WideString& wsFilter) { | 401 CFX_WideString& wsFilter) { |
| 409 ASSERT(nStart > -1); | 402 ASSERT(nStart > -1); |
| 410 int32_t iLength = wsExpression.GetLength(); | 403 int32_t iLength = wsExpression.GetLength(); |
| 411 if (nStart >= iLength) { | 404 if (nStart >= iLength) { |
| 412 return iLength; | 405 return iLength; |
| 413 } | 406 } |
| 414 FX_WCHAR* pBuf = wsFilter.GetBuffer(iLength - nStart); | 407 FX_WCHAR* pBuf = wsFilter.GetBuffer(iLength - nStart); |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 510 if (!pNotify) { | 503 if (!pNotify) { |
| 511 return; | 504 return; |
| 512 } | 505 } |
| 513 CXFA_Node* pNode = NULL; | 506 CXFA_Node* pNode = NULL; |
| 514 if (iLength >= 1) { | 507 if (iLength >= 1) { |
| 515 std::unique_ptr<CFXJSE_Value> pValue(pArguments->GetValue(0)); | 508 std::unique_ptr<CFXJSE_Value> pValue(pArguments->GetValue(0)); |
| 516 if (FXJSE_Value_IsObject(pValue.get())) { | 509 if (FXJSE_Value_IsObject(pValue.get())) { |
| 517 pNode = ToNode(pValue.get(), nullptr); | 510 pNode = ToNode(pValue.get(), nullptr); |
| 518 } else if (FXJSE_Value_IsUTF8String(pValue.get())) { | 511 } else if (FXJSE_Value_IsUTF8String(pValue.get())) { |
| 519 CFX_ByteString bsString; | 512 CFX_ByteString bsString; |
| 520 FXJSE_Value_ToUTF8String(pValue.get(), bsString); | 513 pValue->ToString(bsString); |
| 521 CFX_WideString wsExpression = | 514 CFX_WideString wsExpression = |
| 522 CFX_WideString::FromUTF8(bsString.AsStringC()); | 515 CFX_WideString::FromUTF8(bsString.AsStringC()); |
| 523 CXFA_ScriptContext* pScriptContext = m_pDocument->GetScriptContext(); | 516 CXFA_ScriptContext* pScriptContext = m_pDocument->GetScriptContext(); |
| 524 if (!pScriptContext) | 517 if (!pScriptContext) |
| 525 return; | 518 return; |
| 526 | 519 |
| 527 CXFA_Object* pObject = pScriptContext->GetThisObject(); | 520 CXFA_Object* pObject = pScriptContext->GetThisObject(); |
| 528 if (!pObject) | 521 if (!pObject) |
| 529 return; | 522 return; |
| 530 | 523 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 544 void CScript_HostPseudoModel::Script_HostPseudoModel_GetFocus( | 537 void CScript_HostPseudoModel::Script_HostPseudoModel_GetFocus( |
| 545 CFXJSE_Arguments* pArguments) { | 538 CFXJSE_Arguments* pArguments) { |
| 546 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); | 539 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); |
| 547 if (!pNotify) { | 540 if (!pNotify) { |
| 548 return; | 541 return; |
| 549 } | 542 } |
| 550 CXFA_Node* pNode = pNotify->GetFocusWidgetNode(); | 543 CXFA_Node* pNode = pNotify->GetFocusWidgetNode(); |
| 551 if (!pNode) { | 544 if (!pNode) { |
| 552 return; | 545 return; |
| 553 } | 546 } |
| 554 FXJSE_Value_Set(pArguments->GetReturnValue(), | 547 pArguments->GetReturnValue()->Assign( |
| 555 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNode)); | 548 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNode)); |
| 556 } | 549 } |
| 557 void CScript_HostPseudoModel::Script_HostPseudoModel_MessageBox( | 550 void CScript_HostPseudoModel::Script_HostPseudoModel_MessageBox( |
| 558 CFXJSE_Arguments* pArguments) { | 551 CFXJSE_Arguments* pArguments) { |
| 559 if (!m_pDocument->GetScriptContext()->IsRunAtClient()) { | 552 if (!m_pDocument->GetScriptContext()->IsRunAtClient()) { |
| 560 return; | 553 return; |
| 561 } | 554 } |
| 562 int32_t iLength = pArguments->GetLength(); | 555 int32_t iLength = pArguments->GetLength(); |
| 563 if (iLength < 1 || iLength > 4) { | 556 if (iLength < 1 || iLength > 4) { |
| 564 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"messageBox"); | 557 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"messageBox"); |
| 565 return; | 558 return; |
| (...skipping 24 matching lines...) Expand all Loading... |
| 590 } | 583 } |
| 591 if (iLength >= 4) { | 584 if (iLength >= 4) { |
| 592 dwButtonType = pArguments->GetInt32(3); | 585 dwButtonType = pArguments->GetInt32(3); |
| 593 if (dwButtonType > XFA_MB_YesNoCancel) { | 586 if (dwButtonType > XFA_MB_YesNoCancel) { |
| 594 dwButtonType = XFA_MB_OK; | 587 dwButtonType = XFA_MB_OK; |
| 595 } | 588 } |
| 596 } | 589 } |
| 597 int32_t iValue = pNotify->GetAppProvider()->MsgBox( | 590 int32_t iValue = pNotify->GetAppProvider()->MsgBox( |
| 598 wsMessage, bsTitle, dwMessageType, dwButtonType); | 591 wsMessage, bsTitle, dwMessageType, dwButtonType); |
| 599 CFXJSE_Value* pValue = pArguments->GetReturnValue(); | 592 CFXJSE_Value* pValue = pArguments->GetReturnValue(); |
| 600 if (pValue) { | 593 if (pValue) |
| 601 FXJSE_Value_SetInteger(pValue, iValue); | 594 pValue->SetInteger(iValue); |
| 602 } | |
| 603 } | 595 } |
| 604 FX_BOOL CScript_HostPseudoModel::Script_HostPseudoModel_ValidateArgsForMsg( | 596 FX_BOOL CScript_HostPseudoModel::Script_HostPseudoModel_ValidateArgsForMsg( |
| 605 CFXJSE_Arguments* pArguments, | 597 CFXJSE_Arguments* pArguments, |
| 606 int32_t iArgIndex, | 598 int32_t iArgIndex, |
| 607 CFX_WideString& wsValue) { | 599 CFX_WideString& wsValue) { |
| 608 if (pArguments == NULL || iArgIndex < 0) { | 600 if (pArguments == NULL || iArgIndex < 0) { |
| 609 return FALSE; | 601 return FALSE; |
| 610 } | 602 } |
| 611 FX_BOOL bIsJsType = FALSE; | 603 FX_BOOL bIsJsType = FALSE; |
| 612 if (m_pDocument->GetScriptContext()->GetType() == | 604 if (m_pDocument->GetScriptContext()->GetType() == |
| 613 XFA_SCRIPTLANGTYPE_Javascript) { | 605 XFA_SCRIPTLANGTYPE_Javascript) { |
| 614 bIsJsType = TRUE; | 606 bIsJsType = TRUE; |
| 615 } | 607 } |
| 616 std::unique_ptr<CFXJSE_Value> pValueArg(pArguments->GetValue(iArgIndex)); | 608 std::unique_ptr<CFXJSE_Value> pValueArg(pArguments->GetValue(iArgIndex)); |
| 617 if (!FXJSE_Value_IsUTF8String(pValueArg.get()) && bIsJsType) { | 609 if (!FXJSE_Value_IsUTF8String(pValueArg.get()) && bIsJsType) { |
| 618 ThrowException(XFA_IDS_ARGUMENT_MISMATCH); | 610 ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 619 return FALSE; | 611 return FALSE; |
| 620 } | 612 } |
| 621 if (FXJSE_Value_IsNull(pValueArg.get())) { | 613 if (FXJSE_Value_IsNull(pValueArg.get())) { |
| 622 wsValue = FX_WSTRC(L""); | 614 wsValue = FX_WSTRC(L""); |
| 623 } else { | 615 } else { |
| 624 CFX_ByteString byMessage; | 616 CFX_ByteString byMessage; |
| 625 FXJSE_Value_ToUTF8String(pValueArg.get(), byMessage); | 617 pValueArg->ToString(byMessage); |
| 626 wsValue = CFX_WideString::FromUTF8(byMessage.AsStringC()); | 618 wsValue = CFX_WideString::FromUTF8(byMessage.AsStringC()); |
| 627 } | 619 } |
| 628 return TRUE; | 620 return TRUE; |
| 629 } | 621 } |
| 630 void CScript_HostPseudoModel::Script_HostPseudoModel_DocumentCountInBatch( | 622 void CScript_HostPseudoModel::Script_HostPseudoModel_DocumentCountInBatch( |
| 631 CFXJSE_Arguments* pArguments) { | 623 CFXJSE_Arguments* pArguments) { |
| 632 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); | 624 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); |
| 633 if (!pNotify) { | 625 if (!pNotify) { |
| 634 return; | 626 return; |
| 635 } | 627 } |
| 636 int32_t iValue = pNotify->GetAppProvider()->GetDocumentCountInBatch(); | 628 int32_t iValue = pNotify->GetAppProvider()->GetDocumentCountInBatch(); |
| 637 CFXJSE_Value* pValue = pArguments->GetReturnValue(); | 629 CFXJSE_Value* pValue = pArguments->GetReturnValue(); |
| 638 if (pValue) { | 630 if (pValue) |
| 639 FXJSE_Value_SetInteger(pValue, iValue); | 631 pValue->SetInteger(iValue); |
| 640 } | |
| 641 } | 632 } |
| 642 void CScript_HostPseudoModel::Script_HostPseudoModel_Print( | 633 void CScript_HostPseudoModel::Script_HostPseudoModel_Print( |
| 643 CFXJSE_Arguments* pArguments) { | 634 CFXJSE_Arguments* pArguments) { |
| 644 if (!m_pDocument->GetScriptContext()->IsRunAtClient()) { | 635 if (!m_pDocument->GetScriptContext()->IsRunAtClient()) { |
| 645 return; | 636 return; |
| 646 } | 637 } |
| 647 int32_t iLength = pArguments->GetLength(); | 638 int32_t iLength = pArguments->GetLength(); |
| 648 if (iLength != 8) { | 639 if (iLength != 8) { |
| 649 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"print"); | 640 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"print"); |
| 650 return; | 641 return; |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 786 pNotify->GetDocProvider()->SetCurrentPage(hDoc, nNewPage); | 777 pNotify->GetDocProvider()->SetCurrentPage(hDoc, nNewPage); |
| 787 } | 778 } |
| 788 void CScript_HostPseudoModel::Script_HostPseudoModel_CurrentDateTime( | 779 void CScript_HostPseudoModel::Script_HostPseudoModel_CurrentDateTime( |
| 789 CFXJSE_Arguments* pArguments) { | 780 CFXJSE_Arguments* pArguments) { |
| 790 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); | 781 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); |
| 791 if (!pNotify) { | 782 if (!pNotify) { |
| 792 return; | 783 return; |
| 793 } | 784 } |
| 794 CFX_WideString wsDataTime = pNotify->GetCurrentDateTime(); | 785 CFX_WideString wsDataTime = pNotify->GetCurrentDateTime(); |
| 795 CFXJSE_Value* pValue = pArguments->GetReturnValue(); | 786 CFXJSE_Value* pValue = pArguments->GetReturnValue(); |
| 796 if (pValue) { | 787 if (pValue) |
| 797 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsDataTime).AsStringC()); | 788 pValue->SetString(FX_UTF8Encode(wsDataTime).AsStringC()); |
| 798 } | |
| 799 } | 789 } |
| OLD | NEW |