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_object.h" | 7 #include "xfa/fxfa/parser/xfa_object.h" |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 | 10 |
(...skipping 2125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2136 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2136 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
2137 if (!pWidgetData) { | 2137 if (!pWidgetData) { |
2138 return; | 2138 return; |
2139 } | 2139 } |
2140 if (bSetting) { | 2140 if (bSetting) { |
2141 int32_t iIndex = FXJSE_Value_ToInteger(pValue); | 2141 int32_t iIndex = FXJSE_Value_ToInteger(pValue); |
2142 if (iIndex == -1) { | 2142 if (iIndex == -1) { |
2143 pWidgetData->ClearAllSelections(); | 2143 pWidgetData->ClearAllSelections(); |
2144 return; | 2144 return; |
2145 } | 2145 } |
2146 pWidgetData->SetItemState(iIndex, TRUE, TRUE, TRUE); | 2146 pWidgetData->SetItemState(iIndex, TRUE, true, TRUE, TRUE); |
2147 } else { | 2147 } else { |
2148 FXJSE_Value_SetInteger(pValue, pWidgetData->GetSelectedItem()); | 2148 FXJSE_Value_SetInteger(pValue, pWidgetData->GetSelectedItem()); |
2149 } | 2149 } |
2150 } | 2150 } |
2151 void CXFA_Node::Script_Field_ClearItems(CFXJSE_Arguments* pArguments) { | 2151 void CXFA_Node::Script_Field_ClearItems(CFXJSE_Arguments* pArguments) { |
2152 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2152 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
2153 if (!pWidgetData) { | 2153 if (!pWidgetData) { |
2154 return; | 2154 return; |
2155 } | 2155 } |
2156 pWidgetData->DeleteItem(-1, TRUE); | 2156 pWidgetData->DeleteItem(-1, TRUE); |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2305 } | 2305 } |
2306 } | 2306 } |
2307 void CXFA_Node::Script_Field_SetItemState(CFXJSE_Arguments* pArguments) { | 2307 void CXFA_Node::Script_Field_SetItemState(CFXJSE_Arguments* pArguments) { |
2308 int32_t iLength = pArguments->GetLength(); | 2308 int32_t iLength = pArguments->GetLength(); |
2309 if (iLength != 2) { | 2309 if (iLength != 2) { |
2310 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 2310 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
2311 L"setItemState"); | 2311 L"setItemState"); |
2312 return; | 2312 return; |
2313 } | 2313 } |
2314 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2314 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
2315 if (!pWidgetData) { | 2315 if (!pWidgetData) |
2316 return; | 2316 return; |
2317 } | 2317 |
2318 int32_t iIndex = pArguments->GetInt32(0); | 2318 int32_t iIndex = pArguments->GetInt32(0); |
2319 if (pArguments->GetInt32(1) != 0) { | 2319 if (pArguments->GetInt32(1) != 0) { |
2320 pWidgetData->SetItemState(iIndex, TRUE, TRUE, TRUE); | 2320 pWidgetData->SetItemState(iIndex, TRUE, true, TRUE, TRUE); |
2321 } else { | 2321 } else { |
2322 if (pWidgetData->GetItemState(iIndex)) { | 2322 if (pWidgetData->GetItemState(iIndex)) |
2323 pWidgetData->SetItemState(iIndex, FALSE, TRUE, TRUE); | 2323 pWidgetData->SetItemState(iIndex, FALSE, true, TRUE, TRUE); |
2324 } | |
2325 } | 2324 } |
2326 } | 2325 } |
2327 void CXFA_Node::Script_Field_AddItem(CFXJSE_Arguments* pArguments) { | 2326 void CXFA_Node::Script_Field_AddItem(CFXJSE_Arguments* pArguments) { |
2328 int32_t iLength = pArguments->GetLength(); | 2327 int32_t iLength = pArguments->GetLength(); |
2329 if (iLength < 1 || iLength > 2) { | 2328 if (iLength < 1 || iLength > 2) { |
2330 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"addItem"); | 2329 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"addItem"); |
2331 return; | 2330 return; |
2332 } | 2331 } |
2333 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2332 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
2334 if (!pWidgetData) { | 2333 if (!pWidgetData) { |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2375 FX_BOOL bSetting, | 2374 FX_BOOL bSetting, |
2376 XFA_ATTRIBUTE eAttribute) { | 2375 XFA_ATTRIBUTE eAttribute) { |
2377 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2376 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
2378 if (!pWidgetData) { | 2377 if (!pWidgetData) { |
2379 return; | 2378 return; |
2380 } | 2379 } |
2381 if (bSetting) { | 2380 if (bSetting) { |
2382 CFX_ByteString bsValue; | 2381 CFX_ByteString bsValue; |
2383 FXJSE_Value_ToUTF8String(pValue, bsValue); | 2382 FXJSE_Value_ToUTF8String(pValue, bsValue); |
2384 pWidgetData->SetSelectedMemberByValue( | 2383 pWidgetData->SetSelectedMemberByValue( |
2385 CFX_WideString::FromUTF8(bsValue.AsStringC()).AsStringC(), TRUE, TRUE); | 2384 CFX_WideString::FromUTF8(bsValue.AsStringC()).AsStringC(), true, TRUE, |
| 2385 TRUE); |
2386 } else { | 2386 } else { |
2387 CFX_WideString wsValue = GetScriptContent(TRUE); | 2387 CFX_WideString wsValue = GetScriptContent(TRUE); |
2388 XFA_VERSION curVersion = GetDocument()->GetCurVersionMode(); | 2388 XFA_VERSION curVersion = GetDocument()->GetCurVersionMode(); |
2389 if (wsValue.IsEmpty() && curVersion >= XFA_VERSION_300) { | 2389 if (wsValue.IsEmpty() && curVersion >= XFA_VERSION_300) { |
2390 FXJSE_Value_SetNull(pValue); | 2390 FXJSE_Value_SetNull(pValue); |
2391 } else { | 2391 } else { |
2392 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsValue).AsStringC()); | 2392 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsValue).AsStringC()); |
2393 } | 2393 } |
2394 } | 2394 } |
2395 } | 2395 } |
2396 void CXFA_Node::Script_ExclGroup_Transient(CFXJSE_Value* pValue, | 2396 void CXFA_Node::Script_ExclGroup_Transient(CFXJSE_Value* pValue, |
2397 FX_BOOL bSetting, | 2397 FX_BOOL bSetting, |
2398 XFA_ATTRIBUTE eAttribute) {} | 2398 XFA_ATTRIBUTE eAttribute) {} |
2399 void CXFA_Node::Script_ExclGroup_ExecEvent(CFXJSE_Arguments* pArguments) { | 2399 void CXFA_Node::Script_ExclGroup_ExecEvent(CFXJSE_Arguments* pArguments) { |
2400 int32_t argc = pArguments->GetLength(); | 2400 int32_t argc = pArguments->GetLength(); |
2401 if (argc == 1) { | 2401 if (argc == 1) { |
2402 CFX_ByteString eventString = pArguments->GetUTF8String(0); | 2402 CFX_ByteString eventString = pArguments->GetUTF8String(0); |
2403 execSingleEventByName( | 2403 execSingleEventByName( |
2404 CFX_WideString::FromUTF8(eventString.AsStringC()).AsStringC(), | 2404 CFX_WideString::FromUTF8(eventString.AsStringC()).AsStringC(), |
2405 XFA_ELEMENT_ExclGroup); | 2405 XFA_ELEMENT_ExclGroup); |
2406 } else { | 2406 } else { |
2407 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execEvent"); | 2407 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execEvent"); |
2408 } | 2408 } |
2409 } | 2409 } |
| 2410 |
2410 void CXFA_Node::Script_ExclGroup_SelectedMember(CFXJSE_Arguments* pArguments) { | 2411 void CXFA_Node::Script_ExclGroup_SelectedMember(CFXJSE_Arguments* pArguments) { |
2411 int32_t argc = pArguments->GetLength(); | 2412 int32_t argc = pArguments->GetLength(); |
2412 if ((argc == 0) || (argc == 1)) { | 2413 if (argc < 0 || argc > 1) { |
2413 CXFA_WidgetData* pWidgetData = GetWidgetData(); | |
2414 if (!pWidgetData) { | |
2415 FXJSE_Value_SetNull(pArguments->GetReturnValue()); | |
2416 } else { | |
2417 CXFA_Node* pReturnNode = NULL; | |
2418 if (argc == 0) { | |
2419 pReturnNode = pWidgetData->GetSelectedMember(); | |
2420 } else { | |
2421 CFX_ByteString szName; | |
2422 szName = pArguments->GetUTF8String(0); | |
2423 pReturnNode = pWidgetData->SetSelectedMember( | |
2424 CFX_WideString::FromUTF8(szName.AsStringC()).AsStringC()); | |
2425 } | |
2426 if (pReturnNode) { | |
2427 FXJSE_Value_Set( | |
2428 pArguments->GetReturnValue(), | |
2429 m_pDocument->GetScriptContext()->GetJSValueFromMap(pReturnNode)); | |
2430 } else { | |
2431 FXJSE_Value_SetNull(pArguments->GetReturnValue()); | |
2432 } | |
2433 } | |
2434 } else { | |
2435 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 2414 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
2436 L"selectedMember"); | 2415 L"selectedMember"); |
| 2416 return; |
2437 } | 2417 } |
| 2418 |
| 2419 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 2420 if (!pWidgetData) { |
| 2421 FXJSE_Value_SetNull(pArguments->GetReturnValue()); |
| 2422 return; |
| 2423 } |
| 2424 |
| 2425 CXFA_Node* pReturnNode = nullptr; |
| 2426 if (argc == 0) { |
| 2427 pReturnNode = pWidgetData->GetSelectedMember(); |
| 2428 } else { |
| 2429 CFX_ByteString szName; |
| 2430 szName = pArguments->GetUTF8String(0); |
| 2431 pReturnNode = pWidgetData->SetSelectedMember( |
| 2432 CFX_WideString::FromUTF8(szName.AsStringC()).AsStringC(), true); |
| 2433 } |
| 2434 if (!pReturnNode) { |
| 2435 FXJSE_Value_SetNull(pArguments->GetReturnValue()); |
| 2436 return; |
| 2437 } |
| 2438 FXJSE_Value_Set( |
| 2439 pArguments->GetReturnValue(), |
| 2440 m_pDocument->GetScriptContext()->GetJSValueFromMap(pReturnNode)); |
2438 } | 2441 } |
| 2442 |
2439 void CXFA_Node::Script_ExclGroup_ExecInitialize(CFXJSE_Arguments* pArguments) { | 2443 void CXFA_Node::Script_ExclGroup_ExecInitialize(CFXJSE_Arguments* pArguments) { |
2440 int32_t argc = pArguments->GetLength(); | 2444 int32_t argc = pArguments->GetLength(); |
2441 if (argc == 0) { | 2445 if (argc == 0) { |
2442 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); | 2446 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); |
2443 if (!pNotify) { | 2447 if (!pNotify) { |
2444 return; | 2448 return; |
2445 } | 2449 } |
2446 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Initialize); | 2450 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Initialize); |
2447 } else { | 2451 } else { |
2448 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 2452 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
(...skipping 2913 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5362 return m_pAttachNode->InsertChild(pNewNode, pBeforeNode); | 5366 return m_pAttachNode->InsertChild(pNewNode, pBeforeNode); |
5363 } | 5367 } |
5364 FX_BOOL CXFA_AttachNodeList::Remove(CXFA_Node* pNode) { | 5368 FX_BOOL CXFA_AttachNodeList::Remove(CXFA_Node* pNode) { |
5365 return m_pAttachNode->RemoveChild(pNode); | 5369 return m_pAttachNode->RemoveChild(pNode); |
5366 } | 5370 } |
5367 CXFA_Node* CXFA_AttachNodeList::Item(int32_t iIndex) { | 5371 CXFA_Node* CXFA_AttachNodeList::Item(int32_t iIndex) { |
5368 return m_pAttachNode->GetChild( | 5372 return m_pAttachNode->GetChild( |
5369 iIndex, XFA_ELEMENT_UNKNOWN, | 5373 iIndex, XFA_ELEMENT_UNKNOWN, |
5370 m_pAttachNode->GetClassID() == XFA_ELEMENT_Subform); | 5374 m_pAttachNode->GetClassID() == XFA_ELEMENT_Subform); |
5371 } | 5375 } |
OLD | NEW |