| 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 "fpdfsdk/include/fsdk_baseform.h" | 7 #include "fpdfsdk/include/fsdk_baseform.h" |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 CFX_WideString sName; | 62 CFX_WideString sName; |
| 63 if (GetFieldType() == FIELDTYPE_RADIOBUTTON) { | 63 if (GetFieldType() == FIELDTYPE_RADIOBUTTON) { |
| 64 sName = GetAnnotName(); | 64 sName = GetAnnotName(); |
| 65 if (sName.IsEmpty()) | 65 if (sName.IsEmpty()) |
| 66 sName = GetName(); | 66 sName = GetName(); |
| 67 } else { | 67 } else { |
| 68 sName = GetName(); | 68 sName = GetName(); |
| 69 } | 69 } |
| 70 | 70 |
| 71 if (!sName.IsEmpty()) | 71 if (!sName.IsEmpty()) |
| 72 m_hMixXFAWidget = pDocView->GetWidgetByName(sName); | 72 m_hMixXFAWidget = pDocView->GetWidgetByName(sName.AsWideStringC()); |
| 73 } | 73 } |
| 74 } | 74 } |
| 75 return m_hMixXFAWidget; | 75 return m_hMixXFAWidget; |
| 76 } | 76 } |
| 77 | 77 |
| 78 return NULL; | 78 return NULL; |
| 79 } | 79 } |
| 80 | 80 |
| 81 CXFA_FFWidget* CPDFSDK_Widget::GetGroupMixXFAWidget() { | 81 CXFA_FFWidget* CPDFSDK_Widget::GetGroupMixXFAWidget() { |
| 82 CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument(); | 82 CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument(); |
| 83 CPDFXFA_Document* pDoc = pSDKDoc->GetXFADocument(); | 83 CPDFXFA_Document* pDoc = pSDKDoc->GetXFADocument(); |
| 84 if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) { | 84 if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) { |
| 85 if (CXFA_FFDocView* pDocView = pDoc->GetXFADocView()) { | 85 if (CXFA_FFDocView* pDocView = pDoc->GetXFADocView()) { |
| 86 CFX_WideString sName = GetName(); | 86 CFX_WideString sName = GetName(); |
| 87 if (!sName.IsEmpty()) | 87 if (!sName.IsEmpty()) |
| 88 return pDocView->GetWidgetByName(sName); | 88 return pDocView->GetWidgetByName(sName.AsWideStringC()); |
| 89 } | 89 } |
| 90 } | 90 } |
| 91 | 91 |
| 92 return nullptr; | 92 return nullptr; |
| 93 } | 93 } |
| 94 | 94 |
| 95 CXFA_FFWidgetHandler* CPDFSDK_Widget::GetXFAWidgetHandler() const { | 95 CXFA_FFWidgetHandler* CPDFSDK_Widget::GetXFAWidgetHandler() const { |
| 96 CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument(); | 96 CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument(); |
| 97 CPDFXFA_Document* pDoc = pSDKDoc->GetXFADocument(); | 97 CPDFXFA_Document* pDoc = pSDKDoc->GetXFADocument(); |
| 98 if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) { | 98 if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) { |
| (...skipping 2347 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2446 FXSYS_memcpy(pBuf, fdfEncodedData.GetBuffer(), nBufSize); | 2446 FXSYS_memcpy(pBuf, fdfEncodedData.GetBuffer(), nBufSize); |
| 2447 } | 2447 } |
| 2448 return TRUE; | 2448 return TRUE; |
| 2449 } | 2449 } |
| 2450 | 2450 |
| 2451 FX_BOOL CPDFSDK_InterForm::ExportFieldsToFDFTextBuf( | 2451 FX_BOOL CPDFSDK_InterForm::ExportFieldsToFDFTextBuf( |
| 2452 const std::vector<CPDF_FormField*>& fields, | 2452 const std::vector<CPDF_FormField*>& fields, |
| 2453 bool bIncludeOrExclude, | 2453 bool bIncludeOrExclude, |
| 2454 CFX_ByteTextBuf& textBuf) { | 2454 CFX_ByteTextBuf& textBuf) { |
| 2455 std::unique_ptr<CFDF_Document> pFDF(m_pInterForm->ExportToFDF( | 2455 std::unique_ptr<CFDF_Document> pFDF(m_pInterForm->ExportToFDF( |
| 2456 m_pDocument->GetPath(), fields, bIncludeOrExclude)); | 2456 m_pDocument->GetPath().AsWideStringC(), fields, bIncludeOrExclude)); |
| 2457 return pFDF ? pFDF->WriteBuf(textBuf) : FALSE; | 2457 return pFDF ? pFDF->WriteBuf(textBuf) : FALSE; |
| 2458 } | 2458 } |
| 2459 | 2459 |
| 2460 #ifdef PDF_ENABLE_XFA | 2460 #ifdef PDF_ENABLE_XFA |
| 2461 void CPDFSDK_InterForm::SynchronizeField(CPDF_FormField* pFormField, | 2461 void CPDFSDK_InterForm::SynchronizeField(CPDF_FormField* pFormField, |
| 2462 FX_BOOL bSynchronizeElse) { | 2462 FX_BOOL bSynchronizeElse) { |
| 2463 int x = 0; | 2463 int x = 0; |
| 2464 if (m_FieldSynchronizeMap.Lookup(pFormField, x)) | 2464 if (m_FieldSynchronizeMap.Lookup(pFormField, x)) |
| 2465 return; | 2465 return; |
| 2466 | 2466 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 2484 FX_BOOL CPDFSDK_InterForm::SubmitForm(const CFX_WideString& sDestination, | 2484 FX_BOOL CPDFSDK_InterForm::SubmitForm(const CFX_WideString& sDestination, |
| 2485 FX_BOOL bUrlEncoded) { | 2485 FX_BOOL bUrlEncoded) { |
| 2486 if (sDestination.IsEmpty()) | 2486 if (sDestination.IsEmpty()) |
| 2487 return FALSE; | 2487 return FALSE; |
| 2488 | 2488 |
| 2489 if (!m_pDocument || !m_pInterForm) | 2489 if (!m_pDocument || !m_pInterForm) |
| 2490 return FALSE; | 2490 return FALSE; |
| 2491 | 2491 |
| 2492 CPDFDoc_Environment* pEnv = m_pDocument->GetEnv(); | 2492 CPDFDoc_Environment* pEnv = m_pDocument->GetEnv(); |
| 2493 CFX_WideString wsPDFFilePath = m_pDocument->GetPath(); | 2493 CFX_WideString wsPDFFilePath = m_pDocument->GetPath(); |
| 2494 CFDF_Document* pFDFDoc = m_pInterForm->ExportToFDF(wsPDFFilePath); | 2494 CFDF_Document* pFDFDoc = |
| 2495 m_pInterForm->ExportToFDF(wsPDFFilePath.AsWideStringC()); |
| 2495 if (!pFDFDoc) | 2496 if (!pFDFDoc) |
| 2496 return FALSE; | 2497 return FALSE; |
| 2497 | 2498 |
| 2498 CFX_ByteTextBuf FdfBuffer; | 2499 CFX_ByteTextBuf FdfBuffer; |
| 2499 FX_BOOL bRet = pFDFDoc->WriteBuf(FdfBuffer); | 2500 FX_BOOL bRet = pFDFDoc->WriteBuf(FdfBuffer); |
| 2500 delete pFDFDoc; | 2501 delete pFDFDoc; |
| 2501 if (!bRet) | 2502 if (!bRet) |
| 2502 return FALSE; | 2503 return FALSE; |
| 2503 | 2504 |
| 2504 uint8_t* pBuffer = FdfBuffer.GetBuffer(); | 2505 uint8_t* pBuffer = FdfBuffer.GetBuffer(); |
| 2505 FX_STRSIZE nBufSize = FdfBuffer.GetLength(); | 2506 FX_STRSIZE nBufSize = FdfBuffer.GetLength(); |
| 2506 | 2507 |
| 2507 if (bUrlEncoded) { | 2508 if (bUrlEncoded) { |
| 2508 if (!FDFToURLEncodedData(pBuffer, nBufSize)) | 2509 if (!FDFToURLEncodedData(pBuffer, nBufSize)) |
| 2509 return FALSE; | 2510 return FALSE; |
| 2510 } | 2511 } |
| 2511 | 2512 |
| 2512 pEnv->JS_docSubmitForm(pBuffer, nBufSize, sDestination.c_str()); | 2513 pEnv->JS_docSubmitForm(pBuffer, nBufSize, sDestination.c_str()); |
| 2513 | 2514 |
| 2514 if (bUrlEncoded) { | 2515 if (bUrlEncoded) { |
| 2515 FX_Free(pBuffer); | 2516 FX_Free(pBuffer); |
| 2516 pBuffer = NULL; | 2517 pBuffer = NULL; |
| 2517 } | 2518 } |
| 2518 | 2519 |
| 2519 return TRUE; | 2520 return TRUE; |
| 2520 } | 2521 } |
| 2521 | 2522 |
| 2522 FX_BOOL CPDFSDK_InterForm::ExportFormToFDFTextBuf(CFX_ByteTextBuf& textBuf) { | 2523 FX_BOOL CPDFSDK_InterForm::ExportFormToFDFTextBuf(CFX_ByteTextBuf& textBuf) { |
| 2523 CFDF_Document* pFDF = m_pInterForm->ExportToFDF(m_pDocument->GetPath()); | 2524 CFDF_Document* pFDF = |
| 2525 m_pInterForm->ExportToFDF(m_pDocument->GetPath().AsWideStringC()); |
| 2524 if (!pFDF) | 2526 if (!pFDF) |
| 2525 return FALSE; | 2527 return FALSE; |
| 2526 | 2528 |
| 2527 FX_BOOL bRet = pFDF->WriteBuf(textBuf); | 2529 FX_BOOL bRet = pFDF->WriteBuf(textBuf); |
| 2528 delete pFDF; | 2530 delete pFDF; |
| 2529 | 2531 |
| 2530 return bRet; | 2532 return bRet; |
| 2531 } | 2533 } |
| 2532 | 2534 |
| 2533 FX_BOOL CPDFSDK_InterForm::DoAction_ResetForm(const CPDF_Action& action) { | 2535 FX_BOOL CPDFSDK_InterForm::DoAction_ResetForm(const CPDF_Action& action) { |
| (...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2829 break; | 2831 break; |
| 2830 } | 2832 } |
| 2831 } | 2833 } |
| 2832 } | 2834 } |
| 2833 | 2835 |
| 2834 CFX_FloatRect CBA_AnnotIterator::GetAnnotRect(const CPDFSDK_Annot* pAnnot) { | 2836 CFX_FloatRect CBA_AnnotIterator::GetAnnotRect(const CPDFSDK_Annot* pAnnot) { |
| 2835 CFX_FloatRect rcAnnot; | 2837 CFX_FloatRect rcAnnot; |
| 2836 pAnnot->GetPDFAnnot()->GetRect(rcAnnot); | 2838 pAnnot->GetPDFAnnot()->GetRect(rcAnnot); |
| 2837 return rcAnnot; | 2839 return rcAnnot; |
| 2838 } | 2840 } |
| OLD | NEW |