Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(242)

Unified Diff: core/src/reflow/reflowedpage.h

Issue 453133004: clang-format all code (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: core/src/reflow/reflowedpage.h
diff --git a/core/src/reflow/reflowedpage.h b/core/src/reflow/reflowedpage.h
index b76834132e41b6dc95ed95d6bb658f2984115333..94b0f1b345b73b8c44ad438f0eef13c0445a71c8 100644
--- a/core/src/reflow/reflowedpage.h
+++ b/core/src/reflow/reflowedpage.h
@@ -1,13 +1,13 @@
// Copyright 2014 PDFium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-
+
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
#ifndef _REFLOWED_PAGE_H
#define _REFLOWED_PAGE_H
#include "../../include/reflow/reflowengine.h"
-#define GET_SIGNED(a) ( (a)>0 ? a/a : (a==0 ? 0 : -a/a) )
+#define GET_SIGNED(a) ((a) > 0 ? a / a : (a == 0 ? 0 : -a / a))
class CRF_Data;
class CRF_LineData;
class CRF_CharData;
@@ -22,351 +22,353 @@ class CFX_Object;
typedef CFX_SegmentedArray<CRF_Data*> CRF_DataPtrArray;
class CRF_CharState;
typedef CFX_SegmentedArray<CRF_CharState> CRF_CharStateArray;
-#define SST_GE 1
-#define SST_BLSE 2
-#define SST_ILSE 3
-#define SST_IE 4
-class CPDF_LayoutProcessor_Reflow : public IPDF_LayoutProcessor, public CFX_Object
-{
-public:
- CPDF_LayoutProcessor_Reflow();
- ~CPDF_LayoutProcessor_Reflow();
- void Init(FX_FLOAT TopIndent, FX_FLOAT fWidth, FX_FLOAT fHeight, CPDF_ReflowedPage* pReflowedPage, int flags, FX_FLOAT lineSpace);
+#define SST_GE 1
+#define SST_BLSE 2
+#define SST_ILSE 3
+#define SST_IE 4
+class CPDF_LayoutProcessor_Reflow : public IPDF_LayoutProcessor,
+ public CFX_Object {
+ public:
+ CPDF_LayoutProcessor_Reflow();
+ ~CPDF_LayoutProcessor_Reflow();
+ void Init(FX_FLOAT TopIndent,
+ FX_FLOAT fWidth,
+ FX_FLOAT fHeight,
+ CPDF_ReflowedPage* pReflowedPage,
+ int flags,
+ FX_FLOAT lineSpace);
+
+ LayoutStatus StartProcess(IPDF_LayoutElement* pElement,
+ IFX_Pause* pPause,
+ const CFX_AffineMatrix* pPDFMatrix = NULL);
+ LayoutStatus Continue();
+ int GetPosition();
- LayoutStatus StartProcess(IPDF_LayoutElement* pElement, IFX_Pause* pPause, const CFX_AffineMatrix* pPDFMatrix = NULL);
- LayoutStatus Continue();
- int GetPosition();
-protected:
- void FitPageMode();
- void ProcessElement(IPDF_LayoutElement* pElement, FX_FLOAT reflowWidth);
- FX_FLOAT GetElmWidth(IPDF_LayoutElement* pElement);
- CFX_FloatRect GetElmBBox(IPDF_LayoutElement* pElement);
- void ProcessTable(FX_FLOAT dx);
- void ProcessObjs(IPDF_LayoutElement* pElement, FX_FLOAT reflowWidth);
- void ProcessObject(CPDF_PageObject* pObj, FX_FLOAT reflowWidth, CFX_AffineMatrix objMatrix);
- void ProcessTextObject(CPDF_TextObject *pObj, FX_FLOAT reflowWidth, CFX_AffineMatrix objMatrix);
- void ProcessPathObject(CPDF_PathObject *pObj, FX_FLOAT reflowWidth);
- void ProcessUnitaryObjs(CPDF_PageObjects *pObjs, FX_FLOAT reflowWidth, CFX_AffineMatrix objMatrix);
- FX_INT32 LogicPreObj(CPDF_TextObject* pObj);
- int ProcessInsertObject(CPDF_TextObject* pObj, CFX_AffineMatrix formMatrix);
- FX_WCHAR GetPreChar();
- FX_BOOL IsSameTextObject(CPDF_TextObject* pTextObj1, CPDF_TextObject* pTextObj2);
- int GetCharWidth(FX_DWORD charCode, CPDF_Font* pFont) const;
- FX_BOOL IsCanBreakAfter(FX_DWORD unicode);
- FX_BOOL IsCanBreakBefore(FX_DWORD unicode);
- FX_INT32 GetElementTypes(LayoutType layoutType);
- void CreateRFData(CPDF_PageObject* pObj, CFX_AffineMatrix* pMatrix = NULL);
- CRF_CharState* GetCharState(CPDF_TextObject* pObj, CPDF_Font* pFont, FX_FLOAT fHeight, FX_ARGB color);
- FX_FLOAT ConverWidth(FX_FLOAT width);
- void AddData2CurrLine(CRF_Data* pData);
- void AddTemp2CurrLine(int begin, int count );
- void Transform(const CFX_AffineMatrix* pMatrix, CRF_Data* pData);
- void Transform(const CFX_AffineMatrix* pMatrix, CRF_DataPtrArray* pDataArray, int beginPos, int count = 0);
- FX_FLOAT GetDatasWidth( int beginPos, int endpos);
- void UpdateCurrLine();
- FX_BOOL FinishedCurrLine();
- int m_flags;
- CFX_AffineMatrix m_PDFMatrix;
- LayoutStatus m_Status;
- CPDF_TextObject* m_pPreObj;
- CFX_AffineMatrix m_perMatrix;
- IPDF_LayoutElement* m_pLayoutElement;
- IPDF_LayoutElement* m_pRootElement;
- FX_FLOAT m_CurrRefWidth;
- IFX_Pause* m_pPause;
- LayoutEnum m_CurrWritingMode;
- CPDF_ReflowedPage* m_pReflowedPage;
- FX_FLOAT m_fRefWidth;
- FX_FLOAT m_TopIndent;
- FX_FLOAT m_fLineSpace;
- FX_FLOAT m_fScreenHeight;
- FX_FLOAT m_fCurrMaxWidth;
- FX_FLOAT m_fCurrLineWidth;
- FX_FLOAT m_fCurrLineHeight;
- CRF_DataPtrArray* m_pCurrLine;
- CRF_DataPtrArray* m_pTempLine;
- FX_BOOL m_bIllustration;
- FX_FLOAT m_fLineHeight;
- LayoutEnum m_TextAlign;
- FX_FLOAT m_StartIndent;
- CFX_ArrayTemplate<CRF_Table*> m_TableArray;
- int m_PausePosition;
+ protected:
+ void FitPageMode();
+ void ProcessElement(IPDF_LayoutElement* pElement, FX_FLOAT reflowWidth);
+ FX_FLOAT GetElmWidth(IPDF_LayoutElement* pElement);
+ CFX_FloatRect GetElmBBox(IPDF_LayoutElement* pElement);
+ void ProcessTable(FX_FLOAT dx);
+ void ProcessObjs(IPDF_LayoutElement* pElement, FX_FLOAT reflowWidth);
+ void ProcessObject(CPDF_PageObject* pObj,
+ FX_FLOAT reflowWidth,
+ CFX_AffineMatrix objMatrix);
+ void ProcessTextObject(CPDF_TextObject* pObj,
+ FX_FLOAT reflowWidth,
+ CFX_AffineMatrix objMatrix);
+ void ProcessPathObject(CPDF_PathObject* pObj, FX_FLOAT reflowWidth);
+ void ProcessUnitaryObjs(CPDF_PageObjects* pObjs,
+ FX_FLOAT reflowWidth,
+ CFX_AffineMatrix objMatrix);
+ FX_INT32 LogicPreObj(CPDF_TextObject* pObj);
+ int ProcessInsertObject(CPDF_TextObject* pObj, CFX_AffineMatrix formMatrix);
+ FX_WCHAR GetPreChar();
+ FX_BOOL IsSameTextObject(CPDF_TextObject* pTextObj1,
+ CPDF_TextObject* pTextObj2);
+ int GetCharWidth(FX_DWORD charCode, CPDF_Font* pFont) const;
+ FX_BOOL IsCanBreakAfter(FX_DWORD unicode);
+ FX_BOOL IsCanBreakBefore(FX_DWORD unicode);
+ FX_INT32 GetElementTypes(LayoutType layoutType);
+ void CreateRFData(CPDF_PageObject* pObj, CFX_AffineMatrix* pMatrix = NULL);
+ CRF_CharState* GetCharState(CPDF_TextObject* pObj,
+ CPDF_Font* pFont,
+ FX_FLOAT fHeight,
+ FX_ARGB color);
+ FX_FLOAT ConverWidth(FX_FLOAT width);
+ void AddData2CurrLine(CRF_Data* pData);
+ void AddTemp2CurrLine(int begin, int count);
+ void Transform(const CFX_AffineMatrix* pMatrix, CRF_Data* pData);
+ void Transform(const CFX_AffineMatrix* pMatrix,
+ CRF_DataPtrArray* pDataArray,
+ int beginPos,
+ int count = 0);
+ FX_FLOAT GetDatasWidth(int beginPos, int endpos);
+ void UpdateCurrLine();
+ FX_BOOL FinishedCurrLine();
+ int m_flags;
+ CFX_AffineMatrix m_PDFMatrix;
+ LayoutStatus m_Status;
+ CPDF_TextObject* m_pPreObj;
+ CFX_AffineMatrix m_perMatrix;
+ IPDF_LayoutElement* m_pLayoutElement;
+ IPDF_LayoutElement* m_pRootElement;
+ FX_FLOAT m_CurrRefWidth;
+ IFX_Pause* m_pPause;
+ LayoutEnum m_CurrWritingMode;
+ CPDF_ReflowedPage* m_pReflowedPage;
+ FX_FLOAT m_fRefWidth;
+ FX_FLOAT m_TopIndent;
+ FX_FLOAT m_fLineSpace;
+ FX_FLOAT m_fScreenHeight;
+ FX_FLOAT m_fCurrMaxWidth;
+ FX_FLOAT m_fCurrLineWidth;
+ FX_FLOAT m_fCurrLineHeight;
+ CRF_DataPtrArray* m_pCurrLine;
+ CRF_DataPtrArray* m_pTempLine;
+ FX_BOOL m_bIllustration;
+ FX_FLOAT m_fLineHeight;
+ LayoutEnum m_TextAlign;
+ FX_FLOAT m_StartIndent;
+ CFX_ArrayTemplate<CRF_Table*> m_TableArray;
+ int m_PausePosition;
};
struct RF_TableCell {
- int m_BeginPos;
- int m_EndPos;
- FX_FLOAT m_MaxWidth;
- FX_FLOAT m_PosX;
- FX_FLOAT m_PosY;
- FX_FLOAT m_CellWidth;
- FX_FLOAT m_CellHeight;
- int m_RowSpan;
- int m_ColSpan;
- LayoutEnum m_BlockAlign;
- LayoutEnum m_InlineAlign;
+ int m_BeginPos;
+ int m_EndPos;
+ FX_FLOAT m_MaxWidth;
+ FX_FLOAT m_PosX;
+ FX_FLOAT m_PosY;
+ FX_FLOAT m_CellWidth;
+ FX_FLOAT m_CellHeight;
+ int m_RowSpan;
+ int m_ColSpan;
+ LayoutEnum m_BlockAlign;
+ LayoutEnum m_InlineAlign;
};
typedef CFX_ArrayTemplate<RF_TableCell*> CRF_TableCellArray;
-class CRF_Table : public CFX_Object
-{
-public:
- CRF_Table()
- {
- m_TableWidth = 0;
- m_nCol = 0;
- }
- CRF_TableCellArray m_pCellArray;
- CFX_WordArray m_nCell;
- int m_nCol;
- FX_FLOAT m_TableWidth;
- FX_FLOAT m_ReflowPageHeight;
+class CRF_Table : public CFX_Object {
+ public:
+ CRF_Table() {
+ m_TableWidth = 0;
+ m_nCol = 0;
+ }
+ CRF_TableCellArray m_pCellArray;
+ CFX_WordArray m_nCell;
+ int m_nCol;
+ FX_FLOAT m_TableWidth;
+ FX_FLOAT m_ReflowPageHeight;
};
-class CRF_CharState : public CFX_Object
-{
-public:
- CPDF_Font* m_pFont;
- FX_ARGB m_Color;
- FX_BOOL m_bVert;
- FX_FLOAT m_fFontSize;
- FX_FLOAT m_fAscent;
- FX_FLOAT m_fDescent;
+class CRF_CharState : public CFX_Object {
+ public:
+ CPDF_Font* m_pFont;
+ FX_ARGB m_Color;
+ FX_BOOL m_bVert;
+ FX_FLOAT m_fFontSize;
+ FX_FLOAT m_fAscent;
+ FX_FLOAT m_fDescent;
- CPDF_TextObject* m_pTextObj;
+ CPDF_TextObject* m_pTextObj;
};
-class CRF_PageInfo : public CFX_Object
-{
-public:
- CRF_PageInfo(CPDF_PageObject* pPageObj, CRF_PageInfo* pParent = NULL)
- : m_pPageObj(pPageObj) , m_pParent(pParent)
- {
+class CRF_PageInfo : public CFX_Object {
+ public:
+ CRF_PageInfo(CPDF_PageObject* pPageObj, CRF_PageInfo* pParent = NULL)
+ : m_pPageObj(pPageObj), m_pParent(pParent) {}
+ CPDF_PageObject* GetPageObj() { return m_pPageObj; }
+ CPDF_Dictionary* GetFormDict() {
+ if (NULL == m_pParent) {
+ return NULL;
}
- CPDF_PageObject* GetPageObj()
- {
- return m_pPageObj;
+ CPDF_PageObject* pParentObj = m_pParent->GetPageObj();
+ if (NULL == pParentObj || PDFPAGE_FORM != pParentObj->m_Type) {
+ return NULL;
}
- CPDF_Dictionary* GetFormDict()
- {
- if (NULL == m_pParent) {
- return NULL;
- }
- CPDF_PageObject* pParentObj = m_pParent->GetPageObj();
- if (NULL == pParentObj || PDFPAGE_FORM != pParentObj->m_Type) {
- return NULL;
- }
- return ((CPDF_FormObject*)pParentObj)->m_pForm->m_pResources;
- }
-protected:
- CPDF_PageObject* m_pPageObj;
- CRF_PageInfo* m_pParent;
-};
-class CPDF_ReflowedPage : public IPDF_ReflowedPage, public CFX_PrivateData, public CFX_Object
-{
-public:
+ return ((CPDF_FormObject*)pParentObj)->m_pForm->m_pResources;
+ }
- CPDF_ReflowedPage(CFX_GrowOnlyPool* pMemoryPool);
- ~CPDF_ReflowedPage();
- CFX_PrivateData* GetPrivateDataCtrl()
- {
- return this;
- };
- void GetDisplayMatrix(CFX_AffineMatrix& matrix, FX_INT32 xPos, FX_INT32 yPos, FX_INT32 xSize, FX_INT32 ySize, FX_INT32 iRotate, const CFX_AffineMatrix* pPageMatrix);
+ protected:
+ CPDF_PageObject* m_pPageObj;
+ CRF_PageInfo* m_pParent;
+};
+class CPDF_ReflowedPage : public IPDF_ReflowedPage,
+ public CFX_PrivateData,
+ public CFX_Object {
+ public:
+ CPDF_ReflowedPage(CFX_GrowOnlyPool* pMemoryPool);
+ ~CPDF_ReflowedPage();
+ CFX_PrivateData* GetPrivateDataCtrl() { return this; };
+ void GetDisplayMatrix(CFX_AffineMatrix& matrix,
+ FX_INT32 xPos,
+ FX_INT32 yPos,
+ FX_INT32 xSize,
+ FX_INT32 ySize,
+ FX_INT32 iRotate,
+ const CFX_AffineMatrix* pPageMatrix);
- FX_FLOAT GetPageHeight() ;
- FX_FLOAT GetPageWidth()
- {
- return m_PageWidth;
- };
- void FocusGetData(const CFX_AffineMatrix matrix, FX_INT32 x, FX_INT32 y, CFX_ByteString& str);
- FX_BOOL FocusGetPosition(const CFX_AffineMatrix matrix, CFX_ByteString str, FX_INT32& x, FX_INT32& y);
- CRF_DataPtrArray* m_pReflowed;
- FX_FLOAT m_PageWidth;
- FX_FLOAT m_PageHeight;
- FX_BOOL m_bWaiting;
- CRF_CharStateArray* m_pCharState;
- CFX_GrowOnlyPool* m_pMemoryPool;
- FX_BOOL m_bCreateMemoryPool;
- CPDF_Page* m_pPDFPage;
- FX_BOOL RetainPageObjsMemberShip();
- void MarkPageObjMemberShip(CPDF_PageObject* pObj, CRF_PageInfo* pParent);
- void ReleasePageObjsMemberShip();
- CPDF_Dictionary* GetFormResDict(CPDF_PageObject* pObj);
+ FX_FLOAT GetPageHeight();
+ FX_FLOAT GetPageWidth() { return m_PageWidth; };
+ void FocusGetData(const CFX_AffineMatrix matrix,
+ FX_INT32 x,
+ FX_INT32 y,
+ CFX_ByteString& str);
+ FX_BOOL FocusGetPosition(const CFX_AffineMatrix matrix,
+ CFX_ByteString str,
+ FX_INT32& x,
+ FX_INT32& y);
+ CRF_DataPtrArray* m_pReflowed;
+ FX_FLOAT m_PageWidth;
+ FX_FLOAT m_PageHeight;
+ FX_BOOL m_bWaiting;
+ CRF_CharStateArray* m_pCharState;
+ CFX_GrowOnlyPool* m_pMemoryPool;
+ FX_BOOL m_bCreateMemoryPool;
+ CPDF_Page* m_pPDFPage;
+ FX_BOOL RetainPageObjsMemberShip();
+ void MarkPageObjMemberShip(CPDF_PageObject* pObj, CRF_PageInfo* pParent);
+ void ReleasePageObjsMemberShip();
+ CPDF_Dictionary* GetFormResDict(CPDF_PageObject* pObj);
- CFX_MapPtrToPtr* m_pPageInfos;
+ CFX_MapPtrToPtr* m_pPageInfos;
};
-class CPDF_ProgressiveReflowPageParser : public IPDF_ProgressiveReflowPageParser, public CFX_Object
-{
-public:
- CPDF_ProgressiveReflowPageParser();
- ~CPDF_ProgressiveReflowPageParser() ;
- void Init();
+class CPDF_ProgressiveReflowPageParser
+ : public IPDF_ProgressiveReflowPageParser,
+ public CFX_Object {
+ public:
+ CPDF_ProgressiveReflowPageParser();
+ ~CPDF_ProgressiveReflowPageParser();
+ void Init();
- ParseStatus GetStatus()
- {
- return m_Status;
- };
+ ParseStatus GetStatus() { return m_Status; };
- void SetParserStyle(RF_ParseStyle style)
- {
- m_ParseStyle = style;
- };
- void Start(IPDF_ReflowedPage* pReflowPage, CPDF_Page* pPage, FX_FLOAT TopIndent, FX_FLOAT fWidth, FX_FLOAT fHeight, IFX_Pause* pPause, int flags);
- void Continue(IFX_Pause* pPause);
- int GetPosition() ;
+ void SetParserStyle(RF_ParseStyle style) { m_ParseStyle = style; };
+ void Start(IPDF_ReflowedPage* pReflowPage,
+ CPDF_Page* pPage,
+ FX_FLOAT TopIndent,
+ FX_FLOAT fWidth,
+ FX_FLOAT fHeight,
+ IFX_Pause* pPause,
+ int flags);
+ void Continue(IFX_Pause* pPause);
+ int GetPosition();
- void Clear();
- ParseStatus m_Status;
-protected:
- RF_ParseStyle m_ParseStyle;
- CPDF_Page* m_pPDFPage;
- IFX_Pause* m_pPause;
- CPDF_ReflowedPage* m_pReflowPage;
- FX_FLOAT m_TopIndent;
- FX_FLOAT m_ReflowedWidth;
- FX_FLOAT m_fScreenHeight;
- IPDF_LayoutProvider* m_pProvider;
- IPDF_LayoutProcessor* m_pReflowEngine;
- int m_nObjProcessed;
- int m_flags;
-};
-class CPDF_ProgressiveReflowPageRender : public IPDF_ProgressiveReflowPageRender, public CFX_Object
-{
-public:
- CPDF_ProgressiveReflowPageRender();
- ~CPDF_ProgressiveReflowPageRender() ;
+ void Clear();
+ ParseStatus m_Status;
- RenderStatus GetStatus()
- {
- return m_Status;
- };
+ protected:
+ RF_ParseStyle m_ParseStyle;
+ CPDF_Page* m_pPDFPage;
+ IFX_Pause* m_pPause;
+ CPDF_ReflowedPage* m_pReflowPage;
+ FX_FLOAT m_TopIndent;
+ FX_FLOAT m_ReflowedWidth;
+ FX_FLOAT m_fScreenHeight;
+ IPDF_LayoutProvider* m_pProvider;
+ IPDF_LayoutProcessor* m_pReflowEngine;
+ int m_nObjProcessed;
+ int m_flags;
+};
+class CPDF_ProgressiveReflowPageRender
+ : public IPDF_ProgressiveReflowPageRender,
+ public CFX_Object {
+ public:
+ CPDF_ProgressiveReflowPageRender();
+ ~CPDF_ProgressiveReflowPageRender();
+ RenderStatus GetStatus() { return m_Status; };
- void SetDisplayColor(FX_COLORREF color);
- void Start(IPDF_ReflowedPage* pReflowPage, CFX_RenderDevice* pDevice, const CFX_AffineMatrix* pMatrix, IFX_Pause* pPause, int DitherBits);
- void Continue(IFX_Pause* pPause);
- int GetPosition();
+ void SetDisplayColor(FX_COLORREF color);
+ void Start(IPDF_ReflowedPage* pReflowPage,
+ CFX_RenderDevice* pDevice,
+ const CFX_AffineMatrix* pMatrix,
+ IFX_Pause* pPause,
+ int DitherBits);
+ void Continue(IFX_Pause* pPause);
+ int GetPosition();
+ void Clear();
- void Clear();
-protected:
- void Display(IFX_Pause* pPause);
- RenderStatus m_Status;
- CPDF_ReflowedPage* m_pReflowPage;
- CFX_AffineMatrix* m_pDisplayMatrix;
- int m_CurrNum;
- IFX_FontEncoding* m_pFontEncoding;
- CFX_RenderDevice* m_pFXDevice;
- int m_DitherBits;
- FX_COLORREF m_DisplayColor;
- typedef struct CRF_TextDataAtt {
- CRF_TextDataAtt()
- {
- pFont = NULL;
- fFontSize = 0.0f;
- Color = 0;
- }
- CRF_TextDataAtt(CPDF_Font* font, FX_FLOAT fontSize, FX_ARGB color)
- {
- pFont = font;
- fFontSize = fontSize;
- Color = color;
- }
- CPDF_Font* pFont;
- FX_FLOAT fFontSize;
- FX_ARGB Color;
- } CRF_TEXTDATAATT;
- inline bool isTextDataAttSame(CRF_TEXTDATAATT data1, CRF_TEXTDATAATT data2)
- {
- if (data1.pFont != data2.pFont) {
- return false;
- }
- if (data1.Color != data2.Color) {
- return false;
- }
- if (fabs(data1.fFontSize - data2.fFontSize) > 0.0f) {
- return false;
- }
- return true;
- };
-};
-#define TYPE_UNKNOW 0
-#define TYPE_TEXT 1
-#define TYPE_PATH 2
-#define TYPE_IMAGE 3
-#define TYPE_LINE 4
-class CRF_Data : public CFX_Object
-{
-public:
- typedef enum {Unknow, Text, Image, Path, Line, paragraph} RF_DataType;
- CRF_Data()
- {
- m_Type = Unknow;
- m_Width = 0;
- m_PosY = 0;
- m_PosX = 0;
- m_Height = 0;
+ protected:
+ void Display(IFX_Pause* pPause);
+ RenderStatus m_Status;
+ CPDF_ReflowedPage* m_pReflowPage;
+ CFX_AffineMatrix* m_pDisplayMatrix;
+ int m_CurrNum;
+ IFX_FontEncoding* m_pFontEncoding;
+ CFX_RenderDevice* m_pFXDevice;
+ int m_DitherBits;
+ FX_COLORREF m_DisplayColor;
+ typedef struct CRF_TextDataAtt {
+ CRF_TextDataAtt() {
+ pFont = NULL;
+ fFontSize = 0.0f;
+ Color = 0;
}
- RF_DataType GetType()
- {
- return m_Type;
+ CRF_TextDataAtt(CPDF_Font* font, FX_FLOAT fontSize, FX_ARGB color) {
+ pFont = font;
+ fFontSize = fontSize;
+ Color = color;
}
- virtual ~CRF_Data() {}
- RF_DataType m_Type;
- FX_FLOAT m_PosX;
- FX_FLOAT m_PosY;
- FX_FLOAT m_Width;
- FX_FLOAT m_Height;
-};
-class CRF_LineData : public CRF_Data
-{
-public:
- CRF_LineData()
- {
- m_Type = Line;
- }
-};
-class CRF_CharData : public CRF_Data
-{
-public:
- CRF_CharData()
- {
- m_Type = Text;
- m_CharCode = -1;
+ CPDF_Font* pFont;
+ FX_FLOAT fFontSize;
+ FX_ARGB Color;
+ } CRF_TEXTDATAATT;
+ inline bool isTextDataAttSame(CRF_TEXTDATAATT data1, CRF_TEXTDATAATT data2) {
+ if (data1.pFont != data2.pFont) {
+ return false;
}
- CRF_CharState* m_pCharState;
- FX_DWORD m_CharCode;
-};
-class CRF_ImageData : public CRF_Data
-{
-public:
- CRF_ImageData()
- {
- m_Type = Image;
- m_pBitmap = NULL;
+ if (data1.Color != data2.Color) {
+ return false;
}
- ~CRF_ImageData()
- {
- if(m_pBitmap) {
- delete m_pBitmap;
- }
- m_pBitmap = NULL;
+ if (fabs(data1.fFontSize - data2.fFontSize) > 0.0f) {
+ return false;
}
- CFX_AffineMatrix m_Matrix;
- CFX_DIBitmap* m_pBitmap;
+ return true;
+ };
};
-class CRF_PathData : public CRF_Data
-{
-public:
- CRF_PathData()
- {
- m_Type = Path;
- m_bDecoration = FALSE;
+#define TYPE_UNKNOW 0
+#define TYPE_TEXT 1
+#define TYPE_PATH 2
+#define TYPE_IMAGE 3
+#define TYPE_LINE 4
+class CRF_Data : public CFX_Object {
+ public:
+ typedef enum { Unknow, Text, Image, Path, Line, paragraph } RF_DataType;
+ CRF_Data() {
+ m_Type = Unknow;
+ m_Width = 0;
+ m_PosY = 0;
+ m_PosX = 0;
+ m_Height = 0;
+ }
+ RF_DataType GetType() { return m_Type; }
+ virtual ~CRF_Data() {}
+ RF_DataType m_Type;
+ FX_FLOAT m_PosX;
+ FX_FLOAT m_PosY;
+ FX_FLOAT m_Width;
+ FX_FLOAT m_Height;
+};
+class CRF_LineData : public CRF_Data {
+ public:
+ CRF_LineData() { m_Type = Line; }
+};
+class CRF_CharData : public CRF_Data {
+ public:
+ CRF_CharData() {
+ m_Type = Text;
+ m_CharCode = -1;
+ }
+ CRF_CharState* m_pCharState;
+ FX_DWORD m_CharCode;
+};
+class CRF_ImageData : public CRF_Data {
+ public:
+ CRF_ImageData() {
+ m_Type = Image;
+ m_pBitmap = NULL;
+ }
+ ~CRF_ImageData() {
+ if (m_pBitmap) {
+ delete m_pBitmap;
}
- ~CRF_PathData() {};
- FX_BOOL m_bDecoration;
- CPDF_Path m_pPathData;
- CFX_AffineMatrix m_pPath2Device;
- CPDF_GraphState m_pGraphState;
- FX_ARGB m_fill_argb;
- FX_ARGB m_stroke_argb;
- int m_fill_mode;
+ m_pBitmap = NULL;
+ }
+ CFX_AffineMatrix m_Matrix;
+ CFX_DIBitmap* m_pBitmap;
+};
+class CRF_PathData : public CRF_Data {
+ public:
+ CRF_PathData() {
+ m_Type = Path;
+ m_bDecoration = FALSE;
+ }
+ ~CRF_PathData(){};
+ FX_BOOL m_bDecoration;
+ CPDF_Path m_pPathData;
+ CFX_AffineMatrix m_pPath2Device;
+ CPDF_GraphState m_pGraphState;
+ FX_ARGB m_fill_argb;
+ FX_ARGB m_stroke_argb;
+ int m_fill_mode;
};
#endif

Powered by Google App Engine
This is Rietveld 408576698