| Index: core/include/fpdfapi/fpdf_pageobj.h
|
| diff --git a/core/include/fpdfapi/fpdf_pageobj.h b/core/include/fpdfapi/fpdf_pageobj.h
|
| index 73540a3eb334ce87a9c4b8c9cba11cbbe61537c7..be81244ef4df5cad7c62c395def72a8e29ced0d0 100644
|
| --- a/core/include/fpdfapi/fpdf_pageobj.h
|
| +++ b/core/include/fpdfapi/fpdf_pageobj.h
|
| @@ -31,672 +31,540 @@ class CPDF_ShadingObject;
|
| class CPDF_FormObject;
|
| typedef CFX_PathData CPDF_PathData;
|
|
|
| -class CPDF_Path : public CFX_CountRef<CFX_PathData>
|
| -{
|
| -public:
|
| - int GetPointCount()
|
| - {
|
| - return m_pObject->m_PointCount;
|
| - }
|
| -
|
| - int GetFlag(int index)
|
| - {
|
| - return m_pObject->m_pPoints[index].m_Flag;
|
| - }
|
| -
|
| - FX_FLOAT GetPointX(int index)
|
| - {
|
| - return m_pObject->m_pPoints[index].m_PointX;
|
| - }
|
| -
|
| - FX_FLOAT GetPointY(int index)
|
| - {
|
| - return m_pObject->m_pPoints[index].m_PointY;
|
| - }
|
| -
|
| -
|
| -
|
| -
|
| - FX_PATHPOINT* GetPoints()
|
| - {
|
| - return m_pObject->m_pPoints;
|
| - }
|
| -
|
| -
|
| - CFX_FloatRect GetBoundingBox() const
|
| - {
|
| - return m_pObject->GetBoundingBox();
|
| - }
|
| -
|
| - CFX_FloatRect GetBoundingBox(FX_FLOAT line_width, FX_FLOAT miter_limit) const
|
| - {
|
| - return m_pObject->GetBoundingBox(line_width, miter_limit);
|
| - }
|
| -
|
| - void Transform(const CFX_AffineMatrix* pMatrix)
|
| - {
|
| - GetModify()->Transform(pMatrix);
|
| - }
|
| -
|
| - void Append(CPDF_Path src, const CFX_AffineMatrix* pMatrix)
|
| - {
|
| - m_pObject->Append(src.m_pObject, pMatrix);
|
| - }
|
| -
|
| - void AppendRect(FX_FLOAT left, FX_FLOAT bottom, FX_FLOAT right, FX_FLOAT top)
|
| - {
|
| - m_pObject->AppendRect(left, bottom, right, top);
|
| - }
|
| -
|
| - FX_BOOL IsRect() const
|
| - {
|
| - return m_pObject->IsRect();
|
| - }
|
| -};
|
| -class CPDF_ClipPathData
|
| -{
|
| -public:
|
| +class CPDF_Path : public CFX_CountRef<CFX_PathData> {
|
| + public:
|
| + int GetPointCount() { return m_pObject->m_PointCount; }
|
| +
|
| + int GetFlag(int index) { return m_pObject->m_pPoints[index].m_Flag; }
|
|
|
| - CPDF_ClipPathData();
|
| + FX_FLOAT GetPointX(int index) { return m_pObject->m_pPoints[index].m_PointX; }
|
|
|
| - CPDF_ClipPathData(const CPDF_ClipPathData&);
|
| + FX_FLOAT GetPointY(int index) { return m_pObject->m_pPoints[index].m_PointY; }
|
|
|
| - ~CPDF_ClipPathData();
|
| + FX_PATHPOINT* GetPoints() { return m_pObject->m_pPoints; }
|
|
|
| - void SetCount(int path_count, int text_count);
|
| -public:
|
| + CFX_FloatRect GetBoundingBox() const { return m_pObject->GetBoundingBox(); }
|
|
|
| - int m_PathCount;
|
| + CFX_FloatRect GetBoundingBox(FX_FLOAT line_width,
|
| + FX_FLOAT miter_limit) const {
|
| + return m_pObject->GetBoundingBox(line_width, miter_limit);
|
| + }
|
|
|
| - CPDF_Path* m_pPathList;
|
| + void Transform(const CFX_AffineMatrix* pMatrix) {
|
| + GetModify()->Transform(pMatrix);
|
| + }
|
|
|
| - uint8_t* m_pTypeList;
|
| + void Append(CPDF_Path src, const CFX_AffineMatrix* pMatrix) {
|
| + m_pObject->Append(src.m_pObject, pMatrix);
|
| + }
|
|
|
| - int m_TextCount;
|
| + void AppendRect(FX_FLOAT left,
|
| + FX_FLOAT bottom,
|
| + FX_FLOAT right,
|
| + FX_FLOAT top) {
|
| + m_pObject->AppendRect(left, bottom, right, top);
|
| + }
|
|
|
| - CPDF_TextObject** m_pTextList;
|
| + FX_BOOL IsRect() const { return m_pObject->IsRect(); }
|
| };
|
| -class CPDF_ClipPath : public CFX_CountRef<CPDF_ClipPathData>
|
| -{
|
| -public:
|
| +class CPDF_ClipPathData {
|
| + public:
|
| + CPDF_ClipPathData();
|
|
|
| - FX_DWORD GetPathCount() const
|
| - {
|
| - return m_pObject->m_PathCount;
|
| - }
|
| + CPDF_ClipPathData(const CPDF_ClipPathData&);
|
|
|
| - CPDF_Path GetPath(int i) const
|
| - {
|
| - return m_pObject->m_pPathList[i];
|
| - }
|
| + ~CPDF_ClipPathData();
|
|
|
| - int GetClipType(int i) const
|
| - {
|
| - return m_pObject->m_pTypeList[i];
|
| - }
|
| + void SetCount(int path_count, int text_count);
|
|
|
| - FX_DWORD GetTextCount() const
|
| - {
|
| - return m_pObject->m_TextCount;
|
| - }
|
| + public:
|
| + int m_PathCount;
|
|
|
| - CPDF_TextObject* GetText(int i) const
|
| - {
|
| - return m_pObject->m_pTextList[i];
|
| - }
|
| + CPDF_Path* m_pPathList;
|
|
|
| - CFX_FloatRect GetClipBox() const;
|
| + uint8_t* m_pTypeList;
|
|
|
| - void AppendPath(CPDF_Path path, int type, FX_BOOL bAutoMerge);
|
| + int m_TextCount;
|
|
|
| - void DeletePath(int layer_index);
|
| + CPDF_TextObject** m_pTextList;
|
| +};
|
| +class CPDF_ClipPath : public CFX_CountRef<CPDF_ClipPathData> {
|
| + public:
|
| + FX_DWORD GetPathCount() const { return m_pObject->m_PathCount; }
|
|
|
| - void AppendTexts(CPDF_TextObject** pTexts, int count);
|
| + CPDF_Path GetPath(int i) const { return m_pObject->m_pPathList[i]; }
|
|
|
| - void Transform(const CFX_AffineMatrix& matrix);
|
| -};
|
| -class CPDF_ColorStateData
|
| -{
|
| -public:
|
| + int GetClipType(int i) const { return m_pObject->m_pTypeList[i]; }
|
|
|
| - CPDF_ColorStateData(): m_FillRGB(0), m_StrokeRGB(0) {}
|
| + FX_DWORD GetTextCount() const { return m_pObject->m_TextCount; }
|
|
|
| - CPDF_ColorStateData(const CPDF_ColorStateData& src);
|
| + CPDF_TextObject* GetText(int i) const { return m_pObject->m_pTextList[i]; }
|
|
|
| - void Default();
|
| + CFX_FloatRect GetClipBox() const;
|
|
|
| - CPDF_Color m_FillColor;
|
| + void AppendPath(CPDF_Path path, int type, FX_BOOL bAutoMerge);
|
|
|
| - FX_DWORD m_FillRGB;
|
| + void DeletePath(int layer_index);
|
|
|
| - CPDF_Color m_StrokeColor;
|
| + void AppendTexts(CPDF_TextObject** pTexts, int count);
|
|
|
| - FX_DWORD m_StrokeRGB;
|
| + void Transform(const CFX_AffineMatrix& matrix);
|
| };
|
| -class CPDF_ColorState : public CFX_CountRef<CPDF_ColorStateData>
|
| -{
|
| -public:
|
| +class CPDF_ColorStateData {
|
| + public:
|
| + CPDF_ColorStateData() : m_FillRGB(0), m_StrokeRGB(0) {}
|
|
|
| - CPDF_Color* GetFillColor() const
|
| - {
|
| - return m_pObject ? &m_pObject->m_FillColor : NULL;
|
| - }
|
| + CPDF_ColorStateData(const CPDF_ColorStateData& src);
|
|
|
| - CPDF_Color* GetStrokeColor() const
|
| - {
|
| - return m_pObject ? &m_pObject->m_StrokeColor : NULL;
|
| - }
|
| + void Default();
|
|
|
| - void SetFillColor(CPDF_ColorSpace* pCS, FX_FLOAT* pValue, int nValues);
|
| + CPDF_Color m_FillColor;
|
|
|
| - void SetStrokeColor(CPDF_ColorSpace* pCS, FX_FLOAT* pValue, int nValues);
|
| + FX_DWORD m_FillRGB;
|
|
|
| - void SetFillPattern(CPDF_Pattern* pattern, FX_FLOAT* pValue, int nValues);
|
| + CPDF_Color m_StrokeColor;
|
|
|
| - void SetStrokePattern(CPDF_Pattern* pattern, FX_FLOAT* pValue, int nValues);
|
| -private:
|
| - void SetColor(CPDF_Color& color, FX_DWORD& rgb, CPDF_ColorSpace* pCS, FX_FLOAT* pValue, int nValues);
|
| -};
|
| -typedef CFX_GraphStateData CPDF_GraphStateData;
|
| -class CPDF_GraphState : public CFX_CountRef<CFX_GraphStateData>
|
| -{
|
| -public:
|
| + FX_DWORD m_StrokeRGB;
|
| };
|
| -class CPDF_TextStateData
|
| -{
|
| -public:
|
| +class CPDF_ColorState : public CFX_CountRef<CPDF_ColorStateData> {
|
| + public:
|
| + CPDF_Color* GetFillColor() const {
|
| + return m_pObject ? &m_pObject->m_FillColor : NULL;
|
| + }
|
|
|
| - CPDF_TextStateData();
|
| + CPDF_Color* GetStrokeColor() const {
|
| + return m_pObject ? &m_pObject->m_StrokeColor : NULL;
|
| + }
|
|
|
| - CPDF_TextStateData(const CPDF_TextStateData& src);
|
| + void SetFillColor(CPDF_ColorSpace* pCS, FX_FLOAT* pValue, int nValues);
|
|
|
| - ~CPDF_TextStateData();
|
| + void SetStrokeColor(CPDF_ColorSpace* pCS, FX_FLOAT* pValue, int nValues);
|
|
|
| - CPDF_Font* m_pFont;
|
| + void SetFillPattern(CPDF_Pattern* pattern, FX_FLOAT* pValue, int nValues);
|
|
|
| - CPDF_Document* m_pDocument;
|
| + void SetStrokePattern(CPDF_Pattern* pattern, FX_FLOAT* pValue, int nValues);
|
|
|
| - FX_FLOAT m_FontSize;
|
| + private:
|
| + void SetColor(CPDF_Color& color,
|
| + FX_DWORD& rgb,
|
| + CPDF_ColorSpace* pCS,
|
| + FX_FLOAT* pValue,
|
| + int nValues);
|
| +};
|
| +typedef CFX_GraphStateData CPDF_GraphStateData;
|
| +class CPDF_GraphState : public CFX_CountRef<CFX_GraphStateData> {
|
| + public:
|
| +};
|
| +class CPDF_TextStateData {
|
| + public:
|
| + CPDF_TextStateData();
|
|
|
| - FX_FLOAT m_CharSpace;
|
| + CPDF_TextStateData(const CPDF_TextStateData& src);
|
|
|
| - FX_FLOAT m_WordSpace;
|
| + ~CPDF_TextStateData();
|
|
|
| - FX_FLOAT m_Matrix[4];
|
| + CPDF_Font* m_pFont;
|
|
|
| - int m_TextMode;
|
| + CPDF_Document* m_pDocument;
|
|
|
| - FX_FLOAT m_CTM[4];
|
| -};
|
| -class CPDF_TextState : public CFX_CountRef<CPDF_TextStateData>
|
| -{
|
| -public:
|
| + FX_FLOAT m_FontSize;
|
| +
|
| + FX_FLOAT m_CharSpace;
|
|
|
| - CPDF_Font* GetFont() const
|
| - {
|
| - return m_pObject->m_pFont;
|
| - }
|
| + FX_FLOAT m_WordSpace;
|
|
|
| - void SetFont(CPDF_Font* pFont);
|
| + FX_FLOAT m_Matrix[4];
|
|
|
| - FX_FLOAT GetFontSize() const
|
| - {
|
| - return m_pObject->m_FontSize;
|
| - }
|
| + int m_TextMode;
|
|
|
| - FX_FLOAT* GetMatrix() const
|
| - {
|
| - return m_pObject->m_Matrix;
|
| - }
|
| + FX_FLOAT m_CTM[4];
|
| +};
|
| +class CPDF_TextState : public CFX_CountRef<CPDF_TextStateData> {
|
| + public:
|
| + CPDF_Font* GetFont() const { return m_pObject->m_pFont; }
|
|
|
| + void SetFont(CPDF_Font* pFont);
|
|
|
| + FX_FLOAT GetFontSize() const { return m_pObject->m_FontSize; }
|
|
|
| - FX_FLOAT GetFontSizeV() const;
|
| + FX_FLOAT* GetMatrix() const { return m_pObject->m_Matrix; }
|
|
|
| - FX_FLOAT GetFontSizeH() const;
|
| + FX_FLOAT GetFontSizeV() const;
|
|
|
| - FX_FLOAT GetBaselineAngle() const;
|
| + FX_FLOAT GetFontSizeH() const;
|
|
|
| - FX_FLOAT GetShearAngle() const;
|
| + FX_FLOAT GetBaselineAngle() const;
|
|
|
| + FX_FLOAT GetShearAngle() const;
|
| };
|
| class CPDF_TransferFunc;
|
| -class CPDF_GeneralStateData
|
| -{
|
| -public:
|
| -
|
| - CPDF_GeneralStateData();
|
| +class CPDF_GeneralStateData {
|
| + public:
|
| + CPDF_GeneralStateData();
|
|
|
| - CPDF_GeneralStateData(const CPDF_GeneralStateData& src);
|
| - ~CPDF_GeneralStateData();
|
| + CPDF_GeneralStateData(const CPDF_GeneralStateData& src);
|
| + ~CPDF_GeneralStateData();
|
|
|
| - void SetBlendMode(const CFX_ByteStringC& blend_mode);
|
| + void SetBlendMode(const CFX_ByteStringC& blend_mode);
|
|
|
| - char m_BlendMode[16];
|
| + char m_BlendMode[16];
|
|
|
| - int m_BlendType;
|
| + int m_BlendType;
|
|
|
| - CPDF_Object* m_pSoftMask;
|
| + CPDF_Object* m_pSoftMask;
|
|
|
| - FX_FLOAT m_SMaskMatrix[6];
|
| + FX_FLOAT m_SMaskMatrix[6];
|
|
|
| - FX_FLOAT m_StrokeAlpha;
|
| + FX_FLOAT m_StrokeAlpha;
|
|
|
| - FX_FLOAT m_FillAlpha;
|
| + FX_FLOAT m_FillAlpha;
|
|
|
| - CPDF_Object* m_pTR;
|
| + CPDF_Object* m_pTR;
|
|
|
| - CPDF_TransferFunc* m_pTransferFunc;
|
| + CPDF_TransferFunc* m_pTransferFunc;
|
|
|
| - CFX_Matrix m_Matrix;
|
| + CFX_Matrix m_Matrix;
|
|
|
| - int m_RenderIntent;
|
| + int m_RenderIntent;
|
|
|
| - FX_BOOL m_StrokeAdjust;
|
| + FX_BOOL m_StrokeAdjust;
|
|
|
| - FX_BOOL m_AlphaSource;
|
| + FX_BOOL m_AlphaSource;
|
|
|
| - FX_BOOL m_TextKnockout;
|
| + FX_BOOL m_TextKnockout;
|
|
|
| - FX_BOOL m_StrokeOP;
|
| + FX_BOOL m_StrokeOP;
|
|
|
| - FX_BOOL m_FillOP;
|
| + FX_BOOL m_FillOP;
|
|
|
| - int m_OPMode;
|
| + int m_OPMode;
|
|
|
| - CPDF_Object* m_pBG;
|
| + CPDF_Object* m_pBG;
|
|
|
| - CPDF_Object* m_pUCR;
|
| + CPDF_Object* m_pUCR;
|
|
|
| - CPDF_Object* m_pHT;
|
| + CPDF_Object* m_pHT;
|
|
|
| - FX_FLOAT m_Flatness;
|
| + FX_FLOAT m_Flatness;
|
|
|
| - FX_FLOAT m_Smoothness;
|
| + FX_FLOAT m_Smoothness;
|
| };
|
| -class CPDF_GeneralState : public CFX_CountRef<CPDF_GeneralStateData>
|
| -{
|
| -public:
|
| -
|
| - void SetRenderIntent(const CFX_ByteString& ri);
|
| -
|
| - int GetBlendType() const
|
| - {
|
| - return m_pObject ? m_pObject->m_BlendType : FXDIB_BLEND_NORMAL;
|
| - }
|
| -
|
| - int GetAlpha(FX_BOOL bStroke) const
|
| - {
|
| - return m_pObject ? FXSYS_round((bStroke ? m_pObject->m_StrokeAlpha : m_pObject->m_FillAlpha) * 255) : 255;
|
| - }
|
| +class CPDF_GeneralState : public CFX_CountRef<CPDF_GeneralStateData> {
|
| + public:
|
| + void SetRenderIntent(const CFX_ByteString& ri);
|
| +
|
| + int GetBlendType() const {
|
| + return m_pObject ? m_pObject->m_BlendType : FXDIB_BLEND_NORMAL;
|
| + }
|
| +
|
| + int GetAlpha(FX_BOOL bStroke) const {
|
| + return m_pObject ? FXSYS_round((bStroke ? m_pObject->m_StrokeAlpha
|
| + : m_pObject->m_FillAlpha) *
|
| + 255)
|
| + : 255;
|
| + }
|
| };
|
| -class CPDF_ContentMarkItem
|
| -{
|
| -public:
|
| -
|
| - typedef enum {
|
| - None,
|
| - PropertiesDict,
|
| - DirectDict,
|
| - MCID
|
| - } ParamType;
|
| +class CPDF_ContentMarkItem {
|
| + public:
|
| + typedef enum { None, PropertiesDict, DirectDict, MCID } ParamType;
|
|
|
| - CPDF_ContentMarkItem();
|
| + CPDF_ContentMarkItem();
|
|
|
| - CPDF_ContentMarkItem(const CPDF_ContentMarkItem& src);
|
| + CPDF_ContentMarkItem(const CPDF_ContentMarkItem& src);
|
|
|
| - ~CPDF_ContentMarkItem();
|
| + ~CPDF_ContentMarkItem();
|
|
|
| - inline const CFX_ByteString& GetName() const
|
| - {
|
| - return m_MarkName;
|
| - }
|
| + inline const CFX_ByteString& GetName() const { return m_MarkName; }
|
|
|
| - inline ParamType GetParamType() const
|
| - {
|
| - return m_ParamType;
|
| - }
|
| + inline ParamType GetParamType() const { return m_ParamType; }
|
|
|
| - inline void* GetParam() const
|
| - {
|
| - return m_pParam;
|
| - }
|
| + inline void* GetParam() const { return m_pParam; }
|
|
|
| - inline FX_BOOL HasMCID() const;
|
| + inline FX_BOOL HasMCID() const;
|
|
|
| - inline void SetName(const CFX_ByteString& name)
|
| - {
|
| - m_MarkName = name;
|
| - }
|
| + inline void SetName(const CFX_ByteString& name) { m_MarkName = name; }
|
|
|
| - inline void SetParam(ParamType type, void* param)
|
| - {
|
| - m_ParamType = type;
|
| - m_pParam = param;
|
| - }
|
| -private:
|
| + inline void SetParam(ParamType type, void* param) {
|
| + m_ParamType = type;
|
| + m_pParam = param;
|
| + }
|
|
|
| - CFX_ByteString m_MarkName;
|
| + private:
|
| + CFX_ByteString m_MarkName;
|
|
|
| - ParamType m_ParamType;
|
| + ParamType m_ParamType;
|
|
|
| - void* m_pParam;
|
| + void* m_pParam;
|
| };
|
| -class CPDF_ContentMarkData
|
| -{
|
| -public:
|
| +class CPDF_ContentMarkData {
|
| + public:
|
| + CPDF_ContentMarkData() {}
|
|
|
| - CPDF_ContentMarkData() { }
|
| + CPDF_ContentMarkData(const CPDF_ContentMarkData& src);
|
|
|
| - CPDF_ContentMarkData(const CPDF_ContentMarkData& src);
|
| + inline int CountItems() const { return m_Marks.GetSize(); }
|
|
|
| - inline int CountItems() const
|
| - {
|
| - return m_Marks.GetSize();
|
| - }
|
| + inline CPDF_ContentMarkItem& GetItem(int index) const {
|
| + return m_Marks[index];
|
| + }
|
|
|
| - inline CPDF_ContentMarkItem& GetItem(int index) const
|
| - {
|
| - return m_Marks[index];
|
| - }
|
| + int GetMCID() const;
|
|
|
| - int GetMCID() const;
|
| + void AddMark(const CFX_ByteString& name,
|
| + CPDF_Dictionary* pDict,
|
| + FX_BOOL bDictNeedClone);
|
|
|
| - void AddMark(const CFX_ByteString& name, CPDF_Dictionary* pDict, FX_BOOL bDictNeedClone);
|
| + void DeleteLastMark();
|
|
|
| - void DeleteLastMark();
|
| -private:
|
| -
|
| - CFX_ObjectArray<CPDF_ContentMarkItem> m_Marks;
|
| + private:
|
| + CFX_ObjectArray<CPDF_ContentMarkItem> m_Marks;
|
| };
|
| -class CPDF_ContentMark : public CFX_CountRef<CPDF_ContentMarkData>
|
| -{
|
| -public:
|
| -
|
| - int GetMCID() const
|
| - {
|
| - return m_pObject ? m_pObject->GetMCID() : -1;
|
| - }
|
| +class CPDF_ContentMark : public CFX_CountRef<CPDF_ContentMarkData> {
|
| + public:
|
| + int GetMCID() const { return m_pObject ? m_pObject->GetMCID() : -1; }
|
|
|
| - FX_BOOL HasMark(const CFX_ByteStringC& mark) const;
|
| + FX_BOOL HasMark(const CFX_ByteStringC& mark) const;
|
|
|
| - FX_BOOL LookupMark(const CFX_ByteStringC& mark, CPDF_Dictionary*& pDict) const;
|
| + FX_BOOL LookupMark(const CFX_ByteStringC& mark,
|
| + CPDF_Dictionary*& pDict) const;
|
| };
|
|
|
| -#define PDFPAGE_TEXT 1
|
| -#define PDFPAGE_PATH 2
|
| -#define PDFPAGE_IMAGE 3
|
| -#define PDFPAGE_SHADING 4
|
| -#define PDFPAGE_FORM 5
|
| +#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);
|
| +class CPDF_GraphicStates {
|
| + public:
|
| + void CopyStates(const CPDF_GraphicStates& src);
|
|
|
| - void DefaultStates();
|
| + void DefaultStates();
|
|
|
| - CPDF_ClipPath m_ClipPath;
|
| + CPDF_ClipPath m_ClipPath;
|
|
|
| - CPDF_GraphState m_GraphState;
|
| + CPDF_GraphState m_GraphState;
|
|
|
| - CPDF_ColorState m_ColorState;
|
| + CPDF_ColorState m_ColorState;
|
|
|
| - CPDF_TextState m_TextState;
|
| + CPDF_TextState m_TextState;
|
|
|
| - CPDF_GeneralState m_GeneralState;
|
| + CPDF_GeneralState m_GeneralState;
|
| };
|
|
|
| -class CPDF_PageObject : public CPDF_GraphicStates
|
| -{
|
| -public:
|
| - static CPDF_PageObject* Create(int type);
|
| - virtual ~CPDF_PageObject();
|
| -
|
| - CPDF_PageObject* Clone() const;
|
| +class CPDF_PageObject : public CPDF_GraphicStates {
|
| + public:
|
| + static CPDF_PageObject* Create(int type);
|
| + virtual ~CPDF_PageObject();
|
|
|
| - void Copy(const CPDF_PageObject* pSrcObject);
|
| + CPDF_PageObject* Clone() const;
|
|
|
| - virtual void Transform(const CFX_AffineMatrix& matrix) = 0;
|
| + void Copy(const CPDF_PageObject* pSrcObject);
|
|
|
| - void RemoveClipPath();
|
| + virtual void Transform(const CFX_AffineMatrix& matrix) = 0;
|
|
|
| - void AppendClipPath(CPDF_Path path, int type, FX_BOOL bAutoMerge);
|
| + void RemoveClipPath();
|
|
|
| - void CopyClipPath(CPDF_PageObject* pObj);
|
| + void AppendClipPath(CPDF_Path path, int type, FX_BOOL bAutoMerge);
|
|
|
| - void TransformClipPath(CFX_AffineMatrix& matrix);
|
| + void CopyClipPath(CPDF_PageObject* pObj);
|
|
|
| - void TransformGeneralState(CFX_AffineMatrix& matrix);
|
| + void TransformClipPath(CFX_AffineMatrix& matrix);
|
|
|
| - void SetColorState(CPDF_ColorState state)
|
| - {
|
| - m_ColorState = state;
|
| - }
|
| + void TransformGeneralState(CFX_AffineMatrix& matrix);
|
|
|
| - FX_RECT GetBBox(const CFX_AffineMatrix* pMatrix) const;
|
| + void SetColorState(CPDF_ColorState state) { m_ColorState = state; }
|
|
|
| - int m_Type;
|
| + FX_RECT GetBBox(const CFX_AffineMatrix* pMatrix) const;
|
|
|
| - FX_FLOAT m_Left;
|
| + int m_Type;
|
|
|
| - FX_FLOAT m_Right;
|
| + FX_FLOAT m_Left;
|
|
|
| - FX_FLOAT m_Top;
|
| + FX_FLOAT m_Right;
|
|
|
| - FX_FLOAT m_Bottom;
|
| + FX_FLOAT m_Top;
|
|
|
| - CPDF_ContentMark m_ContentMark;
|
| + FX_FLOAT m_Bottom;
|
|
|
| -protected:
|
| - virtual void CopyData(const CPDF_PageObject* pSrcObject) = 0;
|
| + CPDF_ContentMark m_ContentMark;
|
|
|
| - void RecalcBBox();
|
| + protected:
|
| + virtual void CopyData(const CPDF_PageObject* pSrcObject) = 0;
|
|
|
| - CPDF_PageObject() {}
|
| + void RecalcBBox();
|
|
|
| + CPDF_PageObject() {}
|
| };
|
|
|
| struct CPDF_TextObjectItem {
|
| - FX_DWORD m_CharCode;
|
| - FX_FLOAT m_OriginX;
|
| - FX_FLOAT m_OriginY;
|
| + FX_DWORD m_CharCode;
|
| + FX_FLOAT m_OriginX;
|
| + FX_FLOAT m_OriginY;
|
| };
|
|
|
| -class CPDF_TextObject : public CPDF_PageObject
|
| -{
|
| -public:
|
| - CPDF_TextObject();
|
| - ~CPDF_TextObject() override;
|
| +class CPDF_TextObject : public CPDF_PageObject {
|
| + public:
|
| + CPDF_TextObject();
|
| + ~CPDF_TextObject() override;
|
|
|
| - int CountItems() const
|
| - {
|
| - return m_nChars;
|
| - }
|
| + int CountItems() const { return m_nChars; }
|
|
|
| - void GetItemInfo(int index, CPDF_TextObjectItem* pInfo) const;
|
| + void GetItemInfo(int index, CPDF_TextObjectItem* pInfo) const;
|
|
|
| - int CountChars() const;
|
| + int CountChars() const;
|
|
|
| - void GetCharInfo(int index, FX_DWORD& charcode, FX_FLOAT& kerning) const;
|
| - void GetCharInfo(int index, CPDF_TextObjectItem* pInfo) const;
|
| + void GetCharInfo(int index, FX_DWORD& charcode, FX_FLOAT& kerning) const;
|
| + void GetCharInfo(int index, CPDF_TextObjectItem* pInfo) const;
|
|
|
| - void GetCharRect(int index, CFX_FloatRect& rect) const;
|
| + void GetCharRect(int index, CFX_FloatRect& rect) const;
|
|
|
| - FX_FLOAT GetCharWidth(FX_DWORD charcode) const;
|
| - FX_FLOAT GetSpaceCharWidth() const;
|
| + FX_FLOAT GetCharWidth(FX_DWORD charcode) const;
|
| + FX_FLOAT GetSpaceCharWidth() const;
|
|
|
| - FX_FLOAT GetPosX() const
|
| - {
|
| - return m_PosX;
|
| - }
|
| + FX_FLOAT GetPosX() const { return m_PosX; }
|
|
|
| - FX_FLOAT GetPosY() const
|
| - {
|
| - return m_PosY;
|
| - }
|
| + FX_FLOAT GetPosY() const { return m_PosY; }
|
|
|
| - void GetTextMatrix(CFX_AffineMatrix* pMatrix) const;
|
| + void GetTextMatrix(CFX_AffineMatrix* pMatrix) const;
|
|
|
| - CPDF_Font* GetFont() const
|
| - {
|
| - return m_TextState.GetFont();
|
| - }
|
| + CPDF_Font* GetFont() const { return m_TextState.GetFont(); }
|
|
|
| - FX_FLOAT GetFontSize() const
|
| - {
|
| - return m_TextState.GetFontSize();
|
| - }
|
| + FX_FLOAT GetFontSize() const { return m_TextState.GetFontSize(); }
|
|
|
| - void SetEmpty();
|
| + void SetEmpty();
|
|
|
| - void SetText(const CFX_ByteString& text);
|
| + void SetText(const CFX_ByteString& text);
|
|
|
| - void SetText(CFX_ByteString* pStrs, FX_FLOAT* pKerning, int nSegs);
|
| + void SetText(CFX_ByteString* pStrs, FX_FLOAT* pKerning, int nSegs);
|
|
|
| - void SetText(int nChars, FX_DWORD* pCharCodes, FX_FLOAT* pKernings);
|
| + void SetText(int nChars, FX_DWORD* pCharCodes, FX_FLOAT* pKernings);
|
|
|
| - void SetPosition(FX_FLOAT x, FX_FLOAT y);
|
| + void SetPosition(FX_FLOAT x, FX_FLOAT y);
|
|
|
| - void SetTextState(CPDF_TextState TextState);
|
| + void SetTextState(CPDF_TextState TextState);
|
|
|
| - // CPDF_PageObject:
|
| - void Transform(const CFX_AffineMatrix& matrix) override;
|
| + // CPDF_PageObject:
|
| + void Transform(const CFX_AffineMatrix& matrix) override;
|
|
|
| - void CalcCharPos(FX_FLOAT* pPosArray) const;
|
| + void CalcCharPos(FX_FLOAT* pPosArray) const;
|
|
|
| - void SetData(int nChars,
|
| - FX_DWORD* pCharCodes,
|
| - FX_FLOAT* pCharPos,
|
| - FX_FLOAT x,
|
| - FX_FLOAT y);
|
| + void SetData(int nChars,
|
| + FX_DWORD* pCharCodes,
|
| + FX_FLOAT* pCharPos,
|
| + FX_FLOAT x,
|
| + FX_FLOAT y);
|
|
|
| - void GetData(int& nChars, FX_DWORD*& pCharCodes, FX_FLOAT*& pCharPos)
|
| - {
|
| - nChars = m_nChars;
|
| - pCharCodes = m_pCharCodes;
|
| - pCharPos = m_pCharPos;
|
| - }
|
| + void GetData(int& nChars, FX_DWORD*& pCharCodes, FX_FLOAT*& pCharPos) {
|
| + nChars = m_nChars;
|
| + pCharCodes = m_pCharCodes;
|
| + pCharPos = m_pCharPos;
|
| + }
|
|
|
| + void RecalcPositionData() { CalcPositionData(nullptr, nullptr, 1); }
|
|
|
| - void RecalcPositionData()
|
| - {
|
| - CalcPositionData(nullptr, nullptr, 1);
|
| - }
|
| + protected:
|
| + friend class CPDF_RenderStatus;
|
| + friend class CPDF_StreamContentParser;
|
| + friend class CPDF_TextRenderer;
|
| + friend class CTextPage;
|
|
|
| -protected:
|
| - friend class CPDF_RenderStatus;
|
| - friend class CPDF_StreamContentParser;
|
| - friend class CPDF_TextRenderer;
|
| - friend class CTextPage;
|
| + // CPDF_PageObject:
|
| + void CopyData(const CPDF_PageObject* pSrcObject) override;
|
|
|
| - // CPDF_PageObject:
|
| - void CopyData(const CPDF_PageObject* pSrcObject) override;
|
| + void SetSegments(const CFX_ByteString* pStrs, FX_FLOAT* pKerning, int nSegs);
|
|
|
| - void SetSegments(const CFX_ByteString* pStrs,
|
| - FX_FLOAT* pKerning,
|
| - int nSegs);
|
| + void CalcPositionData(FX_FLOAT* pTextAdvanceX,
|
| + FX_FLOAT* pTextAdvanceY,
|
| + FX_FLOAT horz_scale,
|
| + int level = 0);
|
|
|
| - void CalcPositionData(FX_FLOAT* pTextAdvanceX,
|
| - FX_FLOAT* pTextAdvanceY,
|
| - FX_FLOAT horz_scale,
|
| - int level = 0);
|
| + FX_FLOAT m_PosX;
|
| + FX_FLOAT m_PosY;
|
|
|
| - FX_FLOAT m_PosX;
|
| - FX_FLOAT m_PosY;
|
| + int m_nChars;
|
|
|
| - int m_nChars;
|
| + FX_DWORD* m_pCharCodes;
|
|
|
| - FX_DWORD* m_pCharCodes;
|
| -
|
| - FX_FLOAT* m_pCharPos;
|
| + FX_FLOAT* m_pCharPos;
|
| };
|
|
|
| -class CPDF_PathObject : public CPDF_PageObject
|
| -{
|
| -public:
|
| - CPDF_PathObject()
|
| - {
|
| - m_Type = PDFPAGE_PATH;
|
| - }
|
| -
|
| - virtual ~CPDF_PathObject() {}
|
| - void Transform(const CFX_AffineMatrix& maxtrix) override;
|
| +class CPDF_PathObject : public CPDF_PageObject {
|
| + public:
|
| + CPDF_PathObject() { m_Type = PDFPAGE_PATH; }
|
|
|
| - void SetGraphState(CPDF_GraphState GraphState);
|
| + virtual ~CPDF_PathObject() {}
|
| + void Transform(const CFX_AffineMatrix& maxtrix) override;
|
|
|
| - CPDF_Path m_Path;
|
| + void SetGraphState(CPDF_GraphState GraphState);
|
|
|
| - int m_FillType;
|
| + CPDF_Path m_Path;
|
|
|
| - FX_BOOL m_bStroke;
|
| + int m_FillType;
|
|
|
| - CFX_AffineMatrix m_Matrix;
|
| + FX_BOOL m_bStroke;
|
|
|
| + CFX_AffineMatrix m_Matrix;
|
|
|
| - void CalcBoundingBox();
|
| + void CalcBoundingBox();
|
|
|
| -protected:
|
| - void CopyData(const CPDF_PageObject* pSrcObject) override;
|
| + protected:
|
| + void CopyData(const CPDF_PageObject* pSrcObject) override;
|
| };
|
|
|
| -class CPDF_ImageObject : public CPDF_PageObject
|
| -{
|
| -public:
|
| - CPDF_ImageObject();
|
| +class CPDF_ImageObject : public CPDF_PageObject {
|
| + public:
|
| + CPDF_ImageObject();
|
|
|
| - virtual ~CPDF_ImageObject();
|
| - void Transform(const CFX_AffineMatrix& matrix) override;
|
| + virtual ~CPDF_ImageObject();
|
| + void Transform(const CFX_AffineMatrix& matrix) override;
|
|
|
| - CPDF_Image* m_pImage;
|
| + CPDF_Image* m_pImage;
|
|
|
| - CFX_AffineMatrix m_Matrix;
|
| + CFX_AffineMatrix m_Matrix;
|
|
|
| - void CalcBoundingBox();
|
| + void CalcBoundingBox();
|
|
|
| -private:
|
| - void CopyData(const CPDF_PageObject* pSrcObject) override;
|
| + private:
|
| + void CopyData(const CPDF_PageObject* pSrcObject) override;
|
| };
|
|
|
| -class CPDF_ShadingObject : public CPDF_PageObject
|
| -{
|
| -public:
|
| - CPDF_ShadingObject();
|
| +class CPDF_ShadingObject : public CPDF_PageObject {
|
| + public:
|
| + CPDF_ShadingObject();
|
|
|
| - virtual ~CPDF_ShadingObject();
|
| + virtual ~CPDF_ShadingObject();
|
|
|
| - CPDF_ShadingPattern* m_pShading;
|
| + CPDF_ShadingPattern* m_pShading;
|
|
|
| - CFX_AffineMatrix m_Matrix;
|
| + CFX_AffineMatrix m_Matrix;
|
|
|
| - void Transform(const CFX_AffineMatrix& matrix) override;
|
| + void Transform(const CFX_AffineMatrix& matrix) override;
|
|
|
| - void CalcBoundingBox();
|
| + void CalcBoundingBox();
|
|
|
| -protected:
|
| - void CopyData(const CPDF_PageObject* pSrcObject) override;
|
| + protected:
|
| + void CopyData(const CPDF_PageObject* pSrcObject) override;
|
| };
|
|
|
| -class CPDF_FormObject : public CPDF_PageObject
|
| -{
|
| -public:
|
| - CPDF_FormObject()
|
| - {
|
| - m_Type = PDFPAGE_FORM;
|
| - m_pForm = NULL;
|
| - }
|
| +class CPDF_FormObject : public CPDF_PageObject {
|
| + public:
|
| + CPDF_FormObject() {
|
| + m_Type = PDFPAGE_FORM;
|
| + m_pForm = NULL;
|
| + }
|
|
|
| - virtual ~CPDF_FormObject();
|
| - void Transform(const CFX_AffineMatrix& matrix) override;
|
| + virtual ~CPDF_FormObject();
|
| + void Transform(const CFX_AffineMatrix& matrix) override;
|
|
|
| - CPDF_Form* m_pForm;
|
| + CPDF_Form* m_pForm;
|
|
|
| - CFX_AffineMatrix m_FormMatrix;
|
| + CFX_AffineMatrix m_FormMatrix;
|
|
|
| - void CalcBoundingBox();
|
| + void CalcBoundingBox();
|
|
|
| -protected:
|
| - void CopyData(const CPDF_PageObject* pSrcObject) override;
|
| + protected:
|
| + void CopyData(const CPDF_PageObject* pSrcObject) override;
|
| };
|
|
|
| #endif // CORE_INCLUDE_FPDFAPI_FPDF_PAGEOBJ_H_
|
|
|