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

Side by Side Diff: xfa/fde/tto/fde_textout.cpp

Issue 1830323006: Remove FX_DWORD from XFA. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 9 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 unified diff | Download patch
« no previous file with comments | « xfa/fde/fde_render.cpp ('k') | xfa/fde/xml/fde_xml_imp.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "xfa/fde/tto/fde_textout.h" 7 #include "xfa/fde/tto/fde_textout.h"
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
11 #include "core/fxcrt/include/fx_coordinates.h" 11 #include "core/fxcrt/include/fx_coordinates.h"
12 #include "core/fxcrt/include/fx_system.h" 12 #include "core/fxcrt/include/fx_system.h"
13 #include "xfa/fde/fde_brush.h" 13 #include "xfa/fde/fde_brush.h"
14 #include "xfa/fde/fde_pen.h" 14 #include "xfa/fde/fde_pen.h"
15 #include "xfa/fde/fde_renderdevice.h" 15 #include "xfa/fde/fde_renderdevice.h"
16 #include "xfa/fgas/crt/fgas_memory.h" 16 #include "xfa/fgas/crt/fgas_memory.h"
17 #include "xfa/fgas/crt/fgas_utils.h" 17 #include "xfa/fgas/crt/fgas_utils.h"
18 #include "xfa/fgas/layout/fgas_textbreak.h" 18 #include "xfa/fgas/layout/fgas_textbreak.h"
19 19
20 namespace { 20 namespace {
21 21
22 struct FDE_TTOPIECE { 22 struct FDE_TTOPIECE {
23 public: 23 public:
24 int32_t iStartChar; 24 int32_t iStartChar;
25 int32_t iChars; 25 int32_t iChars;
26 FX_DWORD dwCharStyles; 26 uint32_t dwCharStyles;
27 CFX_RectF rtPiece; 27 CFX_RectF rtPiece;
28 }; 28 };
29 typedef FDE_TTOPIECE* FDE_LPTTOPIECE; 29 typedef FDE_TTOPIECE* FDE_LPTTOPIECE;
30 typedef CFX_MassArrayTemplate<FDE_TTOPIECE> CFDE_TTOPieceArray; 30 typedef CFX_MassArrayTemplate<FDE_TTOPIECE> CFDE_TTOPieceArray;
31 31
32 class CFDE_TTOLine : public CFX_Target { 32 class CFDE_TTOLine : public CFX_Target {
33 public: 33 public:
34 CFDE_TTOLine(); 34 CFDE_TTOLine();
35 CFDE_TTOLine(const CFDE_TTOLine& ttoLine); 35 CFDE_TTOLine(const CFDE_TTOLine& ttoLine);
36 ~CFDE_TTOLine(); 36 ~CFDE_TTOLine();
(...skipping 11 matching lines...) Expand all
48 typedef CFX_ObjectMassArrayTemplate<CFDE_TTOLine> CFDE_TTOLineArray; 48 typedef CFX_ObjectMassArrayTemplate<CFDE_TTOLine> CFDE_TTOLineArray;
49 49
50 class CFDE_TextOut : public IFDE_TextOut, public CFX_Target { 50 class CFDE_TextOut : public IFDE_TextOut, public CFX_Target {
51 public: 51 public:
52 CFDE_TextOut(); 52 CFDE_TextOut();
53 ~CFDE_TextOut(); 53 ~CFDE_TextOut();
54 virtual void Release() { delete this; } 54 virtual void Release() { delete this; }
55 virtual void SetFont(IFX_Font* pFont); 55 virtual void SetFont(IFX_Font* pFont);
56 virtual void SetFontSize(FX_FLOAT fFontSize); 56 virtual void SetFontSize(FX_FLOAT fFontSize);
57 virtual void SetTextColor(FX_ARGB color); 57 virtual void SetTextColor(FX_ARGB color);
58 virtual void SetStyles(FX_DWORD dwStyles); 58 virtual void SetStyles(uint32_t dwStyles);
59 virtual void SetTabWidth(FX_FLOAT fTabWidth); 59 virtual void SetTabWidth(FX_FLOAT fTabWidth);
60 virtual void SetEllipsisString(const CFX_WideString& wsEllipsis); 60 virtual void SetEllipsisString(const CFX_WideString& wsEllipsis);
61 virtual void SetParagraphBreakChar(FX_WCHAR wch); 61 virtual void SetParagraphBreakChar(FX_WCHAR wch);
62 virtual void SetAlignment(int32_t iAlignment); 62 virtual void SetAlignment(int32_t iAlignment);
63 virtual void SetLineSpace(FX_FLOAT fLineSpace); 63 virtual void SetLineSpace(FX_FLOAT fLineSpace);
64 virtual void SetDIBitmap(CFX_DIBitmap* pDIB); 64 virtual void SetDIBitmap(CFX_DIBitmap* pDIB);
65 virtual void SetRenderDevice(CFX_RenderDevice* pDevice); 65 virtual void SetRenderDevice(CFX_RenderDevice* pDevice);
66 virtual void SetClipRect(const CFX_Rect& rtClip); 66 virtual void SetClipRect(const CFX_Rect& rtClip);
67 virtual void SetClipRect(const CFX_RectF& rtClip); 67 virtual void SetClipRect(const CFX_RectF& rtClip);
68 virtual void SetMatrix(const CFX_Matrix& matrix); 68 virtual void SetMatrix(const CFX_Matrix& matrix);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 int32_t iLength, 106 int32_t iLength,
107 FX_FLOAT x, 107 FX_FLOAT x,
108 FX_FLOAT y); 108 FX_FLOAT y);
109 virtual void DrawLogicText(const FX_WCHAR* pwsStr, 109 virtual void DrawLogicText(const FX_WCHAR* pwsStr,
110 int32_t iLength, 110 int32_t iLength,
111 const CFX_RectF& rect); 111 const CFX_RectF& rect);
112 virtual int32_t GetTotalLines(); 112 virtual int32_t GetTotalLines();
113 113
114 protected: 114 protected:
115 void CalcTextSize(const FX_WCHAR* pwsStr, int32_t iLength, CFX_RectF& rect); 115 void CalcTextSize(const FX_WCHAR* pwsStr, int32_t iLength, CFX_RectF& rect);
116 FX_BOOL RetrieveLineWidth(FX_DWORD dwBreakStatus, 116 FX_BOOL RetrieveLineWidth(uint32_t dwBreakStatus,
117 FX_FLOAT& fStartPos, 117 FX_FLOAT& fStartPos,
118 FX_FLOAT& fWidth, 118 FX_FLOAT& fWidth,
119 FX_FLOAT& fHeight); 119 FX_FLOAT& fHeight);
120 void SetLineWidth(CFX_RectF& rect); 120 void SetLineWidth(CFX_RectF& rect);
121 void DrawText(const FX_WCHAR* pwsStr, 121 void DrawText(const FX_WCHAR* pwsStr,
122 int32_t iLength, 122 int32_t iLength,
123 const CFX_RectF& rect, 123 const CFX_RectF& rect,
124 const CFX_RectF& rtClip); 124 const CFX_RectF& rtClip);
125 void LoadText(const FX_WCHAR* pwsStr, int32_t iLength, const CFX_RectF& rect); 125 void LoadText(const FX_WCHAR* pwsStr, int32_t iLength, const CFX_RectF& rect);
126 void LoadEllipsis(); 126 void LoadEllipsis();
127 void ExpandBuffer(int32_t iSize, int32_t iType); 127 void ExpandBuffer(int32_t iSize, int32_t iType);
128 void RetrieveEllPieces(int32_t*& pCharWidths); 128 void RetrieveEllPieces(int32_t*& pCharWidths);
129 129
130 void Reload(const CFX_RectF& rect); 130 void Reload(const CFX_RectF& rect);
131 void ReloadLinePiece(CFDE_TTOLine* pLine, const CFX_RectF& rect); 131 void ReloadLinePiece(CFDE_TTOLine* pLine, const CFX_RectF& rect);
132 FX_BOOL RetriecePieces(FX_DWORD dwBreakStatus, 132 FX_BOOL RetriecePieces(uint32_t dwBreakStatus,
133 int32_t& iStartChar, 133 int32_t& iStartChar,
134 int32_t& iPieceWidths, 134 int32_t& iPieceWidths,
135 FX_BOOL bReload, 135 FX_BOOL bReload,
136 const CFX_RectF& rect); 136 const CFX_RectF& rect);
137 void AppendPiece(const FDE_TTOPIECE& ttoPiece, 137 void AppendPiece(const FDE_TTOPIECE& ttoPiece,
138 FX_BOOL bNeedReload, 138 FX_BOOL bNeedReload,
139 FX_BOOL bEnd); 139 FX_BOOL bEnd);
140 void ReplaceWidthEllipsis(); 140 void ReplaceWidthEllipsis();
141 void DoAlignment(const CFX_RectF& rect); 141 void DoAlignment(const CFX_RectF& rect);
142 void OnDraw(const CFX_RectF& rtClip); 142 void OnDraw(const CFX_RectF& rtClip);
(...skipping 10 matching lines...) Expand all
153 FX_FLOAT m_fLinePos; 153 FX_FLOAT m_fLinePos;
154 FX_FLOAT m_fTolerance; 154 FX_FLOAT m_fTolerance;
155 int32_t m_iAlignment; 155 int32_t m_iAlignment;
156 int32_t m_iTxtBkAlignment; 156 int32_t m_iTxtBkAlignment;
157 int32_t* m_pCharWidths; 157 int32_t* m_pCharWidths;
158 int32_t m_iChars; 158 int32_t m_iChars;
159 int32_t* m_pEllCharWidths; 159 int32_t* m_pEllCharWidths;
160 int32_t m_iEllChars; 160 int32_t m_iEllChars;
161 FX_WCHAR m_wParagraphBkChar; 161 FX_WCHAR m_wParagraphBkChar;
162 FX_ARGB m_TxtColor; 162 FX_ARGB m_TxtColor;
163 FX_DWORD m_dwStyles; 163 uint32_t m_dwStyles;
164 FX_DWORD m_dwTxtBkStyles; 164 uint32_t m_dwTxtBkStyles;
165 CFX_WideString m_wsEllipsis; 165 CFX_WideString m_wsEllipsis;
166 FX_BOOL m_bElliChanged; 166 FX_BOOL m_bElliChanged;
167 int32_t m_iEllipsisWidth; 167 int32_t m_iEllipsisWidth;
168 CFX_WideString m_wsText; 168 CFX_WideString m_wsText;
169 CFX_RectF m_rtClip; 169 CFX_RectF m_rtClip;
170 CFX_RectF m_rtLogicClip; 170 CFX_RectF m_rtLogicClip;
171 CFX_Matrix m_Matrix; 171 CFX_Matrix m_Matrix;
172 CFDE_TTOLineArray m_ttoLines; 172 CFDE_TTOLineArray m_ttoLines;
173 int32_t m_iCurLine; 173 int32_t m_iCurLine;
174 int32_t m_iCurPiece; 174 int32_t m_iCurPiece;
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 m_pTxtBreak->SetFont(pFont); 234 m_pTxtBreak->SetFont(pFont);
235 } 235 }
236 void CFDE_TextOut::SetFontSize(FX_FLOAT fFontSize) { 236 void CFDE_TextOut::SetFontSize(FX_FLOAT fFontSize) {
237 FXSYS_assert(fFontSize > 0); 237 FXSYS_assert(fFontSize > 0);
238 m_fFontSize = fFontSize; 238 m_fFontSize = fFontSize;
239 m_pTxtBreak->SetFontSize(fFontSize); 239 m_pTxtBreak->SetFontSize(fFontSize);
240 } 240 }
241 void CFDE_TextOut::SetTextColor(FX_ARGB color) { 241 void CFDE_TextOut::SetTextColor(FX_ARGB color) {
242 m_TxtColor = color; 242 m_TxtColor = color;
243 } 243 }
244 void CFDE_TextOut::SetStyles(FX_DWORD dwStyles) { 244 void CFDE_TextOut::SetStyles(uint32_t dwStyles) {
245 m_dwStyles = dwStyles; 245 m_dwStyles = dwStyles;
246 m_dwTxtBkStyles = 0; 246 m_dwTxtBkStyles = 0;
247 if (dwStyles & FDE_TTOSTYLE_SingleLine) { 247 if (dwStyles & FDE_TTOSTYLE_SingleLine) {
248 m_dwTxtBkStyles |= FX_TXTLAYOUTSTYLE_SingleLine; 248 m_dwTxtBkStyles |= FX_TXTLAYOUTSTYLE_SingleLine;
249 } 249 }
250 if (dwStyles & FDE_TTOSTYLE_ExpandTab) { 250 if (dwStyles & FDE_TTOSTYLE_ExpandTab) {
251 m_dwTxtBkStyles |= FX_TXTLAYOUTSTYLE_ExpandTab; 251 m_dwTxtBkStyles |= FX_TXTLAYOUTSTYLE_ExpandTab;
252 } 252 }
253 if (dwStyles & FDE_TTOSTYLE_ArabicShapes) { 253 if (dwStyles & FDE_TTOSTYLE_ArabicShapes) {
254 m_dwTxtBkStyles |= FX_TXTLAYOUTSTYLE_ArabicShapes; 254 m_dwTxtBkStyles |= FX_TXTLAYOUTSTYLE_ArabicShapes;
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 CFX_RectF& rect) { 400 CFX_RectF& rect) {
401 FXSYS_assert(m_pFont != NULL && m_fFontSize >= 1.0f); 401 FXSYS_assert(m_pFont != NULL && m_fFontSize >= 1.0f);
402 SetLineWidth(rect); 402 SetLineWidth(rect);
403 m_iTotalLines = 0; 403 m_iTotalLines = 0;
404 const FX_WCHAR* pStr = pwsStr; 404 const FX_WCHAR* pStr = pwsStr;
405 FX_BOOL bHotKey = !!(m_dwStyles & FDE_TTOSTYLE_HotKey); 405 FX_BOOL bHotKey = !!(m_dwStyles & FDE_TTOSTYLE_HotKey);
406 FX_BOOL bVertical = !!(m_dwStyles & FDE_TTOSTYLE_VerticalLayout); 406 FX_BOOL bVertical = !!(m_dwStyles & FDE_TTOSTYLE_VerticalLayout);
407 FX_FLOAT fWidth = 0.0f; 407 FX_FLOAT fWidth = 0.0f;
408 FX_FLOAT fHeight = 0.0f; 408 FX_FLOAT fHeight = 0.0f;
409 FX_FLOAT fStartPos = bVertical ? rect.bottom() : rect.right(); 409 FX_FLOAT fStartPos = bVertical ? rect.bottom() : rect.right();
410 FX_DWORD dwBreakStatus = 0; 410 uint32_t dwBreakStatus = 0;
411 FX_WCHAR wPreChar = 0; 411 FX_WCHAR wPreChar = 0;
412 FX_WCHAR wch; 412 FX_WCHAR wch;
413 FX_WCHAR wBreak = 0; 413 FX_WCHAR wBreak = 0;
414 while (iLength-- > 0) { 414 while (iLength-- > 0) {
415 wch = *pStr++; 415 wch = *pStr++;
416 if (wBreak == 0 && (wch == L'\n' || wch == L'\r')) { 416 if (wBreak == 0 && (wch == L'\n' || wch == L'\r')) {
417 wBreak = wch; 417 wBreak = wch;
418 m_pTxtBreak->SetParagraphBreakChar(wch); 418 m_pTxtBreak->SetParagraphBreakChar(wch);
419 } 419 }
420 if (bHotKey && wch == L'&' && wPreChar != L'&') { 420 if (bHotKey && wch == L'&' && wPreChar != L'&') {
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
467 fLineWidth = rect.Height(); 467 fLineWidth = rect.Height();
468 } else { 468 } else {
469 if (rect.Width() < 1.0f) { 469 if (rect.Width() < 1.0f) {
470 rect.width = m_fFontSize * 1000.0f; 470 rect.width = m_fFontSize * 1000.0f;
471 } 471 }
472 fLineWidth = rect.Width(); 472 fLineWidth = rect.Width();
473 } 473 }
474 m_pTxtBreak->SetLineWidth(fLineWidth); 474 m_pTxtBreak->SetLineWidth(fLineWidth);
475 } 475 }
476 } 476 }
477 FX_BOOL CFDE_TextOut::RetrieveLineWidth(FX_DWORD dwBreakStatus, 477 FX_BOOL CFDE_TextOut::RetrieveLineWidth(uint32_t dwBreakStatus,
478 FX_FLOAT& fStartPos, 478 FX_FLOAT& fStartPos,
479 FX_FLOAT& fWidth, 479 FX_FLOAT& fWidth,
480 FX_FLOAT& fHeight) { 480 FX_FLOAT& fHeight) {
481 if (dwBreakStatus <= FX_TXTBREAK_PieceBreak) { 481 if (dwBreakStatus <= FX_TXTBREAK_PieceBreak) {
482 return FALSE; 482 return FALSE;
483 } 483 }
484 FX_FLOAT fLineStep = 484 FX_FLOAT fLineStep =
485 (m_fLineSpace > m_fFontSize) ? m_fLineSpace : m_fFontSize; 485 (m_fLineSpace > m_fFontSize) ? m_fLineSpace : m_fFontSize;
486 FX_BOOL bLineWrap = !!(m_dwStyles & FDE_TTOSTYLE_LineWrap); 486 FX_BOOL bLineWrap = !!(m_dwStyles & FDE_TTOSTYLE_LineWrap);
487 FX_FLOAT fLineWidth = 0.0f; 487 FX_FLOAT fLineWidth = 0.0f;
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
621 } 621 }
622 m_bElliChanged = FALSE; 622 m_bElliChanged = FALSE;
623 m_iEllipsisWidth = 0; 623 m_iEllipsisWidth = 0;
624 int32_t iLength = m_wsEllipsis.GetLength(); 624 int32_t iLength = m_wsEllipsis.GetLength();
625 if (iLength < 1) { 625 if (iLength < 1) {
626 return; 626 return;
627 } 627 }
628 ExpandBuffer(iLength, 1); 628 ExpandBuffer(iLength, 1);
629 const FX_WCHAR* pStr = (const FX_WCHAR*)m_wsEllipsis; 629 const FX_WCHAR* pStr = (const FX_WCHAR*)m_wsEllipsis;
630 int32_t* pCharWidths = m_pEllCharWidths; 630 int32_t* pCharWidths = m_pEllCharWidths;
631 FX_DWORD dwBreakStatus; 631 uint32_t dwBreakStatus;
632 FX_WCHAR wch; 632 FX_WCHAR wch;
633 while (iLength-- > 0) { 633 while (iLength-- > 0) {
634 wch = *pStr++; 634 wch = *pStr++;
635 dwBreakStatus = m_pTxtBreak->AppendChar(wch); 635 dwBreakStatus = m_pTxtBreak->AppendChar(wch);
636 if (dwBreakStatus > FX_TXTBREAK_PieceBreak) { 636 if (dwBreakStatus > FX_TXTBREAK_PieceBreak) {
637 RetrieveEllPieces(pCharWidths); 637 RetrieveEllPieces(pCharWidths);
638 } 638 }
639 } 639 }
640 dwBreakStatus = m_pTxtBreak->EndBreak(FX_TXTBREAK_ParagraphBreak); 640 dwBreakStatus = m_pTxtBreak->EndBreak(FX_TXTBREAK_ParagraphBreak);
641 if (dwBreakStatus > FX_TXTBREAK_PieceBreak) { 641 if (dwBreakStatus > FX_TXTBREAK_PieceBreak) {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
675 (m_fLineSpace > m_fFontSize) ? m_fLineSpace : m_fFontSize; 675 (m_fLineSpace > m_fFontSize) ? m_fLineSpace : m_fFontSize;
676 FX_FLOAT fLineStop = bVertical ? rect.left : rect.bottom(); 676 FX_FLOAT fLineStop = bVertical ? rect.left : rect.bottom();
677 m_fLinePos = bVertical ? rect.right() : rect.top; 677 m_fLinePos = bVertical ? rect.right() : rect.top;
678 if (bVertical) { 678 if (bVertical) {
679 fLineStep = -fLineStep; 679 fLineStep = -fLineStep;
680 } 680 }
681 m_hotKeys.RemoveAll(); 681 m_hotKeys.RemoveAll();
682 int32_t iStartChar = 0; 682 int32_t iStartChar = 0;
683 int32_t iChars = 0; 683 int32_t iChars = 0;
684 int32_t iPieceWidths = 0; 684 int32_t iPieceWidths = 0;
685 FX_DWORD dwBreakStatus; 685 uint32_t dwBreakStatus;
686 FX_WCHAR wch; 686 FX_WCHAR wch;
687 FX_BOOL bRet = FALSE; 687 FX_BOOL bRet = FALSE;
688 while (iTxtLength-- > 0) { 688 while (iTxtLength-- > 0) {
689 wch = *pwsStr++; 689 wch = *pwsStr++;
690 if (wch == L'&' && bHotKey && (pStr - 1) != NULL && *(pStr - 1) != L'&') { 690 if (wch == L'&' && bHotKey && (pStr - 1) != NULL && *(pStr - 1) != L'&') {
691 if (iTxtLength > 0) { 691 if (iTxtLength > 0) {
692 m_hotKeys.Add(iChars); 692 m_hotKeys.Add(iChars);
693 } 693 }
694 continue; 694 continue;
695 } 695 }
(...skipping 23 matching lines...) Expand all
719 } 719 }
720 } 720 }
721 dwBreakStatus = m_pTxtBreak->EndBreak(FX_TXTBREAK_ParagraphBreak); 721 dwBreakStatus = m_pTxtBreak->EndBreak(FX_TXTBREAK_ParagraphBreak);
722 if (dwBreakStatus > FX_TXTBREAK_PieceBreak && !bRet) { 722 if (dwBreakStatus > FX_TXTBREAK_PieceBreak && !bRet) {
723 RetriecePieces(dwBreakStatus, iStartChar, iPieceWidths, FALSE, rect); 723 RetriecePieces(dwBreakStatus, iStartChar, iPieceWidths, FALSE, rect);
724 } 724 }
725 m_pTxtBreak->ClearBreakPieces(); 725 m_pTxtBreak->ClearBreakPieces();
726 m_pTxtBreak->Reset(); 726 m_pTxtBreak->Reset();
727 m_wsText.ReleaseBuffer(iLength); 727 m_wsText.ReleaseBuffer(iLength);
728 } 728 }
729 FX_BOOL CFDE_TextOut::RetriecePieces(FX_DWORD dwBreakStatus, 729 FX_BOOL CFDE_TextOut::RetriecePieces(uint32_t dwBreakStatus,
730 int32_t& iStartChar, 730 int32_t& iStartChar,
731 int32_t& iPieceWidths, 731 int32_t& iPieceWidths,
732 FX_BOOL bReload, 732 FX_BOOL bReload,
733 const CFX_RectF& rect) { 733 const CFX_RectF& rect) {
734 FX_BOOL bSingleLine = !!(m_dwStyles & FDE_TTOSTYLE_SingleLine); 734 FX_BOOL bSingleLine = !!(m_dwStyles & FDE_TTOSTYLE_SingleLine);
735 FX_BOOL bLineWrap = !!(m_dwStyles & FDE_TTOSTYLE_LineWrap); 735 FX_BOOL bLineWrap = !!(m_dwStyles & FDE_TTOSTYLE_LineWrap);
736 FX_BOOL bVertical = !!(m_dwStyles & FDE_TTOSTYLE_VerticalLayout); 736 FX_BOOL bVertical = !!(m_dwStyles & FDE_TTOSTYLE_VerticalLayout);
737 FX_FLOAT fLineStep = 737 FX_FLOAT fLineStep =
738 (m_fLineSpace > m_fFontSize) ? m_fLineSpace : m_fFontSize; 738 (m_fLineSpace > m_fFontSize) ? m_fLineSpace : m_fFontSize;
739 if (bVertical) { 739 if (bVertical) {
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
876 } 876 }
877 void CFDE_TextOut::ReloadLinePiece(CFDE_TTOLine* pLine, const CFX_RectF& rect) { 877 void CFDE_TextOut::ReloadLinePiece(CFDE_TTOLine* pLine, const CFX_RectF& rect) {
878 const FX_WCHAR* pwsStr = (const FX_WCHAR*)m_wsText; 878 const FX_WCHAR* pwsStr = (const FX_WCHAR*)m_wsText;
879 FX_BOOL bVertical = !!(m_dwStyles & FDE_TTOSTYLE_VerticalLayout); 879 FX_BOOL bVertical = !!(m_dwStyles & FDE_TTOSTYLE_VerticalLayout);
880 int32_t iPieceWidths = 0; 880 int32_t iPieceWidths = 0;
881 FDE_LPTTOPIECE pPiece = pLine->GetPtrAt(0); 881 FDE_LPTTOPIECE pPiece = pLine->GetPtrAt(0);
882 int32_t iStartChar = pPiece->iStartChar; 882 int32_t iStartChar = pPiece->iStartChar;
883 m_fLinePos = bVertical ? pPiece->rtPiece.left : pPiece->rtPiece.top; 883 m_fLinePos = bVertical ? pPiece->rtPiece.left : pPiece->rtPiece.top;
884 int32_t iPieceCount = pLine->GetSize(); 884 int32_t iPieceCount = pLine->GetSize();
885 int32_t iPieceIndex = 0; 885 int32_t iPieceIndex = 0;
886 FX_DWORD dwBreakStatus = 0; 886 uint32_t dwBreakStatus = 0;
887 FX_WCHAR wch; 887 FX_WCHAR wch;
888 while (iPieceIndex < iPieceCount) { 888 while (iPieceIndex < iPieceCount) {
889 int32_t iStar = iStartChar; 889 int32_t iStar = iStartChar;
890 int32_t iEnd = pPiece->iChars + iStar; 890 int32_t iEnd = pPiece->iChars + iStar;
891 while (iStar < iEnd) { 891 while (iStar < iEnd) {
892 wch = *(pwsStr + iStar); 892 wch = *(pwsStr + iStar);
893 dwBreakStatus = m_pTxtBreak->AppendChar(wch); 893 dwBreakStatus = m_pTxtBreak->AppendChar(wch);
894 if (dwBreakStatus > FX_TXTBREAK_PieceBreak) { 894 if (dwBreakStatus > FX_TXTBREAK_PieceBreak) {
895 RetriecePieces(dwBreakStatus, iStartChar, iPieceWidths, TRUE, rect); 895 RetriecePieces(dwBreakStatus, iStartChar, iPieceWidths, TRUE, rect);
896 } 896 }
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
1111 return NULL; 1111 return NULL;
1112 } 1112 }
1113 return m_pieces.GetPtrAt(index); 1113 return m_pieces.GetPtrAt(index);
1114 } 1114 }
1115 void CFDE_TTOLine::RemoveLast(int32_t iCount) { 1115 void CFDE_TTOLine::RemoveLast(int32_t iCount) {
1116 m_pieces.RemoveLast(iCount); 1116 m_pieces.RemoveLast(iCount);
1117 } 1117 }
1118 void CFDE_TTOLine::RemoveAll(FX_BOOL bLeaveMemory) { 1118 void CFDE_TTOLine::RemoveAll(FX_BOOL bLeaveMemory) {
1119 m_pieces.RemoveAll(bLeaveMemory); 1119 m_pieces.RemoveAll(bLeaveMemory);
1120 } 1120 }
OLDNEW
« no previous file with comments | « xfa/fde/fde_render.cpp ('k') | xfa/fde/xml/fde_xml_imp.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698