diff options
Diffstat (limited to 'core/include')
-rw-r--r-- | core/include/fpdfapi/fpdf_objects.h | 72 | ||||
-rw-r--r-- | core/include/fpdfapi/fpdf_pageobj.h | 42 |
2 files changed, 48 insertions, 66 deletions
diff --git a/core/include/fpdfapi/fpdf_objects.h b/core/include/fpdfapi/fpdf_objects.h index d0617e01ab..ca4bb51fda 100644 --- a/core/include/fpdfapi/fpdf_objects.h +++ b/core/include/fpdfapi/fpdf_objects.h @@ -30,20 +30,21 @@ class CPDF_StreamFilter; class CPDF_String; class IFX_FileRead; -#define PDFOBJ_INVALID 0 -#define PDFOBJ_BOOLEAN 1 -#define PDFOBJ_NUMBER 2 -#define PDFOBJ_STRING 3 -#define PDFOBJ_NAME 4 -#define PDFOBJ_ARRAY 5 -#define PDFOBJ_DICTIONARY 6 -#define PDFOBJ_STREAM 7 -#define PDFOBJ_NULL 8 -#define PDFOBJ_REFERENCE 9 - class CPDF_Object { public: - int GetType() const { return m_Type; } + enum Type { + BOOLEAN = 1, + NUMBER, + STRING, + NAME, + ARRAY, + DICTIONARY, + STREAM, + NULLOBJ, + REFERENCE + }; + + Type GetType() const { return m_Type; } FX_DWORD GetObjNum() const { return m_ObjNum; } FX_DWORD GetGenNum() const { return m_GenNum; } @@ -68,14 +69,14 @@ class CPDF_Object { void SetString(const CFX_ByteString& str); void SetUnicodeText(const FX_WCHAR* pUnicodes, int len = -1); - bool IsArray() const { return m_Type == PDFOBJ_ARRAY; } - bool IsBoolean() const { return m_Type == PDFOBJ_BOOLEAN; } - bool IsDictionary() const { return m_Type == PDFOBJ_DICTIONARY; } - bool IsName() const { return m_Type == PDFOBJ_NAME; } - bool IsNumber() const { return m_Type == PDFOBJ_NUMBER; } - bool IsReference() const { return m_Type == PDFOBJ_REFERENCE; } - bool IsStream() const { return m_Type == PDFOBJ_STREAM; } - bool IsString() const { return m_Type == PDFOBJ_STRING; } + bool IsArray() const { return m_Type == ARRAY; } + bool IsBoolean() const { return m_Type == BOOLEAN; } + bool IsDictionary() const { return m_Type == DICTIONARY; } + bool IsName() const { return m_Type == NAME; } + bool IsNumber() const { return m_Type == NUMBER; } + bool IsReference() const { return m_Type == REFERENCE; } + bool IsStream() const { return m_Type == STREAM; } + bool IsString() const { return m_Type == STRING; } CPDF_Array* AsArray(); const CPDF_Array* AsArray() const; @@ -95,14 +96,13 @@ class CPDF_Object { const CPDF_String* AsString() const; protected: - explicit CPDF_Object(FX_DWORD type) - : m_Type(type), m_ObjNum(0), m_GenNum(0) {} + explicit CPDF_Object(Type type) : m_Type(type), m_ObjNum(0), m_GenNum(0) {} ~CPDF_Object() {} void Destroy(); const CPDF_Object* GetBasicObject() const; - FX_DWORD m_Type; + const Type m_Type; FX_DWORD m_ObjNum; FX_DWORD m_GenNum; @@ -111,15 +111,14 @@ class CPDF_Object { friend class CPDF_SyntaxParser; private: - CPDF_Object(const CPDF_Object& src) {} CPDF_Object* CloneInternal(FX_BOOL bDirect, std::set<FX_DWORD>* visited) const; }; class CPDF_Boolean : public CPDF_Object { public: - CPDF_Boolean() : CPDF_Object(PDFOBJ_BOOLEAN), m_bValue(false) {} + CPDF_Boolean() : CPDF_Object(BOOLEAN), m_bValue(false) {} explicit CPDF_Boolean(FX_BOOL value) - : CPDF_Object(PDFOBJ_BOOLEAN), m_bValue(value) {} + : CPDF_Object(BOOLEAN), m_bValue(value) {} FX_BOOL Identical(CPDF_Boolean* pOther) const { return m_bValue == pOther->m_bValue; @@ -141,7 +140,7 @@ inline const CPDF_Boolean* ToBoolean(const CPDF_Object* obj) { class CPDF_Number : public CPDF_Object { public: - CPDF_Number() : CPDF_Object(PDFOBJ_NUMBER), m_bInteger(TRUE), m_Integer(0) {} + CPDF_Number() : CPDF_Object(NUMBER), m_bInteger(TRUE), m_Integer(0) {} explicit CPDF_Number(int value); @@ -190,10 +189,10 @@ inline const CPDF_Number* ToNumber(const CPDF_Object* obj) { class CPDF_String : public CPDF_Object { public: - CPDF_String() : CPDF_Object(PDFOBJ_STRING), m_bHex(FALSE) {} + CPDF_String() : CPDF_Object(STRING), m_bHex(FALSE) {} CPDF_String(const CFX_ByteString& str, FX_BOOL bHex) - : CPDF_Object(PDFOBJ_STRING), m_String(str), m_bHex(bHex) {} + : CPDF_Object(STRING), m_String(str), m_bHex(bHex) {} explicit CPDF_String(const CFX_WideString& str); @@ -221,11 +220,10 @@ inline const CPDF_String* ToString(const CPDF_Object* obj) { class CPDF_Name : public CPDF_Object { public: explicit CPDF_Name(const CFX_ByteString& str) - : CPDF_Object(PDFOBJ_NAME), m_Name(str) {} + : CPDF_Object(NAME), m_Name(str) {} explicit CPDF_Name(const CFX_ByteStringC& str) - : CPDF_Object(PDFOBJ_NAME), m_Name(str) {} - explicit CPDF_Name(const FX_CHAR* str) - : CPDF_Object(PDFOBJ_NAME), m_Name(str) {} + : CPDF_Object(NAME), m_Name(str) {} + explicit CPDF_Name(const FX_CHAR* str) : CPDF_Object(NAME), m_Name(str) {} CFX_ByteString GetString() const { return m_Name; } @@ -246,7 +244,7 @@ inline const CPDF_Name* ToName(const CPDF_Object* obj) { class CPDF_Array : public CPDF_Object { public: - CPDF_Array() : CPDF_Object(PDFOBJ_ARRAY) {} + CPDF_Array() : CPDF_Object(ARRAY) {} FX_DWORD GetCount() const { return m_Objects.GetSize(); } @@ -324,7 +322,7 @@ class CPDF_Dictionary : public CPDF_Object { using iterator = std::map<CFX_ByteString, CPDF_Object*>::iterator; using const_iterator = std::map<CFX_ByteString, CPDF_Object*>::const_iterator; - CPDF_Dictionary() : CPDF_Object(PDFOBJ_DICTIONARY) {} + CPDF_Dictionary() : CPDF_Object(DICTIONARY) {} CPDF_Object* GetElement(const CFX_ByteStringC& key) const; @@ -527,13 +525,13 @@ class CPDF_StreamAcc { class CPDF_Null : public CPDF_Object { public: - CPDF_Null() : CPDF_Object(PDFOBJ_NULL) {} + CPDF_Null() : CPDF_Object(NULLOBJ) {} }; class CPDF_Reference : public CPDF_Object { public: CPDF_Reference(CPDF_IndirectObjectHolder* pDoc, int objnum) - : CPDF_Object(PDFOBJ_REFERENCE), m_pObjList(pDoc), m_RefObjNum(objnum) {} + : CPDF_Object(REFERENCE), m_pObjList(pDoc), m_RefObjNum(objnum) {} CPDF_IndirectObjectHolder* GetObjList() const { return m_pObjList; } diff --git a/core/include/fpdfapi/fpdf_pageobj.h b/core/include/fpdfapi/fpdf_pageobj.h index 2b6f78e63f..ca062b3461 100644 --- a/core/include/fpdfapi/fpdf_pageobj.h +++ b/core/include/fpdfapi/fpdf_pageobj.h @@ -328,12 +328,6 @@ class CPDF_ContentMark : public CFX_CountRef<CPDF_ContentMarkData> { CPDF_Dictionary*& pDict) const; }; -#define PDFPAGE_TEXT 1 -#define PDFPAGE_PATH 2 -#define PDFPAGE_IMAGE 3 -#define PDFPAGE_SHADING 4 -#define PDFPAGE_FORM 5 - class CPDF_GraphicStates { public: void CopyStates(const CPDF_GraphicStates& src); @@ -353,47 +347,42 @@ class CPDF_GraphicStates { class CPDF_PageObject : public CPDF_GraphicStates { public: + enum Type { + TEXT = 1, + PATH, + IMAGE, + SHADING, + FORM, + }; + static CPDF_PageObject* Create(int type); virtual ~CPDF_PageObject(); CPDF_PageObject* Clone() const; - void Copy(const CPDF_PageObject* pSrcObject); virtual void Transform(const CFX_Matrix& matrix) = 0; void RemoveClipPath(); - void AppendClipPath(CPDF_Path path, int type, FX_BOOL bAutoMerge); - void CopyClipPath(CPDF_PageObject* pObj); - void TransformClipPath(CFX_Matrix& matrix); - void TransformGeneralState(CFX_Matrix& matrix); - void SetColorState(CPDF_ColorState state) { m_ColorState = state; } - FX_RECT GetBBox(const CFX_Matrix* pMatrix) const; - int m_Type; - + const Type m_Type; FX_FLOAT m_Left; - FX_FLOAT m_Right; - FX_FLOAT m_Top; - FX_FLOAT m_Bottom; - CPDF_ContentMark m_ContentMark; protected: virtual void CopyData(const CPDF_PageObject* pSrcObject) = 0; void RecalcBBox(); - - CPDF_PageObject() {} + CPDF_PageObject(Type type) : m_Type(type) {} }; struct CPDF_TextObjectItem { @@ -490,7 +479,7 @@ class CPDF_TextObject : public CPDF_PageObject { class CPDF_PathObject : public CPDF_PageObject { public: - CPDF_PathObject() { m_Type = PDFPAGE_PATH; } + CPDF_PathObject() : CPDF_PageObject(PATH) {} ~CPDF_PathObject() override {} void Transform(const CFX_Matrix& maxtrix) override; @@ -547,20 +536,15 @@ class CPDF_ShadingObject : public CPDF_PageObject { class CPDF_FormObject : public CPDF_PageObject { public: - CPDF_FormObject() { - m_Type = PDFPAGE_FORM; - m_pForm = NULL; - } + CPDF_FormObject() : CPDF_PageObject(FORM), m_pForm(nullptr) {} ~CPDF_FormObject() override; void Transform(const CFX_Matrix& matrix) override; + void CalcBoundingBox(); CPDF_Form* m_pForm; - CFX_Matrix m_FormMatrix; - void CalcBoundingBox(); - protected: void CopyData(const CPDF_PageObject* pSrcObject) override; }; |