summaryrefslogtreecommitdiff
path: root/xfa/fgas/layout/fgas_rtfbreak.h
diff options
context:
space:
mode:
authorweili <weili@chromium.org>2016-06-18 06:25:37 -0700
committerCommit bot <commit-bot@chromium.org>2016-06-18 06:25:37 -0700
commiteec3a366adbfada36b98f1de651546ee09df8fc0 (patch)
tree794aa8c69392b60d8737a8a5b424732b98bdd4b4 /xfa/fgas/layout/fgas_rtfbreak.h
parent4ce94e118d66064715de5baebeb4b2b580dcac66 (diff)
downloadpdfium-eec3a366adbfada36b98f1de651546ee09df8fc0.tar.xz
Make code compile with clang_use_chrome_plugin (final)
This change mainly contains files in xfa/ and fxjse/ directories which were not covered by previous changes. This is part of the efforts to make PDFium code compilable by Clang chromium style plugins. After this change, PDFium can be compiled with "clang_use_chrome_plugin=true" for GN build. Since clang_use_chrome_plugin is true by default, we no longer need to set this parameter explicitly. The changes are mainly the following: -- move inline constructor/destructor of complex class/struct out-of-line; -- add constructor/destructor of complex class/struct if not explicitly defined; -- add explicit out-of-line copy constructor when needed; -- move inline virtual functions out-of-line; -- Properly mark virtual functions with 'override'; -- some minor cleanups; BUG=pdfium:469 Review-Url: https://codereview.chromium.org/2072803002
Diffstat (limited to 'xfa/fgas/layout/fgas_rtfbreak.h')
-rw-r--r--xfa/fgas/layout/fgas_rtfbreak.h94
1 files changed, 34 insertions, 60 deletions
diff --git a/xfa/fgas/layout/fgas_rtfbreak.h b/xfa/fgas/layout/fgas_rtfbreak.h
index 83d83a6c45..993dc50f97 100644
--- a/xfa/fgas/layout/fgas_rtfbreak.h
+++ b/xfa/fgas/layout/fgas_rtfbreak.h
@@ -64,20 +64,7 @@ class CFGAS_GEFont;
#define FX_RTFLINEALIGNMENT_HigherMask 0x0C
struct FX_RTFTEXTOBJ {
- FX_RTFTEXTOBJ() {
- pStr = NULL;
- pWidths = NULL;
- iLength = 0;
- pFont = NULL;
- fFontSize = 12.0f;
- dwLayoutStyles = 0;
- iCharRotation = 0;
- iBidiLevel = 0;
- pRect = NULL;
- wLineBreakChar = L'\n';
- iHorizontalScale = 100;
- iVerticalScale = 100;
- }
+ FX_RTFTEXTOBJ();
const FX_WCHAR* pStr;
int32_t* pWidths;
@@ -95,23 +82,9 @@ struct FX_RTFTEXTOBJ {
class CFX_RTFPiece : public CFX_Target {
public:
- CFX_RTFPiece()
- : m_dwStatus(FX_RTFBREAK_PieceBreak),
- m_iStartPos(0),
- m_iWidth(-1),
- m_iStartChar(0),
- m_iChars(0),
- m_iBidiLevel(0),
- m_iBidiPos(0),
- m_iFontSize(0),
- m_iFontHeight(0),
- m_iHorizontalScale(100),
- m_iVerticalScale(100),
- m_dwLayoutStyles(0),
- m_dwIdentity(0),
- m_pChars(NULL),
- m_pUserData(NULL) {}
- ~CFX_RTFPiece() { Reset(); }
+ CFX_RTFPiece();
+ ~CFX_RTFPiece() override;
+
void AppendChar(const CFX_RTFChar& tc) {
ASSERT(m_pChars != NULL);
m_pChars->Add(tc);
@@ -171,6 +144,7 @@ class CFX_RTFPiece : public CFX_Target {
m_iHorizontalScale = 100;
m_iVerticalScale = 100;
}
+
uint32_t m_dwStatus;
int32_t m_iStartPos;
int32_t m_iWidth;
@@ -187,17 +161,14 @@ class CFX_RTFPiece : public CFX_Target {
CFX_RTFCharArray* m_pChars;
IFX_Retainable* m_pUserData;
};
+
typedef CFX_BaseArrayTemplate<CFX_RTFPiece> CFX_RTFPieceArray;
class CFX_RTFLine {
public:
- CFX_RTFLine()
- : m_LinePieces(16),
- m_iStart(0),
- m_iWidth(0),
- m_iArabicChars(0),
- m_iMBCSChars(0) {}
- ~CFX_RTFLine() { RemoveAll(); }
+ CFX_RTFLine();
+ ~CFX_RTFLine();
+
int32_t CountChars() const { return m_LineChars.GetSize(); }
CFX_RTFChar& GetChar(int32_t index) {
ASSERT(index > -1 && index < m_LineChars.GetSize());
@@ -233,6 +204,7 @@ class CFX_RTFLine {
m_iArabicChars = 0;
m_iMBCSChars = 0;
}
+
CFX_RTFCharArray m_LineChars;
CFX_RTFPieceArray m_LinePieces;
int32_t m_iStart;
@@ -290,6 +262,30 @@ class CFX_RTFBreak {
uint32_t AppendChar_Others(CFX_RTFChar* pCurChar, int32_t iRotation);
protected:
+ int32_t GetLineRotation(uint32_t dwStyles) const;
+ void SetBreakStatus();
+ CFX_RTFChar* GetLastChar(int32_t index) const;
+ CFX_RTFLine* GetRTFLine(FX_BOOL bReady) const;
+ CFX_RTFPieceArray* GetRTFPieces(FX_BOOL bReady) const;
+ FX_CHARTYPE GetUnifiedCharType(FX_CHARTYPE chartype) const;
+ int32_t GetLastPositionedTab() const;
+ FX_BOOL GetPositionedTab(int32_t& iTabPos) const;
+
+ int32_t GetBreakPos(CFX_RTFCharArray& tca,
+ int32_t& iEndPos,
+ FX_BOOL bAllChars = FALSE,
+ FX_BOOL bOnlyBrk = FALSE);
+ void SplitTextLine(CFX_RTFLine* pCurLine,
+ CFX_RTFLine* pNextLine,
+ FX_BOOL bAllChars = FALSE);
+ FX_BOOL EndBreak_SplitLine(CFX_RTFLine* pNextLine,
+ FX_BOOL bAllChars,
+ uint32_t dwStatus);
+ void EndBreak_BidiLine(CFX_TPOArray& tpos, uint32_t dwStatus);
+ void EndBreak_Alignment(CFX_TPOArray& tpos,
+ FX_BOOL bAllChars,
+ uint32_t dwStatus);
+
uint32_t m_dwPolicies;
int32_t m_iBoundaryStart;
int32_t m_iBoundaryEnd;
@@ -325,28 +321,6 @@ class CFX_RTFBreak {
CFX_RTFLine* m_pCurLine;
int32_t m_iReady;
int32_t m_iTolerance;
- int32_t GetLineRotation(uint32_t dwStyles) const;
- void SetBreakStatus();
- CFX_RTFChar* GetLastChar(int32_t index) const;
- CFX_RTFLine* GetRTFLine(FX_BOOL bReady) const;
- CFX_RTFPieceArray* GetRTFPieces(FX_BOOL bReady) const;
- FX_CHARTYPE GetUnifiedCharType(FX_CHARTYPE chartype) const;
- int32_t GetLastPositionedTab() const;
- FX_BOOL GetPositionedTab(int32_t& iTabPos) const;
- int32_t GetBreakPos(CFX_RTFCharArray& tca,
- int32_t& iEndPos,
- FX_BOOL bAllChars = FALSE,
- FX_BOOL bOnlyBrk = FALSE);
- void SplitTextLine(CFX_RTFLine* pCurLine,
- CFX_RTFLine* pNextLine,
- FX_BOOL bAllChars = FALSE);
- FX_BOOL EndBreak_SplitLine(CFX_RTFLine* pNextLine,
- FX_BOOL bAllChars,
- uint32_t dwStatus);
- void EndBreak_BidiLine(CFX_TPOArray& tpos, uint32_t dwStatus);
- void EndBreak_Alignment(CFX_TPOArray& tpos,
- FX_BOOL bAllChars,
- uint32_t dwStatus);
};
#endif // XFA_FGAS_LAYOUT_FGAS_RTFBREAK_H_