| 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 #ifndef CORE_FPDFDOC_INCLUDE_FPDF_DOC_H_ | 7 #ifndef CORE_FPDFDOC_INCLUDE_FPDF_DOC_H_ |
| 8 #define CORE_FPDFDOC_INCLUDE_FPDF_DOC_H_ | 8 #define CORE_FPDFDOC_INCLUDE_FPDF_DOC_H_ |
| 9 | 9 |
| 10 #include <map> | 10 #include <map> |
| 11 #include <memory> | 11 #include <memory> |
| 12 #include <unordered_map> | 12 #include <unordered_map> |
| 13 #include <vector> | 13 #include <vector> |
| 14 | 14 |
| 15 #include "core/fpdfapi/fpdf_parser/include/cpdf_dictionary.h" | 15 #include "core/fpdfapi/fpdf_parser/include/cpdf_dictionary.h" |
| 16 #include "core/fpdfapi/fpdf_parser/include/fpdf_parser_decode.h" | 16 #include "core/fpdfapi/fpdf_parser/include/fpdf_parser_decode.h" |
| 17 #include "core/fxge/include/fx_dib.h" | 17 #include "core/fxge/include/fx_dib.h" |
| 18 | 18 |
| 19 class CFDF_Document; | 19 class CFDF_Document; |
| 20 class CFieldTree; | 20 class CFieldTree; |
| 21 class CFX_RenderDevice; |
| 21 class CPDF_AAction; | 22 class CPDF_AAction; |
| 22 class CPDF_Action; | 23 class CPDF_Action; |
| 23 class CPDF_ActionFields; | 24 class CPDF_ActionFields; |
| 24 class CPDF_Annot; | 25 class CPDF_Annot; |
| 25 class CPDF_AnnotList; | 26 class CPDF_AnnotList; |
| 26 class CPDF_ApSettings; | 27 class CPDF_ApSettings; |
| 27 class CPDF_Bookmark; | 28 class CPDF_Bookmark; |
| 28 class CPDF_BookmarkTree; | 29 class CPDF_BookmarkTree; |
| 29 class CPDF_DefaultAppearance; | 30 class CPDF_DefaultAppearance; |
| 30 class CPDF_Dest; | 31 class CPDF_Dest; |
| 32 class CPDF_DocJSActions; |
| 31 class CPDF_Document; | 33 class CPDF_Document; |
| 32 class CPDF_DocJSActions; | |
| 33 class CPDF_FileSpec; | 34 class CPDF_FileSpec; |
| 35 class CPDF_Font; |
| 36 class CPDF_Form; |
| 34 class CPDF_FormControl; | 37 class CPDF_FormControl; |
| 35 class CPDF_FormField; | 38 class CPDF_FormField; |
| 36 class CPDF_FormNotify; | |
| 37 class CPDF_IconFit; | 39 class CPDF_IconFit; |
| 38 class CPDF_InterForm; | |
| 39 class CPDF_Link; | 40 class CPDF_Link; |
| 40 class CPDF_Metadata; | 41 class CPDF_Metadata; |
| 41 class CPDF_OCContext; | 42 class CPDF_OCContext; |
| 42 class CPDF_Page; | 43 class CPDF_Page; |
| 43 class CPDF_PageObject; | 44 class CPDF_PageObject; |
| 44 class CPDF_Font; | 45 class CPDF_RenderContext; |
| 45 class CPDF_Form; | |
| 46 class CPDF_RenderOptions; | 46 class CPDF_RenderOptions; |
| 47 class CPDF_RenderContext; | |
| 48 class CPDF_ViewerPreferences; | 47 class CPDF_ViewerPreferences; |
| 49 class CXML_Element; | 48 class CXML_Element; |
| 50 class CFX_RenderDevice; | 49 class IPDF_FormNotify; |
| 51 | 50 |
| 52 enum class BorderStyle { SOLID, DASH, BEVELED, INSET, UNDERLINE }; | 51 enum class BorderStyle { SOLID, DASH, BEVELED, INSET, UNDERLINE }; |
| 53 | 52 |
| 54 class CPDF_NameTree { | 53 class CPDF_NameTree { |
| 55 public: | 54 public: |
| 56 explicit CPDF_NameTree(CPDF_Dictionary* pRoot) : m_pRoot(pRoot) {} | 55 explicit CPDF_NameTree(CPDF_Dictionary* pRoot) : m_pRoot(pRoot) {} |
| 57 CPDF_NameTree(CPDF_Document* pDoc, const CFX_ByteString& category); | 56 CPDF_NameTree(CPDF_Document* pDoc, const CFX_ByteString& category); |
| 58 | 57 |
| 59 CPDF_Object* LookupValue(int nIndex, CFX_ByteString& csName) const; | 58 CPDF_Object* LookupValue(int nIndex, CFX_ByteString& csName) const; |
| 60 CPDF_Object* LookupValue(const CFX_ByteString& csName) const; | 59 CPDF_Object* LookupValue(const CFX_ByteString& csName) const; |
| (...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 438 }; | 437 }; |
| 439 | 438 |
| 440 #define FIELDTYPE_UNKNOWN 0 | 439 #define FIELDTYPE_UNKNOWN 0 |
| 441 #define FIELDTYPE_PUSHBUTTON 1 | 440 #define FIELDTYPE_PUSHBUTTON 1 |
| 442 #define FIELDTYPE_CHECKBOX 2 | 441 #define FIELDTYPE_CHECKBOX 2 |
| 443 #define FIELDTYPE_RADIOBUTTON 3 | 442 #define FIELDTYPE_RADIOBUTTON 3 |
| 444 #define FIELDTYPE_COMBOBOX 4 | 443 #define FIELDTYPE_COMBOBOX 4 |
| 445 #define FIELDTYPE_LISTBOX 5 | 444 #define FIELDTYPE_LISTBOX 5 |
| 446 #define FIELDTYPE_TEXTFIELD 6 | 445 #define FIELDTYPE_TEXTFIELD 6 |
| 447 #define FIELDTYPE_SIGNATURE 7 | 446 #define FIELDTYPE_SIGNATURE 7 |
| 447 |
| 448 class CPDF_InterForm : public CFX_PrivateData { | 448 class CPDF_InterForm : public CFX_PrivateData { |
| 449 public: | 449 public: |
| 450 CPDF_InterForm(CPDF_Document* pDocument, FX_BOOL bUpdateAP); | 450 explicit CPDF_InterForm(CPDF_Document* pDocument); |
| 451 ~CPDF_InterForm(); | 451 ~CPDF_InterForm(); |
| 452 | 452 |
| 453 static void EnableUpdateAP(FX_BOOL bUpdateAP); | 453 static void EnableUpdateAP(FX_BOOL bUpdateAP); |
| 454 | 454 |
| 455 static FX_BOOL UpdatingAPEnabled(); | 455 static FX_BOOL UpdatingAPEnabled(); |
| 456 | 456 |
| 457 static CFX_ByteString GenerateNewResourceName(const CPDF_Dictionary* pResDict, | 457 static CFX_ByteString GenerateNewResourceName(const CPDF_Dictionary* pResDict, |
| 458 const FX_CHAR* csType, | 458 const FX_CHAR* csType, |
| 459 int iMinLen = 2, | 459 int iMinLen = 2, |
| 460 const FX_CHAR* csPrefix = ""); | 460 const FX_CHAR* csPrefix = ""); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 492 FX_FLOAT pdf_x, | 492 FX_FLOAT pdf_x, |
| 493 FX_FLOAT pdf_y, | 493 FX_FLOAT pdf_y, |
| 494 int* z_order) const; | 494 int* z_order) const; |
| 495 | 495 |
| 496 CPDF_FormControl* GetControlByDict(const CPDF_Dictionary* pWidgetDict) const; | 496 CPDF_FormControl* GetControlByDict(const CPDF_Dictionary* pWidgetDict) const; |
| 497 | 497 |
| 498 CPDF_Document* GetDocument() const { return m_pDocument; } | 498 CPDF_Document* GetDocument() const { return m_pDocument; } |
| 499 | 499 |
| 500 CPDF_Dictionary* GetFormDict() const { return m_pFormDict; } | 500 CPDF_Dictionary* GetFormDict() const { return m_pFormDict; } |
| 501 | 501 |
| 502 FX_BOOL NeedConstructAP(); | 502 FX_BOOL NeedConstructAP() const; |
| 503 | |
| 504 void NeedConstructAP(FX_BOOL bNeedAP); | |
| 505 | 503 |
| 506 int CountFieldsInCalculationOrder(); | 504 int CountFieldsInCalculationOrder(); |
| 507 | 505 |
| 508 CPDF_FormField* GetFieldInCalculationOrder(int index); | 506 CPDF_FormField* GetFieldInCalculationOrder(int index); |
| 509 | 507 |
| 510 int FindFieldInCalculationOrder(const CPDF_FormField* pField); | 508 int FindFieldInCalculationOrder(const CPDF_FormField* pField); |
| 511 | 509 |
| 512 uint32_t CountFormFonts(); | 510 uint32_t CountFormFonts(); |
| 513 | 511 |
| 514 CPDF_Font* GetFormFont(uint32_t index, CFX_ByteString& csNameTag); | 512 CPDF_Font* GetFormFont(uint32_t index, CFX_ByteString& csNameTag); |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 562 bool bSimpleFileSpec = false) const; | 560 bool bSimpleFileSpec = false) const; |
| 563 | 561 |
| 564 FX_BOOL ImportFromFDF(const CFDF_Document* pFDFDoc, FX_BOOL bNotify = FALSE); | 562 FX_BOOL ImportFromFDF(const CFDF_Document* pFDFDoc, FX_BOOL bNotify = FALSE); |
| 565 | 563 |
| 566 bool ResetForm(const std::vector<CPDF_FormField*>& fields, | 564 bool ResetForm(const std::vector<CPDF_FormField*>& fields, |
| 567 bool bIncludeOrExclude = true, | 565 bool bIncludeOrExclude = true, |
| 568 bool bNotify = false); | 566 bool bNotify = false); |
| 569 | 567 |
| 570 bool ResetForm(bool bNotify = false); | 568 bool ResetForm(bool bNotify = false); |
| 571 | 569 |
| 572 CPDF_FormNotify* GetFormNotify() const { return m_pFormNotify; } | 570 void SetFormNotify(IPDF_FormNotify* pNotify); |
| 573 | |
| 574 void SetFormNotify(const CPDF_FormNotify* pNotify); | |
| 575 | |
| 576 FX_BOOL IsUpdated() { return m_bUpdated; } | |
| 577 | |
| 578 void ClearUpdatedFlag() { m_bUpdated = FALSE; } | |
| 579 | 571 |
| 580 FX_BOOL HasXFAForm() const; | 572 FX_BOOL HasXFAForm() const; |
| 581 | 573 |
| 582 void FixPageFields(const CPDF_Page* pPage); | 574 void FixPageFields(const CPDF_Page* pPage); |
| 583 | 575 |
| 584 protected: | 576 protected: |
| 585 static FX_BOOL m_bUpdateAP; | 577 static FX_BOOL m_bUpdateAP; |
| 586 | 578 |
| 587 void LoadField(CPDF_Dictionary* pFieldDict, int nLevel = 0); | 579 void LoadField(CPDF_Dictionary* pFieldDict, int nLevel = 0); |
| 588 | 580 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 604 const CPDF_FormControl* pExcludedControl); | 596 const CPDF_FormControl* pExcludedControl); |
| 605 | 597 |
| 606 int CompareFieldName(const CFX_WideString& name1, | 598 int CompareFieldName(const CFX_WideString& name1, |
| 607 const CFX_WideString& name2); | 599 const CFX_WideString& name2); |
| 608 | 600 |
| 609 int CompareFieldName(const CFX_ByteString& name1, | 601 int CompareFieldName(const CFX_ByteString& name1, |
| 610 const CFX_ByteString& name2); | 602 const CFX_ByteString& name2); |
| 611 | 603 |
| 612 CPDF_Document* const m_pDocument; | 604 CPDF_Document* const m_pDocument; |
| 613 | 605 |
| 614 FX_BOOL m_bGenerateAP; | |
| 615 | |
| 616 CPDF_Dictionary* m_pFormDict; | 606 CPDF_Dictionary* m_pFormDict; |
| 617 | 607 |
| 618 std::map<const CPDF_Dictionary*, CPDF_FormControl*> m_ControlMap; | 608 std::map<const CPDF_Dictionary*, CPDF_FormControl*> m_ControlMap; |
| 619 | 609 |
| 620 std::unique_ptr<CFieldTree> m_pFieldTree; | 610 std::unique_ptr<CFieldTree> m_pFieldTree; |
| 621 | 611 |
| 622 CFX_ByteString m_bsEncoding; | 612 CFX_ByteString m_bsEncoding; |
| 623 | 613 |
| 624 CPDF_FormNotify* m_pFormNotify; | 614 IPDF_FormNotify* m_pFormNotify; |
| 625 | 615 |
| 626 FX_BOOL m_bUpdated; | |
| 627 friend class CPDF_FormControl; | 616 friend class CPDF_FormControl; |
| 628 friend class CPDF_FormField; | 617 friend class CPDF_FormField; |
| 629 }; | 618 }; |
| 630 | 619 |
| 631 #define FORMFIELD_READONLY 0x01 | 620 #define FORMFIELD_READONLY 0x01 |
| 632 #define FORMFIELD_REQUIRED 0x02 | 621 #define FORMFIELD_REQUIRED 0x02 |
| 633 #define FORMFIELD_NOEXPORT 0x04 | 622 #define FORMFIELD_NOEXPORT 0x04 |
| 634 #define FORMRADIO_NOTOGGLEOFF 0x100 | 623 #define FORMRADIO_NOTOGGLEOFF 0x100 |
| 635 #define FORMRADIO_UNISON 0x200 | 624 #define FORMRADIO_UNISON 0x200 |
| 636 #define FORMTEXT_MULTILINE 0x100 | 625 #define FORMTEXT_MULTILINE 0x100 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 657 CFX_WideString GetFullName(); | 646 CFX_WideString GetFullName(); |
| 658 | 647 |
| 659 Type GetType() const { return m_Type; } | 648 Type GetType() const { return m_Type; } |
| 660 uint32_t GetFlags() const { return m_Flags; } | 649 uint32_t GetFlags() const { return m_Flags; } |
| 661 | 650 |
| 662 CPDF_Dictionary* GetFieldDict() const { return m_pDict; } | 651 CPDF_Dictionary* GetFieldDict() const { return m_pDict; } |
| 663 void SetFieldDict(CPDF_Dictionary* pDict) { m_pDict = pDict; } | 652 void SetFieldDict(CPDF_Dictionary* pDict) { m_pDict = pDict; } |
| 664 | 653 |
| 665 FX_BOOL ResetField(FX_BOOL bNotify = FALSE); | 654 FX_BOOL ResetField(FX_BOOL bNotify = FALSE); |
| 666 | 655 |
| 667 int CountControls() { return m_ControlList.GetSize(); } | 656 int CountControls() const { return m_ControlList.GetSize(); } |
| 668 | 657 |
| 669 CPDF_FormControl* GetControl(int index) { return m_ControlList.GetAt(index); } | 658 CPDF_FormControl* GetControl(int index) const { |
| 659 return m_ControlList.GetAt(index); |
| 660 } |
| 670 | 661 |
| 671 int GetControlIndex(const CPDF_FormControl* pControl); | 662 int GetControlIndex(const CPDF_FormControl* pControl); |
| 672 | 663 |
| 673 int GetFieldType(); | 664 int GetFieldType(); |
| 674 | 665 |
| 675 CPDF_AAction GetAdditionalAction(); | 666 CPDF_AAction GetAdditionalAction(); |
| 676 | 667 |
| 677 CFX_WideString GetAlternateName(); | 668 CFX_WideString GetAlternateName(); |
| 678 | 669 |
| 679 CFX_WideString GetMappingName(); | 670 CFX_WideString GetMappingName(); |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 757 FX_BOOL bNotify); | 748 FX_BOOL bNotify); |
| 758 | 749 |
| 759 void SyncFieldFlags(); | 750 void SyncFieldFlags(); |
| 760 | 751 |
| 761 int FindListSel(CPDF_String* str); | 752 int FindListSel(CPDF_String* str); |
| 762 | 753 |
| 763 CFX_WideString GetOptionText(int index, int sub_index); | 754 CFX_WideString GetOptionText(int index, int sub_index); |
| 764 | 755 |
| 765 void LoadDA(); | 756 void LoadDA(); |
| 766 | 757 |
| 767 void UpdateAP(CPDF_FormControl* pControl); | |
| 768 | |
| 769 CFX_WideString GetCheckValue(FX_BOOL bDefault); | 758 CFX_WideString GetCheckValue(FX_BOOL bDefault); |
| 770 | 759 |
| 771 FX_BOOL SetCheckValue(const CFX_WideString& value, | 760 FX_BOOL SetCheckValue(const CFX_WideString& value, |
| 772 FX_BOOL bDefault, | 761 FX_BOOL bDefault, |
| 773 FX_BOOL bNotify); | 762 FX_BOOL bNotify); |
| 774 | 763 |
| 764 bool NotifyBeforeSelectionChange(const CFX_WideString& value); |
| 765 void NotifyAfterSelectionChange(); |
| 766 |
| 767 bool NotifyBeforeValueChange(const CFX_WideString& value); |
| 768 void NotifyAfterValueChange(); |
| 769 |
| 770 bool NotifyListOrComboBoxBeforeChange(const CFX_WideString& value); |
| 771 void NotifyListOrComboBoxAfterChange(); |
| 772 |
| 775 CPDF_FormField::Type m_Type; | 773 CPDF_FormField::Type m_Type; |
| 776 uint32_t m_Flags; | 774 uint32_t m_Flags; |
| 777 CPDF_InterForm* m_pForm; | 775 CPDF_InterForm* m_pForm; |
| 778 CPDF_Dictionary* m_pDict; | 776 CPDF_Dictionary* m_pDict; |
| 779 CFX_ArrayTemplate<CPDF_FormControl*> m_ControlList; | 777 CFX_ArrayTemplate<CPDF_FormControl*> m_ControlList; |
| 780 FX_FLOAT m_FontSize; | 778 FX_FLOAT m_FontSize; |
| 781 CPDF_Font* m_pFont; | 779 CPDF_Font* m_pFont; |
| 782 | 780 |
| 783 friend class CPDF_InterForm; | 781 friend class CPDF_InterForm; |
| 784 friend class CPDF_FormControl; | 782 friend class CPDF_FormControl; |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 821 CPDF_Dictionary* GetWidget() const { return m_pWidgetDict; } | 819 CPDF_Dictionary* GetWidget() const { return m_pWidgetDict; } |
| 822 CFX_FloatRect GetRect() const; | 820 CFX_FloatRect GetRect() const; |
| 823 | 821 |
| 824 void DrawControl(CFX_RenderDevice* pDevice, | 822 void DrawControl(CFX_RenderDevice* pDevice, |
| 825 CFX_Matrix* pMatrix, | 823 CFX_Matrix* pMatrix, |
| 826 CPDF_Page* pPage, | 824 CPDF_Page* pPage, |
| 827 CPDF_Annot::AppearanceMode mode, | 825 CPDF_Annot::AppearanceMode mode, |
| 828 const CPDF_RenderOptions* pOptions = nullptr); | 826 const CPDF_RenderOptions* pOptions = nullptr); |
| 829 | 827 |
| 830 CFX_ByteString GetCheckedAPState(); | 828 CFX_ByteString GetCheckedAPState(); |
| 831 CFX_WideString GetExportValue(); | 829 CFX_WideString GetExportValue() const; |
| 832 | 830 |
| 833 bool IsChecked() const; | 831 bool IsChecked() const; |
| 834 bool IsDefaultChecked() const; | 832 bool IsDefaultChecked() const; |
| 835 | 833 |
| 836 HighlightingMode GetHighlightingMode(); | 834 HighlightingMode GetHighlightingMode(); |
| 837 bool HasMKEntry(const CFX_ByteString& csEntry) const; | 835 bool HasMKEntry(const CFX_ByteString& csEntry) const; |
| 838 int GetRotation(); | 836 int GetRotation(); |
| 839 | 837 |
| 840 inline FX_ARGB GetBorderColor(int& iColorType) { | 838 inline FX_ARGB GetBorderColor(int& iColorType) { |
| 841 return GetColor(iColorType, "BC"); | 839 return GetColor(iColorType, "BC"); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 887 FX_ARGB GetColor(int& iColorType, const CFX_ByteString& csEntry); | 885 FX_ARGB GetColor(int& iColorType, const CFX_ByteString& csEntry); |
| 888 FX_FLOAT GetOriginalColor(int index, const CFX_ByteString& csEntry); | 886 FX_FLOAT GetOriginalColor(int index, const CFX_ByteString& csEntry); |
| 889 void GetOriginalColor(int& iColorType, | 887 void GetOriginalColor(int& iColorType, |
| 890 FX_FLOAT fc[4], | 888 FX_FLOAT fc[4], |
| 891 const CFX_ByteString& csEntry); | 889 const CFX_ByteString& csEntry); |
| 892 | 890 |
| 893 CFX_WideString GetCaption(const CFX_ByteString& csEntry); | 891 CFX_WideString GetCaption(const CFX_ByteString& csEntry); |
| 894 CPDF_Stream* GetIcon(const CFX_ByteString& csEntry); | 892 CPDF_Stream* GetIcon(const CFX_ByteString& csEntry); |
| 895 CPDF_ApSettings GetMK() const; | 893 CPDF_ApSettings GetMK() const; |
| 896 | 894 |
| 897 CPDF_InterForm* m_pForm; | 895 CPDF_FormField* const m_pField; |
| 898 CPDF_FormField* m_pField; | 896 CPDF_Dictionary* const m_pWidgetDict; |
| 899 CPDF_Dictionary* m_pWidgetDict; | 897 CPDF_InterForm* const m_pForm; |
| 900 | 898 |
| 901 friend class CPDF_InterForm; | 899 friend class CPDF_InterForm; |
| 902 friend class CPDF_FormField; | 900 friend class CPDF_FormField; |
| 903 }; | 901 }; |
| 904 | 902 |
| 905 class CPDF_FormNotify { | 903 class IPDF_FormNotify { |
| 906 public: | 904 public: |
| 907 virtual ~CPDF_FormNotify() {} | 905 virtual ~IPDF_FormNotify() {} |
| 908 | 906 |
| 909 virtual int BeforeValueChange(CPDF_FormField* pField, | 907 virtual int BeforeValueChange(CPDF_FormField* pField, |
| 910 const CFX_WideString& csValue) { | 908 const CFX_WideString& csValue) { |
| 911 return 0; | 909 return 0; |
| 912 } | 910 } |
| 913 virtual void AfterValueChange(CPDF_FormField* pField) {} | 911 virtual void AfterValueChange(CPDF_FormField* pField) {} |
| 914 virtual int BeforeSelectionChange(CPDF_FormField* pField, | 912 virtual int BeforeSelectionChange(CPDF_FormField* pField, |
| 915 const CFX_WideString& csValue) { | 913 const CFX_WideString& csValue) { |
| 916 return 0; | 914 return 0; |
| 917 } | 915 } |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1009 void GetOriginalColor(int& iColorType, | 1007 void GetOriginalColor(int& iColorType, |
| 1010 FX_FLOAT fc[4], | 1008 FX_FLOAT fc[4], |
| 1011 const CFX_ByteString& csEntry) const; | 1009 const CFX_ByteString& csEntry) const; |
| 1012 | 1010 |
| 1013 CFX_WideString GetCaption(const CFX_ByteString& csEntry) const; | 1011 CFX_WideString GetCaption(const CFX_ByteString& csEntry) const; |
| 1014 CPDF_Stream* GetIcon(const CFX_ByteString& csEntry) const; | 1012 CPDF_Stream* GetIcon(const CFX_ByteString& csEntry) const; |
| 1015 | 1013 |
| 1016 CPDF_Dictionary* const m_pDict; | 1014 CPDF_Dictionary* const m_pDict; |
| 1017 }; | 1015 }; |
| 1018 | 1016 |
| 1017 CPDF_Stream* FPDFDOC_GetAnnotAP(CPDF_Dictionary* pAnnotDict, |
| 1018 CPDF_Annot::AppearanceMode mode); |
| 1019 |
| 1019 #endif // CORE_FPDFDOC_INCLUDE_FPDF_DOC_H_ | 1020 #endif // CORE_FPDFDOC_INCLUDE_FPDF_DOC_H_ |
| OLD | NEW |