| OLD | NEW |
| 1 // Copyright 2016 PDFium Authors. All rights reserved. | 1 // Copyright 2016 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 "fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.h" | 7 #include "fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.h" |
| 8 | 8 |
| 9 #include "core/fpdfapi/parser/cpdf_array.h" | 9 #include "core/fpdfapi/parser/cpdf_array.h" |
| 10 #include "core/fpdfapi/parser/cpdf_stream_acc.h" | 10 #include "core/fpdfapi/parser/cpdf_stream_acc.h" |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 65 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); | 65 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); |
| 66 if (!pFormFillEnv) | 66 if (!pFormFillEnv) |
| 67 return; | 67 return; |
| 68 | 68 |
| 69 CFX_FloatRect rcPage = CFX_FloatRect::FromCFXRectF(rt); | 69 CFX_FloatRect rcPage = CFX_FloatRect::FromCFXRectF(rt); |
| 70 pFormFillEnv->Invalidate((FPDF_PAGE)pPage, rcPage.left, rcPage.bottom, | 70 pFormFillEnv->Invalidate((FPDF_PAGE)pPage, rcPage.left, rcPage.bottom, |
| 71 rcPage.right, rcPage.top); | 71 rcPage.right, rcPage.top); |
| 72 } | 72 } |
| 73 | 73 |
| 74 void CPDFXFA_DocEnvironment::DisplayCaret(CXFA_FFWidget* hWidget, | 74 void CPDFXFA_DocEnvironment::DisplayCaret(CXFA_FFWidget* hWidget, |
| 75 FX_BOOL bVisible, | 75 bool bVisible, |
| 76 const CFX_RectF* pRtAnchor) { | 76 const CFX_RectF* pRtAnchor) { |
| 77 if (!hWidget || !pRtAnchor || !m_pContext->GetXFADoc() || | 77 if (!hWidget || !pRtAnchor || !m_pContext->GetXFADoc() || |
| 78 !m_pContext->GetFormFillEnv() || !m_pContext->GetXFADocView()) | 78 !m_pContext->GetFormFillEnv() || !m_pContext->GetXFADocView()) |
| 79 return; | 79 return; |
| 80 | 80 |
| 81 if (m_pContext->GetDocType() != DOCTYPE_DYNAMIC_XFA) | 81 if (m_pContext->GetDocType() != DOCTYPE_DYNAMIC_XFA) |
| 82 return; | 82 return; |
| 83 | 83 |
| 84 CXFA_FFWidgetHandler* pWidgetHandler = | 84 CXFA_FFWidgetHandler* pWidgetHandler = |
| 85 m_pContext->GetXFADocView()->GetWidgetHandler(); | 85 m_pContext->GetXFADocView()->GetWidgetHandler(); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 96 | 96 |
| 97 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); | 97 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); |
| 98 if (!pFormFillEnv) | 98 if (!pFormFillEnv) |
| 99 return; | 99 return; |
| 100 | 100 |
| 101 CFX_FloatRect rcCaret = CFX_FloatRect::FromCFXRectF(*pRtAnchor); | 101 CFX_FloatRect rcCaret = CFX_FloatRect::FromCFXRectF(*pRtAnchor); |
| 102 pFormFillEnv->DisplayCaret((FPDF_PAGE)pPage, bVisible, rcCaret.left, | 102 pFormFillEnv->DisplayCaret((FPDF_PAGE)pPage, bVisible, rcCaret.left, |
| 103 rcCaret.top, rcCaret.right, rcCaret.bottom); | 103 rcCaret.top, rcCaret.right, rcCaret.bottom); |
| 104 } | 104 } |
| 105 | 105 |
| 106 FX_BOOL CPDFXFA_DocEnvironment::GetPopupPos(CXFA_FFWidget* hWidget, | 106 bool CPDFXFA_DocEnvironment::GetPopupPos(CXFA_FFWidget* hWidget, |
| 107 FX_FLOAT fMinPopup, | 107 FX_FLOAT fMinPopup, |
| 108 FX_FLOAT fMaxPopup, | 108 FX_FLOAT fMaxPopup, |
| 109 const CFX_RectF& rtAnchor, | 109 const CFX_RectF& rtAnchor, |
| 110 CFX_RectF& rtPopup) { | 110 CFX_RectF& rtPopup) { |
| 111 if (!hWidget) | 111 if (!hWidget) |
| 112 return FALSE; | 112 return false; |
| 113 | 113 |
| 114 CXFA_FFPageView* pXFAPageView = hWidget->GetPageView(); | 114 CXFA_FFPageView* pXFAPageView = hWidget->GetPageView(); |
| 115 if (!pXFAPageView) | 115 if (!pXFAPageView) |
| 116 return FALSE; | 116 return false; |
| 117 | 117 |
| 118 CPDFXFA_Page* pPage = m_pContext->GetXFAPage(pXFAPageView); | 118 CPDFXFA_Page* pPage = m_pContext->GetXFAPage(pXFAPageView); |
| 119 if (!pPage) | 119 if (!pPage) |
| 120 return FALSE; | 120 return false; |
| 121 | 121 |
| 122 CXFA_WidgetAcc* pWidgetAcc = hWidget->GetDataAcc(); | 122 CXFA_WidgetAcc* pWidgetAcc = hWidget->GetDataAcc(); |
| 123 int nRotate = pWidgetAcc->GetRotate(); | 123 int nRotate = pWidgetAcc->GetRotate(); |
| 124 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); | 124 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); |
| 125 if (!pFormFillEnv) | 125 if (!pFormFillEnv) |
| 126 return FALSE; | 126 return false; |
| 127 | 127 |
| 128 FS_RECTF pageViewRect = {0.0f, 0.0f, 0.0f, 0.0f}; | 128 FS_RECTF pageViewRect = {0.0f, 0.0f, 0.0f, 0.0f}; |
| 129 pFormFillEnv->GetPageViewRect(pPage, pageViewRect); | 129 pFormFillEnv->GetPageViewRect(pPage, pageViewRect); |
| 130 | 130 |
| 131 int t1; | 131 int t1; |
| 132 int t2; | 132 int t2; |
| 133 CFX_FloatRect rcAnchor = CFX_FloatRect::FromCFXRectF(rtAnchor); | 133 CFX_FloatRect rcAnchor = CFX_FloatRect::FromCFXRectF(rtAnchor); |
| 134 switch (nRotate) { | 134 switch (nRotate) { |
| 135 case 90: { | 135 case 90: { |
| 136 t1 = (int)(pageViewRect.right - rcAnchor.right); | 136 t1 = (int)(pageViewRect.right - rcAnchor.right); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 159 t2 = (int)(rcAnchor.bottom - pageViewRect.bottom); | 159 t2 = (int)(rcAnchor.bottom - pageViewRect.bottom); |
| 160 if (rcAnchor.right > pageViewRect.right) | 160 if (rcAnchor.right > pageViewRect.right) |
| 161 rtPopup.left -= rcAnchor.right - pageViewRect.right; | 161 rtPopup.left -= rcAnchor.right - pageViewRect.right; |
| 162 break; | 162 break; |
| 163 } | 163 } |
| 164 } | 164 } |
| 165 | 165 |
| 166 int t; | 166 int t; |
| 167 uint32_t dwPos; | 167 uint32_t dwPos; |
| 168 if (t1 <= 0 && t2 <= 0) | 168 if (t1 <= 0 && t2 <= 0) |
| 169 return FALSE; | 169 return false; |
| 170 if (t1 <= 0) { | 170 if (t1 <= 0) { |
| 171 t = t2; | 171 t = t2; |
| 172 dwPos = 1; | 172 dwPos = 1; |
| 173 } else if (t2 <= 0) { | 173 } else if (t2 <= 0) { |
| 174 t = t1; | 174 t = t1; |
| 175 dwPos = 0; | 175 dwPos = 0; |
| 176 } else if (t1 > t2) { | 176 } else if (t1 > t2) { |
| 177 t = t1; | 177 t = t1; |
| 178 dwPos = 0; | 178 dwPos = 0; |
| 179 } else { | 179 } else { |
| (...skipping 29 matching lines...) Expand all Loading... |
| 209 } else { | 209 } else { |
| 210 rtPopup.top = -fPopupHeight; | 210 rtPopup.top = -fPopupHeight; |
| 211 rtPopup.height = fPopupHeight; | 211 rtPopup.height = fPopupHeight; |
| 212 } | 212 } |
| 213 break; | 213 break; |
| 214 } | 214 } |
| 215 default: | 215 default: |
| 216 break; | 216 break; |
| 217 } | 217 } |
| 218 | 218 |
| 219 return TRUE; | 219 return true; |
| 220 } | 220 } |
| 221 | 221 |
| 222 FX_BOOL CPDFXFA_DocEnvironment::PopupMenu(CXFA_FFWidget* hWidget, | 222 bool CPDFXFA_DocEnvironment::PopupMenu(CXFA_FFWidget* hWidget, |
| 223 CFX_PointF ptPopup) { | 223 CFX_PointF ptPopup) { |
| 224 if (!hWidget) | 224 if (!hWidget) |
| 225 return FALSE; | 225 return false; |
| 226 | 226 |
| 227 CXFA_FFPageView* pXFAPageView = hWidget->GetPageView(); | 227 CXFA_FFPageView* pXFAPageView = hWidget->GetPageView(); |
| 228 if (!pXFAPageView) | 228 if (!pXFAPageView) |
| 229 return FALSE; | 229 return false; |
| 230 | 230 |
| 231 CPDFXFA_Page* pPage = m_pContext->GetXFAPage(pXFAPageView); | 231 CPDFXFA_Page* pPage = m_pContext->GetXFAPage(pXFAPageView); |
| 232 if (!pPage) | 232 if (!pPage) |
| 233 return FALSE; | 233 return false; |
| 234 | 234 |
| 235 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); | 235 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); |
| 236 if (!pFormFillEnv) | 236 if (!pFormFillEnv) |
| 237 return FALSE; | 237 return false; |
| 238 | 238 |
| 239 int menuFlag = 0; | 239 int menuFlag = 0; |
| 240 if (hWidget->CanUndo()) | 240 if (hWidget->CanUndo()) |
| 241 menuFlag |= FXFA_MENU_UNDO; | 241 menuFlag |= FXFA_MENU_UNDO; |
| 242 if (hWidget->CanRedo()) | 242 if (hWidget->CanRedo()) |
| 243 menuFlag |= FXFA_MENU_REDO; | 243 menuFlag |= FXFA_MENU_REDO; |
| 244 if (hWidget->CanPaste()) | 244 if (hWidget->CanPaste()) |
| 245 menuFlag |= FXFA_MENU_PASTE; | 245 menuFlag |= FXFA_MENU_PASTE; |
| 246 if (hWidget->CanCopy()) | 246 if (hWidget->CanCopy()) |
| 247 menuFlag |= FXFA_MENU_COPY; | 247 menuFlag |= FXFA_MENU_COPY; |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 351 iCurPage >= m_pContext->GetFormFillEnv()->GetPageCount()) { | 351 iCurPage >= m_pContext->GetFormFillEnv()->GetPageCount()) { |
| 352 return; | 352 return; |
| 353 } | 353 } |
| 354 | 354 |
| 355 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); | 355 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); |
| 356 if (!pFormFillEnv) | 356 if (!pFormFillEnv) |
| 357 return; | 357 return; |
| 358 pFormFillEnv->SetCurrentPage(this, iCurPage); | 358 pFormFillEnv->SetCurrentPage(this, iCurPage); |
| 359 } | 359 } |
| 360 | 360 |
| 361 FX_BOOL CPDFXFA_DocEnvironment::IsCalculationsEnabled(CXFA_FFDoc* hDoc) { | 361 bool CPDFXFA_DocEnvironment::IsCalculationsEnabled(CXFA_FFDoc* hDoc) { |
| 362 if (hDoc != m_pContext->GetXFADoc() || !m_pContext->GetFormFillEnv()) | 362 if (hDoc != m_pContext->GetXFADoc() || !m_pContext->GetFormFillEnv()) |
| 363 return FALSE; | 363 return false; |
| 364 if (m_pContext->GetFormFillEnv()->GetInterForm()) { | 364 if (m_pContext->GetFormFillEnv()->GetInterForm()) { |
| 365 return m_pContext->GetFormFillEnv() | 365 return m_pContext->GetFormFillEnv() |
| 366 ->GetInterForm() | 366 ->GetInterForm() |
| 367 ->IsXfaCalculateEnabled(); | 367 ->IsXfaCalculateEnabled(); |
| 368 } | 368 } |
| 369 return FALSE; | 369 return false; |
| 370 } | 370 } |
| 371 | 371 |
| 372 void CPDFXFA_DocEnvironment::SetCalculationsEnabled(CXFA_FFDoc* hDoc, | 372 void CPDFXFA_DocEnvironment::SetCalculationsEnabled(CXFA_FFDoc* hDoc, |
| 373 FX_BOOL bEnabled) { | 373 bool bEnabled) { |
| 374 if (hDoc != m_pContext->GetXFADoc() || !m_pContext->GetFormFillEnv()) | 374 if (hDoc != m_pContext->GetXFADoc() || !m_pContext->GetFormFillEnv()) |
| 375 return; | 375 return; |
| 376 if (m_pContext->GetFormFillEnv()->GetInterForm()) { | 376 if (m_pContext->GetFormFillEnv()->GetInterForm()) { |
| 377 m_pContext->GetFormFillEnv()->GetInterForm()->XfaEnableCalculate(bEnabled); | 377 m_pContext->GetFormFillEnv()->GetInterForm()->XfaEnableCalculate(bEnabled); |
| 378 } | 378 } |
| 379 } | 379 } |
| 380 | 380 |
| 381 void CPDFXFA_DocEnvironment::GetTitle(CXFA_FFDoc* hDoc, | 381 void CPDFXFA_DocEnvironment::GetTitle(CXFA_FFDoc* hDoc, |
| 382 CFX_WideString& wsTitle) { | 382 CFX_WideString& wsTitle) { |
| 383 if (hDoc != m_pContext->GetXFADoc() || !m_pContext->GetPDFDoc()) | 383 if (hDoc != m_pContext->GetXFADoc() || !m_pContext->GetPDFDoc()) |
| (...skipping 12 matching lines...) Expand all Loading... |
| 396 const CFX_WideString& wsTitle) { | 396 const CFX_WideString& wsTitle) { |
| 397 if (hDoc != m_pContext->GetXFADoc() || !m_pContext->GetPDFDoc()) | 397 if (hDoc != m_pContext->GetXFADoc() || !m_pContext->GetPDFDoc()) |
| 398 return; | 398 return; |
| 399 | 399 |
| 400 if (CPDF_Dictionary* pInfoDict = m_pContext->GetPDFDoc()->GetInfo()) | 400 if (CPDF_Dictionary* pInfoDict = m_pContext->GetPDFDoc()->GetInfo()) |
| 401 pInfoDict->SetFor("Title", new CPDF_String(wsTitle)); | 401 pInfoDict->SetFor("Title", new CPDF_String(wsTitle)); |
| 402 } | 402 } |
| 403 | 403 |
| 404 void CPDFXFA_DocEnvironment::ExportData(CXFA_FFDoc* hDoc, | 404 void CPDFXFA_DocEnvironment::ExportData(CXFA_FFDoc* hDoc, |
| 405 const CFX_WideString& wsFilePath, | 405 const CFX_WideString& wsFilePath, |
| 406 FX_BOOL bXDP) { | 406 bool bXDP) { |
| 407 if (hDoc != m_pContext->GetXFADoc()) | 407 if (hDoc != m_pContext->GetXFADoc()) |
| 408 return; | 408 return; |
| 409 | 409 |
| 410 if (m_pContext->GetDocType() != DOCTYPE_DYNAMIC_XFA && | 410 if (m_pContext->GetDocType() != DOCTYPE_DYNAMIC_XFA && |
| 411 m_pContext->GetDocType() != DOCTYPE_STATIC_XFA) { | 411 m_pContext->GetDocType() != DOCTYPE_STATIC_XFA) { |
| 412 return; | 412 return; |
| 413 } | 413 } |
| 414 | 414 |
| 415 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); | 415 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); |
| 416 if (!pFormFillEnv) | 416 if (!pFormFillEnv) |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 512 return; | 512 return; |
| 513 | 513 |
| 514 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); | 514 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); |
| 515 if (!pFormFillEnv) | 515 if (!pFormFillEnv) |
| 516 return; | 516 return; |
| 517 | 517 |
| 518 CFX_WideStringC str(bsURL.c_str()); | 518 CFX_WideStringC str(bsURL.c_str()); |
| 519 pFormFillEnv->GotoURL(this, str); | 519 pFormFillEnv->GotoURL(this, str); |
| 520 } | 520 } |
| 521 | 521 |
| 522 FX_BOOL CPDFXFA_DocEnvironment::IsValidationsEnabled(CXFA_FFDoc* hDoc) { | 522 bool CPDFXFA_DocEnvironment::IsValidationsEnabled(CXFA_FFDoc* hDoc) { |
| 523 if (hDoc != m_pContext->GetXFADoc() || !m_pContext->GetFormFillEnv()) | 523 if (hDoc != m_pContext->GetXFADoc() || !m_pContext->GetFormFillEnv()) |
| 524 return FALSE; | 524 return false; |
| 525 if (m_pContext->GetFormFillEnv()->GetInterForm()) { | 525 if (m_pContext->GetFormFillEnv()->GetInterForm()) { |
| 526 return m_pContext->GetFormFillEnv() | 526 return m_pContext->GetFormFillEnv() |
| 527 ->GetInterForm() | 527 ->GetInterForm() |
| 528 ->IsXfaValidationsEnabled(); | 528 ->IsXfaValidationsEnabled(); |
| 529 } | 529 } |
| 530 return TRUE; | 530 return true; |
| 531 } | 531 } |
| 532 | 532 |
| 533 void CPDFXFA_DocEnvironment::SetValidationsEnabled(CXFA_FFDoc* hDoc, | 533 void CPDFXFA_DocEnvironment::SetValidationsEnabled(CXFA_FFDoc* hDoc, |
| 534 FX_BOOL bEnabled) { | 534 bool bEnabled) { |
| 535 if (hDoc != m_pContext->GetXFADoc() || !m_pContext->GetFormFillEnv()) | 535 if (hDoc != m_pContext->GetXFADoc() || !m_pContext->GetFormFillEnv()) |
| 536 return; | 536 return; |
| 537 if (m_pContext->GetFormFillEnv()->GetInterForm()) { | 537 if (m_pContext->GetFormFillEnv()->GetInterForm()) { |
| 538 m_pContext->GetFormFillEnv()->GetInterForm()->XfaSetValidationsEnabled( | 538 m_pContext->GetFormFillEnv()->GetInterForm()->XfaSetValidationsEnabled( |
| 539 bEnabled); | 539 bEnabled); |
| 540 } | 540 } |
| 541 } | 541 } |
| 542 | 542 |
| 543 void CPDFXFA_DocEnvironment::SetFocusWidget(CXFA_FFDoc* hDoc, | 543 void CPDFXFA_DocEnvironment::SetFocusWidget(CXFA_FFDoc* hDoc, |
| 544 CXFA_FFWidget* hWidget) { | 544 CXFA_FFWidget* hWidget) { |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 592 return 0; | 592 return 0; |
| 593 | 593 |
| 594 CPDFSDK_InterForm* pInterForm = m_pContext->GetFormFillEnv()->GetInterForm(); | 594 CPDFSDK_InterForm* pInterForm = m_pContext->GetFormFillEnv()->GetInterForm(); |
| 595 if (!pInterForm) | 595 if (!pInterForm) |
| 596 return 0; | 596 return 0; |
| 597 | 597 |
| 598 return ArgbEncode(pInterForm->GetHighlightAlpha(), | 598 return ArgbEncode(pInterForm->GetHighlightAlpha(), |
| 599 pInterForm->GetHighlightColor(FPDF_FORMFIELD_XFA)); | 599 pInterForm->GetHighlightColor(FPDF_FORMFIELD_XFA)); |
| 600 } | 600 } |
| 601 | 601 |
| 602 FX_BOOL CPDFXFA_DocEnvironment::NotifySubmit(FX_BOOL bPrevOrPost) { | 602 bool CPDFXFA_DocEnvironment::NotifySubmit(bool bPrevOrPost) { |
| 603 if (bPrevOrPost) | 603 if (bPrevOrPost) |
| 604 return OnBeforeNotifySubmit(); | 604 return OnBeforeNotifySubmit(); |
| 605 | 605 |
| 606 OnAfterNotifySubmit(); | 606 OnAfterNotifySubmit(); |
| 607 return TRUE; | 607 return true; |
| 608 } | 608 } |
| 609 | 609 |
| 610 FX_BOOL CPDFXFA_DocEnvironment::OnBeforeNotifySubmit() { | 610 bool CPDFXFA_DocEnvironment::OnBeforeNotifySubmit() { |
| 611 if (m_pContext->GetDocType() != DOCTYPE_DYNAMIC_XFA && | 611 if (m_pContext->GetDocType() != DOCTYPE_DYNAMIC_XFA && |
| 612 m_pContext->GetDocType() != DOCTYPE_STATIC_XFA) { | 612 m_pContext->GetDocType() != DOCTYPE_STATIC_XFA) { |
| 613 return TRUE; | 613 return true; |
| 614 } | 614 } |
| 615 | 615 |
| 616 if (!m_pContext->GetXFADocView()) | 616 if (!m_pContext->GetXFADocView()) |
| 617 return TRUE; | 617 return true; |
| 618 | 618 |
| 619 CXFA_FFWidgetHandler* pWidgetHandler = | 619 CXFA_FFWidgetHandler* pWidgetHandler = |
| 620 m_pContext->GetXFADocView()->GetWidgetHandler(); | 620 m_pContext->GetXFADocView()->GetWidgetHandler(); |
| 621 if (!pWidgetHandler) | 621 if (!pWidgetHandler) |
| 622 return TRUE; | 622 return true; |
| 623 | 623 |
| 624 std::unique_ptr<CXFA_WidgetAccIterator> pWidgetAccIterator( | 624 std::unique_ptr<CXFA_WidgetAccIterator> pWidgetAccIterator( |
| 625 m_pContext->GetXFADocView()->CreateWidgetAccIterator()); | 625 m_pContext->GetXFADocView()->CreateWidgetAccIterator()); |
| 626 if (pWidgetAccIterator) { | 626 if (pWidgetAccIterator) { |
| 627 CXFA_EventParam Param; | 627 CXFA_EventParam Param; |
| 628 Param.m_eType = XFA_EVENT_PreSubmit; | 628 Param.m_eType = XFA_EVENT_PreSubmit; |
| 629 while (CXFA_WidgetAcc* pWidgetAcc = pWidgetAccIterator->MoveToNext()) | 629 while (CXFA_WidgetAcc* pWidgetAcc = pWidgetAccIterator->MoveToNext()) |
| 630 pWidgetHandler->ProcessEvent(pWidgetAcc, &Param); | 630 pWidgetHandler->ProcessEvent(pWidgetAcc, &Param); |
| 631 } | 631 } |
| 632 | 632 |
| 633 pWidgetAccIterator.reset( | 633 pWidgetAccIterator.reset( |
| 634 m_pContext->GetXFADocView()->CreateWidgetAccIterator()); | 634 m_pContext->GetXFADocView()->CreateWidgetAccIterator()); |
| 635 if (!pWidgetAccIterator) | 635 if (!pWidgetAccIterator) |
| 636 return TRUE; | 636 return true; |
| 637 | 637 |
| 638 CXFA_WidgetAcc* pWidgetAcc = pWidgetAccIterator->MoveToNext(); | 638 CXFA_WidgetAcc* pWidgetAcc = pWidgetAccIterator->MoveToNext(); |
| 639 pWidgetAcc = pWidgetAccIterator->MoveToNext(); | 639 pWidgetAcc = pWidgetAccIterator->MoveToNext(); |
| 640 while (pWidgetAcc) { | 640 while (pWidgetAcc) { |
| 641 int fRet = pWidgetAcc->ProcessValidate(-1); | 641 int fRet = pWidgetAcc->ProcessValidate(-1); |
| 642 if (fRet == XFA_EVENTERROR_Error) { | 642 if (fRet == XFA_EVENTERROR_Error) { |
| 643 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); | 643 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); |
| 644 if (!pFormFillEnv) | 644 if (!pFormFillEnv) |
| 645 return FALSE; | 645 return false; |
| 646 | 646 |
| 647 CFX_WideString ws; | 647 CFX_WideString ws; |
| 648 ws.FromLocal(IDS_XFA_Validate_Input); | 648 ws.FromLocal(IDS_XFA_Validate_Input); |
| 649 CFX_ByteString bs = ws.UTF16LE_Encode(); | 649 CFX_ByteString bs = ws.UTF16LE_Encode(); |
| 650 int len = bs.GetLength(); | 650 int len = bs.GetLength(); |
| 651 pFormFillEnv->Alert((FPDF_WIDESTRING)bs.GetBuffer(len), | 651 pFormFillEnv->Alert((FPDF_WIDESTRING)bs.GetBuffer(len), |
| 652 (FPDF_WIDESTRING)L"", 0, 1); | 652 (FPDF_WIDESTRING)L"", 0, 1); |
| 653 bs.ReleaseBuffer(len); | 653 bs.ReleaseBuffer(len); |
| 654 return FALSE; | 654 return false; |
| 655 } | 655 } |
| 656 pWidgetAcc = pWidgetAccIterator->MoveToNext(); | 656 pWidgetAcc = pWidgetAccIterator->MoveToNext(); |
| 657 } | 657 } |
| 658 m_pContext->GetXFADocView()->UpdateDocView(); | 658 m_pContext->GetXFADocView()->UpdateDocView(); |
| 659 | 659 |
| 660 return TRUE; | 660 return true; |
| 661 } | 661 } |
| 662 | 662 |
| 663 void CPDFXFA_DocEnvironment::OnAfterNotifySubmit() { | 663 void CPDFXFA_DocEnvironment::OnAfterNotifySubmit() { |
| 664 if (m_pContext->GetDocType() != DOCTYPE_DYNAMIC_XFA && | 664 if (m_pContext->GetDocType() != DOCTYPE_DYNAMIC_XFA && |
| 665 m_pContext->GetDocType() != DOCTYPE_STATIC_XFA) | 665 m_pContext->GetDocType() != DOCTYPE_STATIC_XFA) |
| 666 return; | 666 return; |
| 667 | 667 |
| 668 if (!m_pContext->GetXFADocView()) | 668 if (!m_pContext->GetXFADocView()) |
| 669 return; | 669 return; |
| 670 | 670 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 681 CXFA_EventParam Param; | 681 CXFA_EventParam Param; |
| 682 Param.m_eType = XFA_EVENT_PostSubmit; | 682 Param.m_eType = XFA_EVENT_PostSubmit; |
| 683 CXFA_WidgetAcc* pWidgetAcc = pWidgetAccIterator->MoveToNext(); | 683 CXFA_WidgetAcc* pWidgetAcc = pWidgetAccIterator->MoveToNext(); |
| 684 while (pWidgetAcc) { | 684 while (pWidgetAcc) { |
| 685 pWidgetHandler->ProcessEvent(pWidgetAcc, &Param); | 685 pWidgetHandler->ProcessEvent(pWidgetAcc, &Param); |
| 686 pWidgetAcc = pWidgetAccIterator->MoveToNext(); | 686 pWidgetAcc = pWidgetAccIterator->MoveToNext(); |
| 687 } | 687 } |
| 688 m_pContext->GetXFADocView()->UpdateDocView(); | 688 m_pContext->GetXFADocView()->UpdateDocView(); |
| 689 } | 689 } |
| 690 | 690 |
| 691 FX_BOOL CPDFXFA_DocEnvironment::SubmitData(CXFA_FFDoc* hDoc, | 691 bool CPDFXFA_DocEnvironment::SubmitData(CXFA_FFDoc* hDoc, CXFA_Submit submit) { |
| 692 CXFA_Submit submit) { | 692 if (!NotifySubmit(true) || !m_pContext->GetXFADocView()) |
| 693 if (!NotifySubmit(TRUE) || !m_pContext->GetXFADocView()) | 693 return false; |
| 694 return FALSE; | |
| 695 | 694 |
| 696 m_pContext->GetXFADocView()->UpdateDocView(); | 695 m_pContext->GetXFADocView()->UpdateDocView(); |
| 697 FX_BOOL ret = SubmitDataInternal(hDoc, submit); | 696 bool ret = SubmitDataInternal(hDoc, submit); |
| 698 NotifySubmit(FALSE); | 697 NotifySubmit(false); |
| 699 return ret; | 698 return ret; |
| 700 } | 699 } |
| 701 | 700 |
| 702 IFX_SeekableReadStream* CPDFXFA_DocEnvironment::OpenLinkedFile( | 701 IFX_SeekableReadStream* CPDFXFA_DocEnvironment::OpenLinkedFile( |
| 703 CXFA_FFDoc* hDoc, | 702 CXFA_FFDoc* hDoc, |
| 704 const CFX_WideString& wsLink) { | 703 const CFX_WideString& wsLink) { |
| 705 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); | 704 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); |
| 706 if (!pFormFillEnv) | 705 if (!pFormFillEnv) |
| 707 return nullptr; | 706 return nullptr; |
| 708 | 707 |
| 709 CFX_ByteString bs = wsLink.UTF16LE_Encode(); | 708 CFX_ByteString bs = wsLink.UTF16LE_Encode(); |
| 710 int len = bs.GetLength(); | 709 int len = bs.GetLength(); |
| 711 FPDF_FILEHANDLER* pFileHandler = | 710 FPDF_FILEHANDLER* pFileHandler = |
| 712 pFormFillEnv->OpenFile(0, (FPDF_WIDESTRING)bs.GetBuffer(len), "rb"); | 711 pFormFillEnv->OpenFile(0, (FPDF_WIDESTRING)bs.GetBuffer(len), "rb"); |
| 713 bs.ReleaseBuffer(len); | 712 bs.ReleaseBuffer(len); |
| 714 if (!pFileHandler) | 713 if (!pFileHandler) |
| 715 return nullptr; | 714 return nullptr; |
| 716 | 715 |
| 717 return new CFPDF_FileStream(pFileHandler); | 716 return new CFPDF_FileStream(pFileHandler); |
| 718 } | 717 } |
| 719 | 718 |
| 720 FX_BOOL CPDFXFA_DocEnvironment::ExportSubmitFile(FPDF_FILEHANDLER* pFileHandler, | 719 bool CPDFXFA_DocEnvironment::ExportSubmitFile(FPDF_FILEHANDLER* pFileHandler, |
| 721 int fileType, | 720 int fileType, |
| 722 FPDF_DWORD encodeType, | 721 FPDF_DWORD encodeType, |
| 723 FPDF_DWORD flag) { | 722 FPDF_DWORD flag) { |
| 724 if (!m_pContext->GetXFADocView()) | 723 if (!m_pContext->GetXFADocView()) |
| 725 return FALSE; | 724 return false; |
| 726 | 725 |
| 727 CFX_ByteString content; | 726 CFX_ByteString content; |
| 728 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); | 727 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); |
| 729 if (!pFormFillEnv) | 728 if (!pFormFillEnv) |
| 730 return FALSE; | 729 return false; |
| 731 | 730 |
| 732 CFPDF_FileStream fileStream(pFileHandler); | 731 CFPDF_FileStream fileStream(pFileHandler); |
| 733 if (fileType == FXFA_SAVEAS_XML) { | 732 if (fileType == FXFA_SAVEAS_XML) { |
| 734 const char kContent[] = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"; | 733 const char kContent[] = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"; |
| 735 fileStream.WriteBlock(kContent, 0, strlen(kContent)); | 734 fileStream.WriteBlock(kContent, 0, strlen(kContent)); |
| 736 m_pContext->GetXFADoc()->SavePackage(XFA_HASHCODE_Data, &fileStream, | 735 m_pContext->GetXFADoc()->SavePackage(XFA_HASHCODE_Data, &fileStream, |
| 737 nullptr); | 736 nullptr); |
| 738 return TRUE; | 737 return true; |
| 739 } | 738 } |
| 740 | 739 |
| 741 if (fileType != FXFA_SAVEAS_XDP) | 740 if (fileType != FXFA_SAVEAS_XDP) |
| 742 return TRUE; | 741 return true; |
| 743 | 742 |
| 744 if (!flag) { | 743 if (!flag) { |
| 745 flag = FXFA_CONFIG | FXFA_TEMPLATE | FXFA_LOCALESET | FXFA_DATASETS | | 744 flag = FXFA_CONFIG | FXFA_TEMPLATE | FXFA_LOCALESET | FXFA_DATASETS | |
| 746 FXFA_XMPMETA | FXFA_XFDF | FXFA_FORM; | 745 FXFA_XMPMETA | FXFA_XFDF | FXFA_FORM; |
| 747 } | 746 } |
| 748 if (!m_pContext->GetPDFDoc()) { | 747 if (!m_pContext->GetPDFDoc()) { |
| 749 fileStream.Flush(); | 748 fileStream.Flush(); |
| 750 return FALSE; | 749 return false; |
| 751 } | 750 } |
| 752 | 751 |
| 753 CPDF_Dictionary* pRoot = m_pContext->GetPDFDoc()->GetRoot(); | 752 CPDF_Dictionary* pRoot = m_pContext->GetPDFDoc()->GetRoot(); |
| 754 if (!pRoot) { | 753 if (!pRoot) { |
| 755 fileStream.Flush(); | 754 fileStream.Flush(); |
| 756 return FALSE; | 755 return false; |
| 757 } | 756 } |
| 758 | 757 |
| 759 CPDF_Dictionary* pAcroForm = pRoot->GetDictFor("AcroForm"); | 758 CPDF_Dictionary* pAcroForm = pRoot->GetDictFor("AcroForm"); |
| 760 if (!pAcroForm) { | 759 if (!pAcroForm) { |
| 761 fileStream.Flush(); | 760 fileStream.Flush(); |
| 762 return FALSE; | 761 return false; |
| 763 } | 762 } |
| 764 | 763 |
| 765 CPDF_Array* pArray = ToArray(pAcroForm->GetObjectFor("XFA")); | 764 CPDF_Array* pArray = ToArray(pAcroForm->GetObjectFor("XFA")); |
| 766 if (!pArray) { | 765 if (!pArray) { |
| 767 fileStream.Flush(); | 766 fileStream.Flush(); |
| 768 return FALSE; | 767 return false; |
| 769 } | 768 } |
| 770 | 769 |
| 771 int size = pArray->GetCount(); | 770 int size = pArray->GetCount(); |
| 772 for (int i = 1; i < size; i += 2) { | 771 for (int i = 1; i < size; i += 2) { |
| 773 CPDF_Object* pPDFObj = pArray->GetObjectAt(i); | 772 CPDF_Object* pPDFObj = pArray->GetObjectAt(i); |
| 774 CPDF_Object* pPrePDFObj = pArray->GetObjectAt(i - 1); | 773 CPDF_Object* pPrePDFObj = pArray->GetObjectAt(i - 1); |
| 775 if (!pPrePDFObj->IsString()) | 774 if (!pPrePDFObj->IsString()) |
| 776 continue; | 775 continue; |
| 777 if (!pPDFObj->IsReference()) | 776 if (!pPDFObj->IsReference()) |
| 778 continue; | 777 continue; |
| (...skipping 18 matching lines...) Expand all Loading... |
| 797 if (pPrePDFObj->GetString() == "form") { | 796 if (pPrePDFObj->GetString() == "form") { |
| 798 m_pContext->GetXFADoc()->SavePackage(XFA_HASHCODE_Form, &fileStream, | 797 m_pContext->GetXFADoc()->SavePackage(XFA_HASHCODE_Form, &fileStream, |
| 799 nullptr); | 798 nullptr); |
| 800 } else if (pPrePDFObj->GetString() == "datasets") { | 799 } else if (pPrePDFObj->GetString() == "datasets") { |
| 801 m_pContext->GetXFADoc()->SavePackage(XFA_HASHCODE_Datasets, &fileStream, | 800 m_pContext->GetXFADoc()->SavePackage(XFA_HASHCODE_Datasets, &fileStream, |
| 802 nullptr); | 801 nullptr); |
| 803 } else { | 802 } else { |
| 804 // PDF,creator. | 803 // PDF,creator. |
| 805 } | 804 } |
| 806 } | 805 } |
| 807 return TRUE; | 806 return true; |
| 808 } | 807 } |
| 809 | 808 |
| 810 void CPDFXFA_DocEnvironment::ToXFAContentFlags(CFX_WideString csSrcContent, | 809 void CPDFXFA_DocEnvironment::ToXFAContentFlags(CFX_WideString csSrcContent, |
| 811 FPDF_DWORD& flag) { | 810 FPDF_DWORD& flag) { |
| 812 if (csSrcContent.Find(L" config ", 0) != -1) | 811 if (csSrcContent.Find(L" config ", 0) != -1) |
| 813 flag |= FXFA_CONFIG; | 812 flag |= FXFA_CONFIG; |
| 814 if (csSrcContent.Find(L" template ", 0) != -1) | 813 if (csSrcContent.Find(L" template ", 0) != -1) |
| 815 flag |= FXFA_TEMPLATE; | 814 flag |= FXFA_TEMPLATE; |
| 816 if (csSrcContent.Find(L" localeSet ", 0) != -1) | 815 if (csSrcContent.Find(L" localeSet ", 0) != -1) |
| 817 flag |= FXFA_LOCALESET; | 816 flag |= FXFA_LOCALESET; |
| 818 if (csSrcContent.Find(L" datasets ", 0) != -1) | 817 if (csSrcContent.Find(L" datasets ", 0) != -1) |
| 819 flag |= FXFA_DATASETS; | 818 flag |= FXFA_DATASETS; |
| 820 if (csSrcContent.Find(L" xmpmeta ", 0) != -1) | 819 if (csSrcContent.Find(L" xmpmeta ", 0) != -1) |
| 821 flag |= FXFA_XMPMETA; | 820 flag |= FXFA_XMPMETA; |
| 822 if (csSrcContent.Find(L" xfdf ", 0) != -1) | 821 if (csSrcContent.Find(L" xfdf ", 0) != -1) |
| 823 flag |= FXFA_XFDF; | 822 flag |= FXFA_XFDF; |
| 824 if (csSrcContent.Find(L" form ", 0) != -1) | 823 if (csSrcContent.Find(L" form ", 0) != -1) |
| 825 flag |= FXFA_FORM; | 824 flag |= FXFA_FORM; |
| 826 if (flag == 0) { | 825 if (flag == 0) { |
| 827 flag = FXFA_CONFIG | FXFA_TEMPLATE | FXFA_LOCALESET | FXFA_DATASETS | | 826 flag = FXFA_CONFIG | FXFA_TEMPLATE | FXFA_LOCALESET | FXFA_DATASETS | |
| 828 FXFA_XMPMETA | FXFA_XFDF | FXFA_FORM; | 827 FXFA_XMPMETA | FXFA_XFDF | FXFA_FORM; |
| 829 } | 828 } |
| 830 } | 829 } |
| 831 | 830 |
| 832 FX_BOOL CPDFXFA_DocEnvironment::MailToInfo(CFX_WideString& csURL, | 831 bool CPDFXFA_DocEnvironment::MailToInfo(CFX_WideString& csURL, |
| 833 CFX_WideString& csToAddress, | 832 CFX_WideString& csToAddress, |
| 834 CFX_WideString& csCCAddress, | 833 CFX_WideString& csCCAddress, |
| 835 CFX_WideString& csBCCAddress, | 834 CFX_WideString& csBCCAddress, |
| 836 CFX_WideString& csSubject, | 835 CFX_WideString& csSubject, |
| 837 CFX_WideString& csMsg) { | 836 CFX_WideString& csMsg) { |
| 838 CFX_WideString srcURL = csURL; | 837 CFX_WideString srcURL = csURL; |
| 839 srcURL.TrimLeft(); | 838 srcURL.TrimLeft(); |
| 840 if (srcURL.Left(7).CompareNoCase(L"mailto:") != 0) | 839 if (srcURL.Left(7).CompareNoCase(L"mailto:") != 0) |
| 841 return FALSE; | 840 return false; |
| 842 | 841 |
| 843 int pos = srcURL.Find(L'?', 0); | 842 int pos = srcURL.Find(L'?', 0); |
| 844 CFX_WideString tmp; | 843 CFX_WideString tmp; |
| 845 if (pos == -1) { | 844 if (pos == -1) { |
| 846 pos = srcURL.Find(L'@', 0); | 845 pos = srcURL.Find(L'@', 0); |
| 847 if (pos == -1) | 846 if (pos == -1) |
| 848 return FALSE; | 847 return false; |
| 849 | 848 |
| 850 tmp = srcURL.Right(csURL.GetLength() - 7); | 849 tmp = srcURL.Right(csURL.GetLength() - 7); |
| 851 } else { | 850 } else { |
| 852 tmp = srcURL.Left(pos); | 851 tmp = srcURL.Left(pos); |
| 853 tmp = tmp.Right(tmp.GetLength() - 7); | 852 tmp = tmp.Right(tmp.GetLength() - 7); |
| 854 } | 853 } |
| 855 tmp.TrimLeft(); | 854 tmp.TrimLeft(); |
| 856 tmp.TrimRight(); | 855 tmp.TrimRight(); |
| 857 | 856 |
| 858 csToAddress = tmp; | 857 csToAddress = tmp; |
| (...skipping 25 matching lines...) Expand all Loading... |
| 884 } else if (tmp.GetLength() >= 5 && | 883 } else if (tmp.GetLength() >= 5 && |
| 885 tmp.Left(5).CompareNoCase(L"body=") == 0) { | 884 tmp.Left(5).CompareNoCase(L"body=") == 0) { |
| 886 tmp = tmp.Right(tmp.GetLength() - 5); | 885 tmp = tmp.Right(tmp.GetLength() - 5); |
| 887 csMsg += tmp; | 886 csMsg += tmp; |
| 888 } | 887 } |
| 889 srcURL = (pos == -1) ? L"" : srcURL.Right(csURL.GetLength() - (pos + 1)); | 888 srcURL = (pos == -1) ? L"" : srcURL.Right(csURL.GetLength() - (pos + 1)); |
| 890 } | 889 } |
| 891 csToAddress.Replace(L",", L";"); | 890 csToAddress.Replace(L",", L";"); |
| 892 csCCAddress.Replace(L",", L";"); | 891 csCCAddress.Replace(L",", L";"); |
| 893 csBCCAddress.Replace(L",", L";"); | 892 csBCCAddress.Replace(L",", L";"); |
| 894 return TRUE; | 893 return true; |
| 895 } | 894 } |
| 896 | 895 |
| 897 FX_BOOL CPDFXFA_DocEnvironment::SubmitDataInternal(CXFA_FFDoc* hDoc, | 896 bool CPDFXFA_DocEnvironment::SubmitDataInternal(CXFA_FFDoc* hDoc, |
| 898 CXFA_Submit submit) { | 897 CXFA_Submit submit) { |
| 899 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); | 898 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); |
| 900 if (!pFormFillEnv) | 899 if (!pFormFillEnv) |
| 901 return FALSE; | 900 return false; |
| 902 | 901 |
| 903 CFX_WideStringC csURLC; | 902 CFX_WideStringC csURLC; |
| 904 submit.GetSubmitTarget(csURLC); | 903 submit.GetSubmitTarget(csURLC); |
| 905 CFX_WideString csURL(csURLC); | 904 CFX_WideString csURL(csURLC); |
| 906 if (csURL.IsEmpty()) { | 905 if (csURL.IsEmpty()) { |
| 907 CFX_WideString ws; | 906 CFX_WideString ws; |
| 908 ws.FromLocal("Submit cancelled."); | 907 ws.FromLocal("Submit cancelled."); |
| 909 CFX_ByteString bs = ws.UTF16LE_Encode(); | 908 CFX_ByteString bs = ws.UTF16LE_Encode(); |
| 910 int len = bs.GetLength(); | 909 int len = bs.GetLength(); |
| 911 pFormFillEnv->Alert((FPDF_WIDESTRING)bs.GetBuffer(len), | 910 pFormFillEnv->Alert((FPDF_WIDESTRING)bs.GetBuffer(len), |
| 912 (FPDF_WIDESTRING)L"", 0, 4); | 911 (FPDF_WIDESTRING)L"", 0, 4); |
| 913 bs.ReleaseBuffer(len); | 912 bs.ReleaseBuffer(len); |
| 914 return FALSE; | 913 return false; |
| 915 } | 914 } |
| 916 | 915 |
| 917 FPDF_FILEHANDLER* pFileHandler = nullptr; | 916 FPDF_FILEHANDLER* pFileHandler = nullptr; |
| 918 int fileFlag = -1; | 917 int fileFlag = -1; |
| 919 switch (submit.GetSubmitFormat()) { | 918 switch (submit.GetSubmitFormat()) { |
| 920 case XFA_ATTRIBUTEENUM_Xdp: { | 919 case XFA_ATTRIBUTEENUM_Xdp: { |
| 921 CFX_WideStringC csContentC; | 920 CFX_WideStringC csContentC; |
| 922 submit.GetSubmitXDPContent(csContentC); | 921 submit.GetSubmitXDPContent(csContentC); |
| 923 CFX_WideString csContent; | 922 CFX_WideString csContent; |
| 924 csContent = csContentC; | 923 csContent = csContentC; |
| (...skipping 21 matching lines...) Expand all Loading... |
| 946 break; | 945 break; |
| 947 case XFA_ATTRIBUTEENUM_Urlencoded: | 946 case XFA_ATTRIBUTEENUM_Urlencoded: |
| 948 pFileHandler = pFormFillEnv->OpenFile(FXFA_SAVEAS_XML, nullptr, "wb"); | 947 pFileHandler = pFormFillEnv->OpenFile(FXFA_SAVEAS_XML, nullptr, "wb"); |
| 949 fileFlag = FXFA_SAVEAS_XML; | 948 fileFlag = FXFA_SAVEAS_XML; |
| 950 ExportSubmitFile(pFileHandler, FXFA_SAVEAS_XML, 0, FXFA_XFA_ALL); | 949 ExportSubmitFile(pFileHandler, FXFA_SAVEAS_XML, 0, FXFA_XFA_ALL); |
| 951 break; | 950 break; |
| 952 default: | 951 default: |
| 953 return false; | 952 return false; |
| 954 } | 953 } |
| 955 if (!pFileHandler) | 954 if (!pFileHandler) |
| 956 return FALSE; | 955 return false; |
| 957 if (csURL.Left(7).CompareNoCase(L"mailto:") == 0) { | 956 if (csURL.Left(7).CompareNoCase(L"mailto:") == 0) { |
| 958 CFX_WideString csToAddress; | 957 CFX_WideString csToAddress; |
| 959 CFX_WideString csCCAddress; | 958 CFX_WideString csCCAddress; |
| 960 CFX_WideString csBCCAddress; | 959 CFX_WideString csBCCAddress; |
| 961 CFX_WideString csSubject; | 960 CFX_WideString csSubject; |
| 962 CFX_WideString csMsg; | 961 CFX_WideString csMsg; |
| 963 if (!MailToInfo(csURL, csToAddress, csCCAddress, csBCCAddress, csSubject, | 962 if (!MailToInfo(csURL, csToAddress, csCCAddress, csBCCAddress, csSubject, |
| 964 csMsg)) { | 963 csMsg)) { |
| 965 return FALSE; | 964 return false; |
| 966 } | 965 } |
| 967 CFX_ByteString bsTo = CFX_WideString(csToAddress).UTF16LE_Encode(); | 966 CFX_ByteString bsTo = CFX_WideString(csToAddress).UTF16LE_Encode(); |
| 968 CFX_ByteString bsCC = CFX_WideString(csCCAddress).UTF16LE_Encode(); | 967 CFX_ByteString bsCC = CFX_WideString(csCCAddress).UTF16LE_Encode(); |
| 969 CFX_ByteString bsBcc = CFX_WideString(csBCCAddress).UTF16LE_Encode(); | 968 CFX_ByteString bsBcc = CFX_WideString(csBCCAddress).UTF16LE_Encode(); |
| 970 CFX_ByteString bsSubject = CFX_WideString(csSubject).UTF16LE_Encode(); | 969 CFX_ByteString bsSubject = CFX_WideString(csSubject).UTF16LE_Encode(); |
| 971 CFX_ByteString bsMsg = CFX_WideString(csMsg).UTF16LE_Encode(); | 970 CFX_ByteString bsMsg = CFX_WideString(csMsg).UTF16LE_Encode(); |
| 972 FPDF_WIDESTRING pTo = (FPDF_WIDESTRING)bsTo.GetBuffer(bsTo.GetLength()); | 971 FPDF_WIDESTRING pTo = (FPDF_WIDESTRING)bsTo.GetBuffer(bsTo.GetLength()); |
| 973 FPDF_WIDESTRING pCC = (FPDF_WIDESTRING)bsCC.GetBuffer(bsCC.GetLength()); | 972 FPDF_WIDESTRING pCC = (FPDF_WIDESTRING)bsCC.GetBuffer(bsCC.GetLength()); |
| 974 FPDF_WIDESTRING pBcc = (FPDF_WIDESTRING)bsBcc.GetBuffer(bsBcc.GetLength()); | 973 FPDF_WIDESTRING pBcc = (FPDF_WIDESTRING)bsBcc.GetBuffer(bsBcc.GetLength()); |
| 975 FPDF_WIDESTRING pSubject = | 974 FPDF_WIDESTRING pSubject = |
| 976 (FPDF_WIDESTRING)bsSubject.GetBuffer(bsSubject.GetLength()); | 975 (FPDF_WIDESTRING)bsSubject.GetBuffer(bsSubject.GetLength()); |
| 977 FPDF_WIDESTRING pMsg = (FPDF_WIDESTRING)bsMsg.GetBuffer(bsMsg.GetLength()); | 976 FPDF_WIDESTRING pMsg = (FPDF_WIDESTRING)bsMsg.GetBuffer(bsMsg.GetLength()); |
| 978 pFormFillEnv->EmailTo(pFileHandler, pTo, pSubject, pCC, pBcc, pMsg); | 977 pFormFillEnv->EmailTo(pFileHandler, pTo, pSubject, pCC, pBcc, pMsg); |
| 979 bsTo.ReleaseBuffer(); | 978 bsTo.ReleaseBuffer(); |
| 980 bsCC.ReleaseBuffer(); | 979 bsCC.ReleaseBuffer(); |
| 981 bsBcc.ReleaseBuffer(); | 980 bsBcc.ReleaseBuffer(); |
| 982 bsSubject.ReleaseBuffer(); | 981 bsSubject.ReleaseBuffer(); |
| 983 bsMsg.ReleaseBuffer(); | 982 bsMsg.ReleaseBuffer(); |
| 984 } else { | 983 } else { |
| 985 // HTTP or FTP | 984 // HTTP or FTP |
| 986 CFX_WideString ws; | 985 CFX_WideString ws; |
| 987 CFX_ByteString bs = csURL.UTF16LE_Encode(); | 986 CFX_ByteString bs = csURL.UTF16LE_Encode(); |
| 988 int len = bs.GetLength(); | 987 int len = bs.GetLength(); |
| 989 pFormFillEnv->UploadTo(pFileHandler, fileFlag, | 988 pFormFillEnv->UploadTo(pFileHandler, fileFlag, |
| 990 (FPDF_WIDESTRING)bs.GetBuffer(len)); | 989 (FPDF_WIDESTRING)bs.GetBuffer(len)); |
| 991 bs.ReleaseBuffer(len); | 990 bs.ReleaseBuffer(len); |
| 992 } | 991 } |
| 993 return TRUE; | 992 return true; |
| 994 } | 993 } |
| 995 | 994 |
| 996 FX_BOOL CPDFXFA_DocEnvironment::SetGlobalProperty( | 995 bool CPDFXFA_DocEnvironment::SetGlobalProperty( |
| 997 CXFA_FFDoc* hDoc, | 996 CXFA_FFDoc* hDoc, |
| 998 const CFX_ByteStringC& szPropName, | 997 const CFX_ByteStringC& szPropName, |
| 999 CFXJSE_Value* pValue) { | 998 CFXJSE_Value* pValue) { |
| 1000 if (hDoc != m_pContext->GetXFADoc()) | 999 if (hDoc != m_pContext->GetXFADoc()) |
| 1001 return FALSE; | 1000 return false; |
| 1002 | 1001 |
| 1003 if (m_pContext->GetFormFillEnv() && | 1002 if (m_pContext->GetFormFillEnv() && |
| 1004 m_pContext->GetFormFillEnv()->GetJSRuntime()) { | 1003 m_pContext->GetFormFillEnv()->GetJSRuntime()) { |
| 1005 return m_pContext->GetFormFillEnv()->GetJSRuntime()->SetValueByName( | 1004 return m_pContext->GetFormFillEnv()->GetJSRuntime()->SetValueByName( |
| 1006 szPropName, pValue); | 1005 szPropName, pValue); |
| 1007 } | 1006 } |
| 1008 return FALSE; | 1007 return false; |
| 1009 } | 1008 } |
| 1010 | 1009 |
| 1011 FX_BOOL CPDFXFA_DocEnvironment::GetGlobalProperty( | 1010 bool CPDFXFA_DocEnvironment::GetGlobalProperty( |
| 1012 CXFA_FFDoc* hDoc, | 1011 CXFA_FFDoc* hDoc, |
| 1013 const CFX_ByteStringC& szPropName, | 1012 const CFX_ByteStringC& szPropName, |
| 1014 CFXJSE_Value* pValue) { | 1013 CFXJSE_Value* pValue) { |
| 1015 if (hDoc != m_pContext->GetXFADoc()) | 1014 if (hDoc != m_pContext->GetXFADoc()) |
| 1016 return FALSE; | 1015 return false; |
| 1017 if (!m_pContext->GetFormFillEnv() || | 1016 if (!m_pContext->GetFormFillEnv() || |
| 1018 !m_pContext->GetFormFillEnv()->GetJSRuntime()) { | 1017 !m_pContext->GetFormFillEnv()->GetJSRuntime()) { |
| 1019 return FALSE; | 1018 return false; |
| 1020 } | 1019 } |
| 1021 | 1020 |
| 1022 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); | 1021 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); |
| 1023 if (!m_pJSContext) | 1022 if (!m_pJSContext) |
| 1024 m_pJSContext = pFormFillEnv->GetJSRuntime()->NewContext(); | 1023 m_pJSContext = pFormFillEnv->GetJSRuntime()->NewContext(); |
| 1025 | 1024 |
| 1026 return pFormFillEnv->GetJSRuntime()->GetValueByName(szPropName, pValue); | 1025 return pFormFillEnv->GetJSRuntime()->GetValueByName(szPropName, pValue); |
| 1027 } | 1026 } |
| OLD | NEW |