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 "../../include/formfiller/FFL_FormFiller.h" | 7 #include "../../include/formfiller/FFL_FormFiller.h" |
8 #include "../../include/formfiller/FFL_IFormFiller.h" | 8 #include "../../include/formfiller/FFL_IFormFiller.h" |
9 #include "../../include/formfiller/FFL_CheckBox.h" | 9 #include "../../include/formfiller/FFL_CheckBox.h" |
10 #include "../../include/formfiller/FFL_ComboBox.h" | 10 #include "../../include/formfiller/FFL_ComboBox.h" |
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
502 | 502 |
503 FX_BOOL CFFL_IFormFiller::IsReadOnly(CPDFSDK_Widget* pWidget) { | 503 FX_BOOL CFFL_IFormFiller::IsReadOnly(CPDFSDK_Widget* pWidget) { |
504 ASSERT(pWidget != NULL); | 504 ASSERT(pWidget != NULL); |
505 | 505 |
506 int nFieldFlags = pWidget->GetFieldFlags(); | 506 int nFieldFlags = pWidget->GetFieldFlags(); |
507 | 507 |
508 return (nFieldFlags & FIELDFLAG_READONLY) == FIELDFLAG_READONLY; | 508 return (nFieldFlags & FIELDFLAG_READONLY) == FIELDFLAG_READONLY; |
509 } | 509 } |
510 | 510 |
511 FX_BOOL CFFL_IFormFiller::IsFillingAllowed(CPDFSDK_Widget* pWidget) { | 511 FX_BOOL CFFL_IFormFiller::IsFillingAllowed(CPDFSDK_Widget* pWidget) { |
512 ASSERT(pWidget != NULL); | |
513 | |
514 if (pWidget->GetFieldType() == FIELDTYPE_PUSHBUTTON) | 512 if (pWidget->GetFieldType() == FIELDTYPE_PUSHBUTTON) |
515 return TRUE; | 513 return TRUE; |
516 else { | |
517 CPDF_Page* pPage = pWidget->GetPDFPage(); | |
518 ASSERT(pPage != NULL); | |
519 | 514 |
520 CPDF_Document* pDocument = pPage->m_pDocument; | 515 CPDF_Page* pPage = pWidget->GetPDFPage(); |
521 ASSERT(pDocument != NULL); | 516 CPDF_Document* pDocument = pPage->m_pDocument; |
522 | 517 FX_DWORD dwPermissions = pDocument->GetUserPermissions(); |
523 FX_DWORD dwPermissions = pDocument->GetUserPermissions(); | 518 return (dwPermissions & FPDFPERM_FILL_FORM) || |
524 return (dwPermissions & FPDFPERM_FILL_FORM) || | 519 (dwPermissions & FPDFPERM_ANNOT_FORM) || |
525 (dwPermissions & FPDFPERM_ANNOT_FORM) || | 520 (dwPermissions & FPDFPERM_MODIFY); |
526 (dwPermissions & FPDFPERM_MODIFY); | |
527 } | |
528 return TRUE; | |
Lei Zhang
2015/10/13 22:04:38
uhhh
| |
529 } | 521 } |
530 | 522 |
531 CFFL_FormFiller* CFFL_IFormFiller::GetFormFiller(CPDFSDK_Annot* pAnnot, | 523 CFFL_FormFiller* CFFL_IFormFiller::GetFormFiller(CPDFSDK_Annot* pAnnot, |
532 FX_BOOL bRegister) { | 524 FX_BOOL bRegister) { |
533 auto it = m_Maps.find(pAnnot); | 525 auto it = m_Maps.find(pAnnot); |
534 if (it != m_Maps.end()) | 526 if (it != m_Maps.end()) |
535 return it->second; | 527 return it->second; |
536 | 528 |
537 if (!bRegister) | 529 if (!bRegister) |
538 return nullptr; | 530 return nullptr; |
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
795 TRUE); | 787 TRUE); |
796 pInterForm->UpdateField(pWidget->GetFormField()); | 788 pInterForm->UpdateField(pWidget->GetFormField()); |
797 } | 789 } |
798 | 790 |
799 m_bNotifying = FALSE; | 791 m_bNotifying = FALSE; |
800 } | 792 } |
801 } | 793 } |
802 | 794 |
803 FX_BOOL CFFL_IFormFiller::IsValidAnnot(CPDFSDK_PageView* pPageView, | 795 FX_BOOL CFFL_IFormFiller::IsValidAnnot(CPDFSDK_PageView* pPageView, |
804 CPDFSDK_Annot* pAnnot) { | 796 CPDFSDK_Annot* pAnnot) { |
805 ASSERT(pPageView != NULL); | |
806 ASSERT(pAnnot != NULL); | |
807 | |
808 if (pPageView) | 797 if (pPageView) |
809 return pPageView->IsValidAnnot(pAnnot->GetPDFAnnot()); | 798 return pPageView->IsValidAnnot(pAnnot->GetPDFAnnot()); |
810 else | 799 |
811 return FALSE; | 800 return FALSE; |
812 } | 801 } |
813 | 802 |
814 void CFFL_IFormFiller::OnBeforeKeyStroke(FX_BOOL bEditOrList, | 803 void CFFL_IFormFiller::OnBeforeKeyStroke(FX_BOOL bEditOrList, |
815 void* pPrivateData, | 804 void* pPrivateData, |
816 int32_t nKeyCode, | 805 int32_t nKeyCode, |
817 CFX_WideString& strChange, | 806 CFX_WideString& strChange, |
818 const CFX_WideString& strChangeEx, | 807 const CFX_WideString& strChangeEx, |
819 int nSelStart, | 808 int nSelStart, |
820 int nSelEnd, | 809 int nSelEnd, |
821 FX_BOOL bKeyDown, | 810 FX_BOOL bKeyDown, |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
898 FX_BOOL& bExit, | 887 FX_BOOL& bExit, |
899 FX_DWORD nFlag) { | 888 FX_DWORD nFlag) { |
900 CFFL_PrivateData* pData = (CFFL_PrivateData*)pPrivateData; | 889 CFFL_PrivateData* pData = (CFFL_PrivateData*)pPrivateData; |
901 ASSERT(pData->pWidget); | 890 ASSERT(pData->pWidget); |
902 | 891 |
903 CFFL_FormFiller* pFormFiller = GetFormFiller(pData->pWidget, FALSE); | 892 CFFL_FormFiller* pFormFiller = GetFormFiller(pData->pWidget, FALSE); |
904 | 893 |
905 if (!bEditOrList) | 894 if (!bEditOrList) |
906 pFormFiller->OnKeyStroke(bExit, nFlag); | 895 pFormFiller->OnKeyStroke(bExit, nFlag); |
907 } | 896 } |
OLD | NEW |