| 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_layoutpseudomodel.h" | 7 #include "xfa/fxfa/parser/xfa_script_layoutpseudomodel.h" |
| 8 | 8 |
| 9 #include <set> | 9 #include <set> |
| 10 | 10 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 CScript_LayoutPseudoModel::~CScript_LayoutPseudoModel() {} | 30 CScript_LayoutPseudoModel::~CScript_LayoutPseudoModel() {} |
| 31 void CScript_LayoutPseudoModel::Script_LayoutPseudoModel_Ready( | 31 void CScript_LayoutPseudoModel::Script_LayoutPseudoModel_Ready( |
| 32 CFXJSE_Value* pValue, | 32 CFXJSE_Value* pValue, |
| 33 FX_BOOL bSetting, | 33 FX_BOOL bSetting, |
| 34 XFA_ATTRIBUTE eAttribute) { | 34 XFA_ATTRIBUTE eAttribute) { |
| 35 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); | 35 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); |
| 36 if (!pNotify) { | 36 if (!pNotify) { |
| 37 return; | 37 return; |
| 38 } | 38 } |
| 39 if (bSetting) { | 39 if (bSetting) { |
| 40 ThrowScriptErrorMessage(XFA_IDS_UNABLE_SET_READY); | 40 Throw(XFA_IDS_UNABLE_SET_READY); |
| 41 return; | 41 return; |
| 42 } | 42 } |
| 43 int32_t iStatus = pNotify->GetLayoutStatus(); | 43 int32_t iStatus = pNotify->GetLayoutStatus(); |
| 44 FXJSE_Value_SetBoolean(pValue, iStatus >= 2); | 44 FXJSE_Value_SetBoolean(pValue, iStatus >= 2); |
| 45 } | 45 } |
| 46 void CScript_LayoutPseudoModel::Script_LayoutPseudoModel_HWXY( | 46 void CScript_LayoutPseudoModel::Script_LayoutPseudoModel_HWXY( |
| 47 CFXJSE_Arguments* pArguments, | 47 CFXJSE_Arguments* pArguments, |
| 48 XFA_LAYOUTMODEL_HWXY layoutModel) { | 48 XFA_LAYOUTMODEL_HWXY layoutModel) { |
| 49 int32_t iLength = pArguments->GetLength(); | 49 int32_t iLength = pArguments->GetLength(); |
| 50 if (iLength < 1 || iLength > 3) { | 50 if (iLength < 1 || iLength > 3) { |
| 51 const FX_WCHAR* methodName = NULL; | 51 const FX_WCHAR* methodName = NULL; |
| 52 switch (layoutModel) { | 52 switch (layoutModel) { |
| 53 case XFA_LAYOUTMODEL_H: | 53 case XFA_LAYOUTMODEL_H: |
| 54 methodName = L"h"; | 54 methodName = L"h"; |
| 55 break; | 55 break; |
| 56 case XFA_LAYOUTMODEL_W: | 56 case XFA_LAYOUTMODEL_W: |
| 57 methodName = L"w"; | 57 methodName = L"w"; |
| 58 break; | 58 break; |
| 59 case XFA_LAYOUTMODEL_X: | 59 case XFA_LAYOUTMODEL_X: |
| 60 methodName = L"x"; | 60 methodName = L"x"; |
| 61 break; | 61 break; |
| 62 case XFA_LAYOUTMODEL_Y: | 62 case XFA_LAYOUTMODEL_Y: |
| 63 methodName = L"y"; | 63 methodName = L"y"; |
| 64 break; | 64 break; |
| 65 } | 65 } |
| 66 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, methodName); | 66 Throw(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, methodName); |
| 67 return; | 67 return; |
| 68 } | 68 } |
| 69 CXFA_Node* pNode = NULL; | 69 CXFA_Node* pNode = NULL; |
| 70 CFX_WideString wsUnit(L"pt"); | 70 CFX_WideString wsUnit(L"pt"); |
| 71 int32_t iIndex = 0; | 71 int32_t iIndex = 0; |
| 72 if (iLength >= 1) { | 72 if (iLength >= 1) { |
| 73 pNode = static_cast<CXFA_Node*>(pArguments->GetObject(0)); | 73 pNode = static_cast<CXFA_Node*>(pArguments->GetObject(0)); |
| 74 } | 74 } |
| 75 if (iLength >= 2) { | 75 if (iLength >= 2) { |
| 76 CFX_ByteString bsUnit = pArguments->GetUTF8String(1); | 76 CFX_ByteString bsUnit = pArguments->GetUTF8String(1); |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 170 } | 170 } |
| 171 } | 171 } |
| 172 void CScript_LayoutPseudoModel::Script_LayoutPseudoModel_PageCount( | 172 void CScript_LayoutPseudoModel::Script_LayoutPseudoModel_PageCount( |
| 173 CFXJSE_Arguments* pArguments) { | 173 CFXJSE_Arguments* pArguments) { |
| 174 Script_LayoutPseudoModel_NumberedPageCount(pArguments, TRUE); | 174 Script_LayoutPseudoModel_NumberedPageCount(pArguments, TRUE); |
| 175 } | 175 } |
| 176 void CScript_LayoutPseudoModel::Script_LayoutPseudoModel_PageSpan( | 176 void CScript_LayoutPseudoModel::Script_LayoutPseudoModel_PageSpan( |
| 177 CFXJSE_Arguments* pArguments) { | 177 CFXJSE_Arguments* pArguments) { |
| 178 int32_t iLength = pArguments->GetLength(); | 178 int32_t iLength = pArguments->GetLength(); |
| 179 if (iLength != 1) { | 179 if (iLength != 1) { |
| 180 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"pageSpan"); | 180 Throw(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"pageSpan"); |
| 181 return; | 181 return; |
| 182 } | 182 } |
| 183 CXFA_Node* pNode = NULL; | 183 CXFA_Node* pNode = NULL; |
| 184 if (iLength >= 1) { | 184 if (iLength >= 1) { |
| 185 pNode = static_cast<CXFA_Node*>(pArguments->GetObject(0)); | 185 pNode = static_cast<CXFA_Node*>(pArguments->GetObject(0)); |
| 186 } | 186 } |
| 187 if (!pNode) { | 187 if (!pNode) { |
| 188 return; | 188 return; |
| 189 } | 189 } |
| 190 CXFA_LayoutProcessor* pDocLayout = m_pDocument->GetDocLayout(); | 190 CXFA_LayoutProcessor* pDocLayout = m_pDocument->GetDocLayout(); |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 342 } | 342 } |
| 343 } | 343 } |
| 344 } | 344 } |
| 345 return; | 345 return; |
| 346 } | 346 } |
| 347 } | 347 } |
| 348 void CScript_LayoutPseudoModel::Script_LayoutPseudoModel_PageContent( | 348 void CScript_LayoutPseudoModel::Script_LayoutPseudoModel_PageContent( |
| 349 CFXJSE_Arguments* pArguments) { | 349 CFXJSE_Arguments* pArguments) { |
| 350 int32_t iLength = pArguments->GetLength(); | 350 int32_t iLength = pArguments->GetLength(); |
| 351 if (iLength < 1 || iLength > 3) { | 351 if (iLength < 1 || iLength > 3) { |
| 352 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"pageContent"); | 352 Throw(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"pageContent"); |
| 353 return; | 353 return; |
| 354 } | 354 } |
| 355 int32_t iIndex = 0; | 355 int32_t iIndex = 0; |
| 356 CFX_WideString wsType; | 356 CFX_WideString wsType; |
| 357 FX_BOOL bOnPageArea = FALSE; | 357 FX_BOOL bOnPageArea = FALSE; |
| 358 if (iLength >= 1) { | 358 if (iLength >= 1) { |
| 359 iIndex = pArguments->GetInt32(0); | 359 iIndex = pArguments->GetInt32(0); |
| 360 } | 360 } |
| 361 if (iLength >= 2) { | 361 if (iLength >= 2) { |
| 362 CFX_ByteString bsType = pArguments->GetUTF8String(1); | 362 CFX_ByteString bsType = pArguments->GetUTF8String(1); |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 425 pLayoutProcessor->SetForceReLayout(TRUE); | 425 pLayoutProcessor->SetForceReLayout(TRUE); |
| 426 } | 426 } |
| 427 void CScript_LayoutPseudoModel::Script_LayoutPseudoModel_AbsPageSpan( | 427 void CScript_LayoutPseudoModel::Script_LayoutPseudoModel_AbsPageSpan( |
| 428 CFXJSE_Arguments* pArguments) { | 428 CFXJSE_Arguments* pArguments) { |
| 429 Script_LayoutPseudoModel_PageSpan(pArguments); | 429 Script_LayoutPseudoModel_PageSpan(pArguments); |
| 430 } | 430 } |
| 431 void CScript_LayoutPseudoModel::Script_LayoutPseudoModel_AbsPageInBatch( | 431 void CScript_LayoutPseudoModel::Script_LayoutPseudoModel_AbsPageInBatch( |
| 432 CFXJSE_Arguments* pArguments) { | 432 CFXJSE_Arguments* pArguments) { |
| 433 int32_t iLength = pArguments->GetLength(); | 433 int32_t iLength = pArguments->GetLength(); |
| 434 if (iLength != 1) { | 434 if (iLength != 1) { |
| 435 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 435 Throw(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"absPageInBatch"); |
| 436 L"absPageInBatch"); | |
| 437 return; | 436 return; |
| 438 } | 437 } |
| 439 CXFA_Node* pNode = NULL; | 438 CXFA_Node* pNode = NULL; |
| 440 if (iLength >= 1) { | 439 if (iLength >= 1) { |
| 441 pNode = static_cast<CXFA_Node*>(pArguments->GetObject(0)); | 440 pNode = static_cast<CXFA_Node*>(pArguments->GetObject(0)); |
| 442 } | 441 } |
| 443 if (!pNode) { | 442 if (!pNode) { |
| 444 return; | 443 return; |
| 445 } | 444 } |
| 446 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); | 445 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 460 int32_t iPageCount = pNotify->GetDocProvider()->AbsPageInBatch(hDoc, hWidget); | 459 int32_t iPageCount = pNotify->GetDocProvider()->AbsPageInBatch(hDoc, hWidget); |
| 461 CFXJSE_Value* pValue = pArguments->GetReturnValue(); | 460 CFXJSE_Value* pValue = pArguments->GetReturnValue(); |
| 462 if (pValue) { | 461 if (pValue) { |
| 463 FXJSE_Value_SetInteger(pValue, iPageCount); | 462 FXJSE_Value_SetInteger(pValue, iPageCount); |
| 464 } | 463 } |
| 465 } | 464 } |
| 466 void CScript_LayoutPseudoModel::Script_LayoutPseudoModel_SheetInBatch( | 465 void CScript_LayoutPseudoModel::Script_LayoutPseudoModel_SheetInBatch( |
| 467 CFXJSE_Arguments* pArguments) { | 466 CFXJSE_Arguments* pArguments) { |
| 468 int32_t iLength = pArguments->GetLength(); | 467 int32_t iLength = pArguments->GetLength(); |
| 469 if (iLength != 1) { | 468 if (iLength != 1) { |
| 470 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 469 Throw(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"sheetInBatch"); |
| 471 L"sheetInBatch"); | |
| 472 return; | 470 return; |
| 473 } | 471 } |
| 474 CXFA_Node* pNode = NULL; | 472 CXFA_Node* pNode = NULL; |
| 475 if (iLength >= 1) { | 473 if (iLength >= 1) { |
| 476 pNode = static_cast<CXFA_Node*>(pArguments->GetObject(0)); | 474 pNode = static_cast<CXFA_Node*>(pArguments->GetObject(0)); |
| 477 } | 475 } |
| 478 if (!pNode) { | 476 if (!pNode) { |
| 479 return; | 477 return; |
| 480 } | 478 } |
| 481 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); | 479 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 516 CFXJSE_Arguments* pArguments, | 514 CFXJSE_Arguments* pArguments, |
| 517 FX_BOOL bAbsPage) { | 515 FX_BOOL bAbsPage) { |
| 518 int32_t iLength = pArguments->GetLength(); | 516 int32_t iLength = pArguments->GetLength(); |
| 519 if (iLength != 1) { | 517 if (iLength != 1) { |
| 520 const FX_WCHAR* methodName; | 518 const FX_WCHAR* methodName; |
| 521 if (bAbsPage) { | 519 if (bAbsPage) { |
| 522 methodName = L"absPage"; | 520 methodName = L"absPage"; |
| 523 } else { | 521 } else { |
| 524 methodName = L"page"; | 522 methodName = L"page"; |
| 525 } | 523 } |
| 526 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, methodName); | 524 Throw(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, methodName); |
| 527 return; | 525 return; |
| 528 } | 526 } |
| 529 CXFA_Node* pNode = NULL; | 527 CXFA_Node* pNode = NULL; |
| 530 if (iLength >= 1) { | 528 if (iLength >= 1) { |
| 531 pNode = static_cast<CXFA_Node*>(pArguments->GetObject(0)); | 529 pNode = static_cast<CXFA_Node*>(pArguments->GetObject(0)); |
| 532 } | 530 } |
| 533 int32_t iPage = 0; | 531 int32_t iPage = 0; |
| 534 CFXJSE_Value* pValue = pArguments->GetReturnValue(); | 532 CFXJSE_Value* pValue = pArguments->GetReturnValue(); |
| 535 if (!pNode && pValue) { | 533 if (!pNode && pValue) { |
| 536 FXJSE_Value_SetInteger(pValue, iPage); | 534 FXJSE_Value_SetInteger(pValue, iPage); |
| 537 } | 535 } |
| 538 CXFA_LayoutProcessor* pDocLayout = m_pDocument->GetDocLayout(); | 536 CXFA_LayoutProcessor* pDocLayout = m_pDocument->GetDocLayout(); |
| 539 if (!pDocLayout) { | 537 if (!pDocLayout) { |
| 540 return; | 538 return; |
| 541 } | 539 } |
| 542 CXFA_LayoutItem* pLayoutItem = pDocLayout->GetLayoutItem(pNode); | 540 CXFA_LayoutItem* pLayoutItem = pDocLayout->GetLayoutItem(pNode); |
| 543 if (!pLayoutItem) { | 541 if (!pLayoutItem) { |
| 544 FXJSE_Value_SetInteger(pValue, -1); | 542 FXJSE_Value_SetInteger(pValue, -1); |
| 545 return; | 543 return; |
| 546 } | 544 } |
| 547 iPage = pLayoutItem->GetFirst()->GetPage()->GetPageIndex(); | 545 iPage = pLayoutItem->GetFirst()->GetPage()->GetPageIndex(); |
| 548 if (pValue) { | 546 if (pValue) { |
| 549 FXJSE_Value_SetInteger(pValue, bAbsPage ? iPage : iPage + 1); | 547 FXJSE_Value_SetInteger(pValue, bAbsPage ? iPage : iPage + 1); |
| 550 } | 548 } |
| 551 } | 549 } |
| OLD | NEW |