Index: core/include/fpdfapi/fpdf_page.h |
diff --git a/core/include/fpdfapi/fpdf_page.h b/core/include/fpdfapi/fpdf_page.h |
index edcef3c0b639bcd76972c5a95b892af4e8f3fb6d..2ff8a0596b45c2632464885ad00f227be846d174 100644 |
--- a/core/include/fpdfapi/fpdf_page.h |
+++ b/core/include/fpdfapi/fpdf_page.h |
@@ -7,11 +7,12 @@ |
#ifndef CORE_INCLUDE_FPDFAPI_FPDF_PAGE_H_ |
#define CORE_INCLUDE_FPDFAPI_FPDF_PAGE_H_ |
+#include <memory> |
+ |
+#include "core/include/fpdfapi/fpdf_parser.h" |
+#include "core/include/fpdfapi/fpdf_resource.h" |
#include "core/include/fxge/fx_dib.h" |
-#include "fpdf_parser.h" |
-#include "fpdf_resource.h" |
-class CPDF_PageObjects; |
class CPDF_Page; |
class CPDF_Form; |
class CPDF_ParseOptions; |
@@ -27,7 +28,7 @@ class CPDF_StreamContentParser; |
class CPDF_PageObjects { |
public: |
- CPDF_PageObjects(FX_BOOL bReleaseMembers = TRUE); |
+ CPDF_PageObjects(); |
~CPDF_PageObjects(); |
void ContinueParse(IFX_Pause* pPause); |
@@ -54,6 +55,7 @@ class CPDF_PageObjects { |
return (CPDF_PageObject*)m_ObjectList.GetAt(pos); |
} |
+ void AddTail(CPDF_PageObject* obj) { m_ObjectList.AddTail(obj); } |
FX_DWORD CountObjects() const { return m_ObjectList.GetCount(); } |
int GetObjectIndex(CPDF_PageObject* pObj) const; |
@@ -66,9 +68,12 @@ class CPDF_PageObjects { |
void Transform(const CFX_Matrix& matrix); |
FX_BOOL BackgroundAlphaNeeded() const { return m_bBackgroundAlphaNeeded; } |
+ void SetBackgroundAlphaNeeded(FX_BOOL needed) { |
+ m_bBackgroundAlphaNeeded = needed; |
+ } |
FX_BOOL HasImageMask() const { return m_bHasImageMask; } |
- |
+ void SetHasImageMask(FX_BOOL value) { m_bHasImageMask = value; } |
CFX_FloatRect CalcBoundingBox() const; |
CPDF_Dictionary* m_pFormDict; |
@@ -80,21 +85,15 @@ class CPDF_PageObjects { |
int m_Transparency; |
protected: |
- friend class CPDF_ContentParser; |
- friend class CPDF_StreamContentParser; |
- friend class CPDF_AllStates; |
- |
enum ParseState { CONTENT_NOT_PARSED, CONTENT_PARSING, CONTENT_PARSED }; |
void LoadTransInfo(); |
- void ClearCacheObjects(); |
- CFX_PtrList m_ObjectList; |
FX_BOOL m_bBackgroundAlphaNeeded; |
FX_BOOL m_bHasImageMask; |
- FX_BOOL m_bReleaseMembers; |
- CPDF_ContentParser* m_pParser; |
ParseState m_ParseState; |
+ std::unique_ptr<CPDF_ContentParser> m_pParser; |
+ CFX_PtrList m_ObjectList; |
}; |
class CPDF_Page : public CPDF_PageObjects, public CFX_PrivateData { |
@@ -106,9 +105,7 @@ class CPDF_Page : public CPDF_PageObjects, public CFX_PrivateData { |
CPDF_Dictionary* pPageDict, |
FX_BOOL bPageCache = TRUE); |
- void StartParse(CPDF_ParseOptions* pOptions = NULL, FX_BOOL bReParse = FALSE); |
- void ParseContent(CPDF_ParseOptions* pOptions = NULL, |
- FX_BOOL bReParse = FALSE); |
+ void ParseContent(CPDF_ParseOptions* pOptions); |
void GetDisplayMatrix(CFX_Matrix& matrix, |
int xPos, |
@@ -126,6 +123,8 @@ class CPDF_Page : public CPDF_PageObjects, public CFX_PrivateData { |
protected: |
friend class CPDF_ContentParser; |
+ void StartParse(CPDF_ParseOptions* pOptions); |
+ |
FX_FLOAT m_PageWidth; |
FX_FLOAT m_PageHeight; |
CFX_Matrix m_PageMatrix; |