| Index: core/include/fpdfdoc/fpdf_doc.h
|
| diff --git a/core/include/fpdfdoc/fpdf_doc.h b/core/include/fpdfdoc/fpdf_doc.h
|
| index 15616be4d5a3178e139b4ade41302fef6e1c366f..7abb6bbe847a5ec9d30b6345a423903c8eacf325 100644
|
| --- a/core/include/fpdfdoc/fpdf_doc.h
|
| +++ b/core/include/fpdfdoc/fpdf_doc.h
|
| @@ -44,63 +44,51 @@ class CXML_Element;
|
|
|
| class CPDF_NameTree {
|
| public:
|
| - explicit CPDF_NameTree(CPDF_Dictionary* pRoot) { m_pRoot = pRoot; }
|
| -
|
| + explicit CPDF_NameTree(CPDF_Dictionary* pRoot) : m_pRoot(pRoot) {}
|
| CPDF_NameTree(CPDF_Document* pDoc, const CFX_ByteStringC& category);
|
|
|
| CPDF_Object* LookupValue(int nIndex, CFX_ByteString& csName) const;
|
| -
|
| CPDF_Object* LookupValue(const CFX_ByteString& csName) const;
|
| -
|
| CPDF_Array* LookupNamedDest(CPDF_Document* pDoc,
|
| const CFX_ByteStringC& sName);
|
| -
|
| int GetIndex(const CFX_ByteString& csName) const;
|
| -
|
| int GetCount() const;
|
| -
|
| CPDF_Dictionary* GetRoot() const { return m_pRoot; }
|
|
|
| protected:
|
| CPDF_Dictionary* m_pRoot;
|
| };
|
| +
|
| class CPDF_BookmarkTree {
|
| public:
|
| explicit CPDF_BookmarkTree(CPDF_Document* pDoc) : m_pDocument(pDoc) {}
|
|
|
| CPDF_Bookmark GetFirstChild(const CPDF_Bookmark& parent) const;
|
| -
|
| CPDF_Bookmark GetNextSibling(const CPDF_Bookmark& bookmark) const;
|
| -
|
| CPDF_Document* GetDocument() const { return m_pDocument; }
|
|
|
| protected:
|
| - CPDF_Document* m_pDocument;
|
| + CPDF_Document* const m_pDocument;
|
| };
|
| +
|
| #define PDFBOOKMARK_ITALIC 1
|
| #define PDFBOOKMARK_BOLD 2
|
| class CPDF_Bookmark {
|
| public:
|
| - CPDF_Bookmark() : m_pDict(NULL) {}
|
| -
|
| + CPDF_Bookmark() : m_pDict(nullptr) {}
|
| explicit CPDF_Bookmark(CPDF_Dictionary* pDict) : m_pDict(pDict) {}
|
|
|
| CPDF_Dictionary* GetDict() const { return m_pDict; }
|
| -
|
| - operator bool() const { return m_pDict != NULL; }
|
| -
|
| FX_DWORD GetColorRef() const;
|
| -
|
| FX_DWORD GetFontStyle() const;
|
| -
|
| CFX_WideString GetTitle() const;
|
| -
|
| CPDF_Dest GetDest(CPDF_Document* pDocument) const;
|
| -
|
| CPDF_Action GetAction() const;
|
|
|
| + protected:
|
| CPDF_Dictionary* m_pDict;
|
| };
|
| +
|
| #define PDFZOOM_XYZ 1
|
| #define PDFZOOM_FITPAGE 2
|
| #define PDFZOOM_FITHORZ 3
|
| @@ -114,9 +102,7 @@ class CPDF_Dest {
|
| CPDF_Dest() : m_pObj(nullptr) {}
|
| explicit CPDF_Dest(CPDF_Object* pObj) : m_pObj(pObj) {}
|
|
|
| - operator bool() const { return m_pObj != NULL; }
|
| CPDF_Object* GetObject() const { return m_pObj; }
|
| -
|
| CFX_ByteString GetRemoteName();
|
| int GetPageIndex(CPDF_Document* pDoc);
|
| FX_DWORD GetPageObjNum();
|
| @@ -126,6 +112,7 @@ class CPDF_Dest {
|
| protected:
|
| CPDF_Object* m_pObj;
|
| };
|
| +
|
| class CPDF_OCContext : public IPDF_OCContext {
|
| public:
|
| enum UsageType { View = 0, Design, Print, Export };
|
| @@ -133,53 +120,40 @@ class CPDF_OCContext : public IPDF_OCContext {
|
| explicit CPDF_OCContext(CPDF_Document* pDoc, UsageType eUsageType = View);
|
| ~CPDF_OCContext() override;
|
|
|
| - CPDF_Document* GetDocument() const { return m_pDocument; }
|
| + // IPDF_OCContext:
|
| + FX_BOOL CheckOCGVisible(const CPDF_Dictionary* pOCGDict) override;
|
|
|
| + CPDF_Document* GetDocument() const { return m_pDocument; }
|
| UsageType GetUsageType() const { return m_eUsageType; }
|
|
|
| - FX_BOOL CheckOCGVisible(const CPDF_Dictionary* pOCGDict) override;
|
| -
|
| void ResetOCContext();
|
|
|
| protected:
|
| FX_BOOL LoadOCGStateFromConfig(const CFX_ByteStringC& csConfig,
|
| const CPDF_Dictionary* pOCGDict,
|
| FX_BOOL& bValidConfig) const;
|
| -
|
| FX_BOOL LoadOCGState(const CPDF_Dictionary* pOCGDict) const;
|
| -
|
| FX_BOOL GetOCGVisible(const CPDF_Dictionary* pOCGDict);
|
| -
|
| FX_BOOL GetOCGVE(CPDF_Array* pExpression,
|
| FX_BOOL bFromConfig,
|
| int nLevel = 0);
|
| -
|
| FX_BOOL LoadOCMDState(const CPDF_Dictionary* pOCMDDict, FX_BOOL bFromConfig);
|
|
|
| CPDF_Document* m_pDocument;
|
| -
|
| UsageType m_eUsageType;
|
| -
|
| std::map<const CPDF_Dictionary*, FX_BOOL> m_OCGStates;
|
| };
|
|
|
| class CPDF_ActionFields {
|
| public:
|
| - // TODO(thestig): Examine why this cannot be explicit.
|
| - CPDF_ActionFields(const CPDF_Action* pAction) {
|
| - m_pAction = (CPDF_Action*)pAction;
|
| - }
|
| -
|
| - // TODO(thestig): Replace this.
|
| - operator CPDF_Action*() const { return m_pAction; }
|
| + explicit CPDF_ActionFields(const CPDF_Action* pAction) : m_pAction(pAction) {}
|
|
|
| FX_DWORD GetFieldsCount() const;
|
| -
|
| std::vector<CPDF_Object*> GetAllFields() const;
|
| -
|
| CPDF_Object* GetField(FX_DWORD iIndex) const;
|
|
|
| - CPDF_Action* m_pAction;
|
| + protected:
|
| + const CPDF_Action* const m_pAction;
|
| };
|
|
|
| #define PDFNAMED_NEXTPAGE 1
|
| @@ -214,62 +188,34 @@ class CPDF_Action {
|
| CPDF_Action() : m_pDict(nullptr) {}
|
| explicit CPDF_Action(CPDF_Dictionary* pDict) : m_pDict(pDict) {}
|
|
|
| - operator bool() const { return m_pDict != NULL; }
|
| -
|
| CPDF_Dictionary* GetDict() const { return m_pDict; }
|
| -
|
| CFX_ByteString GetTypeName() const { return m_pDict->GetStringBy("S"); }
|
| -
|
| ActionType GetType() const;
|
| -
|
| CPDF_Dest GetDest(CPDF_Document* pDoc) const;
|
| -
|
| CFX_WideString GetFilePath() const;
|
| -
|
| FX_BOOL GetNewWindow() const { return m_pDict->GetBooleanBy("NewWindow"); }
|
| -
|
| CFX_ByteString GetURI(CPDF_Document* pDoc) const;
|
| -
|
| FX_BOOL GetMouseMap() const { return m_pDict->GetBooleanBy("IsMap"); }
|
| -
|
| - CPDF_ActionFields GetWidgets() const { return this; }
|
| -
|
| FX_BOOL GetHideStatus() const { return m_pDict->GetBooleanBy("H", TRUE); }
|
| -
|
| CFX_ByteString GetNamedAction() const { return m_pDict->GetStringBy("N"); }
|
| -
|
| FX_DWORD GetFlags() const { return m_pDict->GetIntegerBy("Flags"); }
|
| -
|
| CFX_WideString GetJavaScript() const;
|
| -
|
| CPDF_Dictionary* GetAnnot() const;
|
| -
|
| int32_t GetOperationType() const;
|
| -
|
| CPDF_Stream* GetSoundStream() const { return m_pDict->GetStreamBy("Sound"); }
|
| -
|
| FX_FLOAT GetVolume() const { return m_pDict->GetNumberBy("Volume"); }
|
| -
|
| FX_BOOL IsSynchronous() const { return m_pDict->GetBooleanBy("Synchronous"); }
|
| -
|
| FX_BOOL IsRepeat() const { return m_pDict->GetBooleanBy("Repeat"); }
|
| -
|
| FX_BOOL IsMixPlay() const { return m_pDict->GetBooleanBy("Mix"); }
|
| -
|
| FX_DWORD GetSubActionsCount() const;
|
| -
|
| CPDF_Action GetSubAction(FX_DWORD iIndex) const;
|
|
|
| protected:
|
| - CPDF_Dictionary* m_pDict;
|
| + CPDF_Dictionary* const m_pDict;
|
| };
|
| +
|
| class CPDF_AAction {
|
| public:
|
| - // TODO(thestig): Examine why this cannot be explicit.
|
| - CPDF_AAction(CPDF_Dictionary* pDict = NULL) { m_pDict = pDict; }
|
| -
|
| - operator CPDF_Dictionary*() const { return m_pDict; }
|
| -
|
| enum AActionType {
|
| CursorEnter = 0,
|
| CursorExit,
|
| @@ -294,24 +240,25 @@ class CPDF_AAction {
|
| DocumentPrinted
|
| };
|
|
|
| - FX_BOOL ActionExist(AActionType eType) const;
|
| + CPDF_AAction() : m_pDict(nullptr) {}
|
| + explicit CPDF_AAction(CPDF_Dictionary* pDict) : m_pDict(pDict) {}
|
|
|
| + FX_BOOL ActionExist(AActionType eType) const;
|
| CPDF_Action GetAction(AActionType eType) const;
|
| + CPDF_Dictionary* GetDict() const { return m_pDict; }
|
|
|
| - CPDF_Dictionary* m_pDict;
|
| + protected:
|
| + CPDF_Dictionary* const m_pDict;
|
| };
|
| +
|
| class CPDF_DocJSActions {
|
| public:
|
| explicit CPDF_DocJSActions(CPDF_Document* pDoc);
|
|
|
| int CountJSActions() const;
|
| -
|
| CPDF_Action GetJSAction(int index, CFX_ByteString& csName) const;
|
| -
|
| CPDF_Action GetJSAction(const CFX_ByteString& csName) const;
|
| -
|
| int FindJSAction(const CFX_ByteString& csName) const;
|
| -
|
| CPDF_Document* GetDocument() const { return m_pDocument; }
|
|
|
| protected:
|
| @@ -321,7 +268,7 @@ class CPDF_DocJSActions {
|
| class CPDF_FileSpec {
|
| public:
|
| CPDF_FileSpec();
|
| - explicit CPDF_FileSpec(CPDF_Object* pObj) { m_pObj = pObj; }
|
| + explicit CPDF_FileSpec(CPDF_Object* pObj) : m_pObj(pObj) {}
|
|
|
| // Convert a platform dependent file name into pdf format.
|
| static CFX_WideString EncodeFileName(const CFX_WideStringC& filepath);
|
| @@ -351,7 +298,6 @@ class CPDF_LinkList {
|
|
|
| private:
|
| const std::vector<CPDF_Dictionary*>* GetPageLinks(CPDF_Page* pPage);
|
| -
|
| void LoadPageLinks(CPDF_Page* pPage, std::vector<CPDF_Dictionary*>* pList);
|
|
|
| std::map<FX_DWORD, std::vector<CPDF_Dictionary*>> m_PageMap;
|
| @@ -390,31 +336,23 @@ class CPDF_Annot : public CFX_PrivateData {
|
| ~CPDF_Annot();
|
|
|
| CFX_ByteString GetSubType() const;
|
| -
|
| FX_DWORD GetFlags() const;
|
| -
|
| void GetRect(CFX_FloatRect& rect) const;
|
| -
|
| const CPDF_Dictionary* GetAnnotDict() const { return m_pAnnotDict; }
|
| CPDF_Dictionary* GetAnnotDict() { return m_pAnnotDict; }
|
| -
|
| FX_BOOL DrawAppearance(CPDF_Page* pPage,
|
| CFX_RenderDevice* pDevice,
|
| const CFX_Matrix* pUser2Device,
|
| AppearanceMode mode,
|
| const CPDF_RenderOptions* pOptions);
|
| -
|
| FX_BOOL DrawInContext(const CPDF_Page* pPage,
|
| CPDF_RenderContext* pContext,
|
| const CFX_Matrix* pUser2Device,
|
| AppearanceMode mode);
|
| -
|
| void ClearCachedAP();
|
| -
|
| void DrawBorder(CFX_RenderDevice* pDevice,
|
| const CFX_Matrix* pUser2Device,
|
| const CPDF_RenderOptions* pOptions);
|
| -
|
| CPDF_Form* GetAPForm(const CPDF_Page* pPage, AppearanceMode mode);
|
|
|
| private:
|
| @@ -438,6 +376,7 @@ class CPDF_AnnotList {
|
| DisplayAnnots(pPage, nullptr, pContext, bPrinting, pMatrix,
|
| bShowWidget ? 3 : 1, pOptions, nullptr);
|
| }
|
| +
|
| void DisplayAnnots(CPDF_Page* pPage,
|
| CFX_RenderDevice* pDevice,
|
| CPDF_RenderContext* pContext,
|
| @@ -471,52 +410,33 @@ class CPDF_AnnotList {
|
| #define COLORTYPE_CMYK 3
|
| class CPDF_DefaultAppearance {
|
| public:
|
| - // TODO(thestig): Examine why this cannot be explicit.
|
| - CPDF_DefaultAppearance(const CFX_ByteString& csDA = "") { m_csDA = csDA; }
|
| + CPDF_DefaultAppearance() {}
|
| + explicit CPDF_DefaultAppearance(const CFX_ByteString& csDA) : m_csDA(csDA) {}
|
|
|
| CPDF_DefaultAppearance(const CPDF_DefaultAppearance& cDA) {
|
| - m_csDA = (CFX_ByteString)(CPDF_DefaultAppearance&)cDA;
|
| - }
|
| -
|
| - operator CFX_ByteString() const { return m_csDA; }
|
| -
|
| - const CPDF_DefaultAppearance& operator=(const CFX_ByteString& csDA) {
|
| - m_csDA = csDA;
|
| - return *this;
|
| - }
|
| -
|
| - const CPDF_DefaultAppearance& operator=(const CPDF_DefaultAppearance& cDA) {
|
| - m_csDA = (CFX_ByteString)(CPDF_DefaultAppearance&)cDA;
|
| - return *this;
|
| + m_csDA = cDA.GetStr();
|
| }
|
|
|
| + CFX_ByteString GetStr() const { return m_csDA; }
|
| FX_BOOL HasFont();
|
| -
|
| CFX_ByteString GetFontString();
|
| -
|
| void GetFont(CFX_ByteString& csFontNameTag, FX_FLOAT& fFontSize);
|
| -
|
| FX_BOOL HasColor(FX_BOOL bStrokingOperation = FALSE);
|
| -
|
| CFX_ByteString GetColorString(FX_BOOL bStrokingOperation = FALSE);
|
| -
|
| void GetColor(int& iColorType,
|
| FX_FLOAT fc[4],
|
| FX_BOOL bStrokingOperation = FALSE);
|
| -
|
| void GetColor(FX_ARGB& color,
|
| int& iColorType,
|
| FX_BOOL bStrokingOperation = FALSE);
|
| -
|
| FX_BOOL HasTextMatrix();
|
| -
|
| CFX_ByteString GetTextMatrixString();
|
| -
|
| CFX_Matrix GetTextMatrix();
|
|
|
| protected:
|
| CFX_ByteString m_csDA;
|
| };
|
| +
|
| #define FIELDTYPE_UNKNOWN 0
|
| #define FIELDTYPE_PUSHBUTTON 1
|
| #define FIELDTYPE_CHECKBOX 2
|
| @@ -542,9 +462,10 @@ class CPDF_InterForm : public CFX_PrivateData {
|
| static CPDF_Font* AddStandardFont(CPDF_Document* pDocument,
|
| CFX_ByteString csFontName);
|
|
|
| - static CFX_ByteString GetNativeFont(uint8_t iCharSet, void* pLogFont = NULL);
|
| + static CFX_ByteString GetNativeFont(uint8_t iCharSet,
|
| + void* pLogFont = nullptr);
|
|
|
| - static CFX_ByteString GetNativeFont(void* pLogFont = NULL);
|
| + static CFX_ByteString GetNativeFont(void* pLogFont = nullptr);
|
|
|
| static uint8_t GetNativeCharSet();
|
|
|
| @@ -706,6 +627,7 @@ class CPDF_InterForm : public CFX_PrivateData {
|
| friend class CPDF_FormControl;
|
| friend class CPDF_FormField;
|
| };
|
| +
|
| #define FORMFIELD_READONLY 0x01
|
| #define FORMFIELD_REQUIRED 0x02
|
| #define FORMFIELD_NOEXPORT 0x04
|
| @@ -863,27 +785,24 @@ class CPDF_FormField {
|
| friend class CPDF_InterForm;
|
| friend class CPDF_FormControl;
|
| };
|
| +
|
| CPDF_Object* FPDF_GetFieldAttr(CPDF_Dictionary* pFieldDict,
|
| const FX_CHAR* name,
|
| int nLevel = 0);
|
| class CPDF_IconFit {
|
| public:
|
| - // TODO(thestig): Examine why this cannot be explicit.
|
| - CPDF_IconFit(CPDF_Dictionary* pDict = NULL) { m_pDict = pDict; }
|
| -
|
| - operator CPDF_Dictionary*() const { return m_pDict; }
|
| -
|
| enum ScaleMethod { Always = 0, Bigger, Smaller, Never };
|
|
|
| - ScaleMethod GetScaleMethod();
|
| + explicit CPDF_IconFit(const CPDF_Dictionary* pDict) : m_pDict(pDict) {}
|
|
|
| + ScaleMethod GetScaleMethod();
|
| FX_BOOL IsProportionalScale();
|
| -
|
| void GetIconPosition(FX_FLOAT& fLeft, FX_FLOAT& fBottom);
|
| -
|
| FX_BOOL GetFittingBounds();
|
| + const CPDF_Dictionary* GetDict() const { return m_pDict; }
|
|
|
| - CPDF_Dictionary* m_pDict;
|
| + protected:
|
| + const CPDF_Dictionary* const m_pDict;
|
| };
|
|
|
| #define TEXTPOS_CAPTION 0
|
| @@ -908,7 +827,7 @@ class CPDF_FormControl {
|
| CFX_Matrix* pMatrix,
|
| CPDF_Page* pPage,
|
| CPDF_Annot::AppearanceMode mode,
|
| - const CPDF_RenderOptions* pOptions = NULL);
|
| + const CPDF_RenderOptions* pOptions = nullptr);
|
|
|
| CFX_ByteString GetCheckedAPState();
|
| CFX_WideString GetExportValue();
|
| @@ -1023,18 +942,17 @@ class CPDF_FormNotify {
|
| };
|
|
|
| FX_BOOL FPDF_GenerateAP(CPDF_Document* pDoc, CPDF_Dictionary* pAnnotDict);
|
| +
|
| class CPDF_PageLabel {
|
| public:
|
| - explicit CPDF_PageLabel(CPDF_Document* pDocument) { m_pDocument = pDocument; }
|
| + explicit CPDF_PageLabel(CPDF_Document* pDocument) : m_pDocument(pDocument) {}
|
|
|
| CFX_WideString GetLabel(int nPage) const;
|
| -
|
| int32_t GetPageByLabel(const CFX_ByteStringC& bsLabel) const;
|
| -
|
| int32_t GetPageByLabel(const CFX_WideStringC& wsLabel) const;
|
|
|
| protected:
|
| - CPDF_Document* m_pDocument;
|
| + CPDF_Document* const m_pDocument;
|
| };
|
|
|
| class CPDF_Metadata {
|
| @@ -1051,17 +969,12 @@ class CPDF_Metadata {
|
| class CPDF_ViewerPreferences {
|
| public:
|
| explicit CPDF_ViewerPreferences(CPDF_Document* pDoc);
|
| -
|
| ~CPDF_ViewerPreferences();
|
|
|
| FX_BOOL IsDirectionR2L() const;
|
| -
|
| FX_BOOL PrintScaling() const;
|
| -
|
| int32_t NumCopies() const;
|
| -
|
| CPDF_Array* PrintPageRange() const;
|
| -
|
| CFX_ByteString Duplex() const;
|
|
|
| protected:
|
|
|