OLD | NEW |
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 #ifndef XFA_FDE_TTO_FDE_TEXTOUT_H_ | 7 #ifndef XFA_FDE_TTO_FDE_TEXTOUT_H_ |
8 #define XFA_FDE_TTO_FDE_TEXTOUT_H_ | 8 #define XFA_FDE_TTO_FDE_TEXTOUT_H_ |
9 | 9 |
10 #include <memory> | 10 #include <memory> |
11 | 11 |
12 #include "core/fxge/include/fx_dib.h" | 12 #include "core/fxge/include/fx_dib.h" |
| 13 #include "core/fxge/include/fx_ge.h" |
13 #include "xfa/fde/fde_object.h" | 14 #include "xfa/fde/fde_object.h" |
14 #include "xfa/fgas/crt/fgas_utils.h" | 15 #include "xfa/fgas/crt/fgas_utils.h" |
15 #include "xfa/fgas/font/fgas_font.h" | 16 #include "xfa/fgas/font/fgas_font.h" |
16 #include "xfa/fgas/layout/fgas_textbreak.h" | |
17 | 17 |
18 #define FDE_TTOSTYLE_Underline 0x0001 | 18 #define FDE_TTOSTYLE_Underline 0x0001 |
19 #define FDE_TTOSTYLE_Strikeout 0x0002 | 19 #define FDE_TTOSTYLE_Strikeout 0x0002 |
20 #define FDE_TTOSTYLE_VerticalLayout 0x0004 | 20 #define FDE_TTOSTYLE_VerticalLayout 0x0004 |
21 #define FDE_TTOSTYLE_SingleLine 0x0010 | 21 #define FDE_TTOSTYLE_SingleLine 0x0010 |
22 #define FDE_TTOSTYLE_ExpandTab 0x0020 | 22 #define FDE_TTOSTYLE_ExpandTab 0x0020 |
23 #define FDE_TTOSTYLE_HotKey 0x0040 | 23 #define FDE_TTOSTYLE_HotKey 0x0040 |
24 #define FDE_TTOSTYLE_Ellipsis 0x0080 | 24 #define FDE_TTOSTYLE_Ellipsis 0x0080 |
25 #define FDE_TTOSTYLE_LineWrap 0x0100 | 25 #define FDE_TTOSTYLE_LineWrap 0x0100 |
26 #define FDE_TTOSTYLE_ArabicShapes 0x0200 | 26 #define FDE_TTOSTYLE_ArabicShapes 0x0200 |
27 #define FDE_TTOSTYLE_RTL 0x0400 | 27 #define FDE_TTOSTYLE_RTL 0x0400 |
28 #define FDE_TTOSTYLE_ArabicContext 0x0800 | 28 #define FDE_TTOSTYLE_ArabicContext 0x0800 |
29 #define FDE_TTOSTYLE_LastLineHeight 0x1000 | 29 #define FDE_TTOSTYLE_LastLineHeight 0x1000 |
30 #define FDE_TTOALIGNMENT_TopLeft 0 | 30 #define FDE_TTOALIGNMENT_TopLeft 0 |
31 #define FDE_TTOALIGNMENT_TopCenter 1 | 31 #define FDE_TTOALIGNMENT_TopCenter 1 |
32 #define FDE_TTOALIGNMENT_TopRight 2 | 32 #define FDE_TTOALIGNMENT_TopRight 2 |
33 #define FDE_TTOALIGNMENT_TopAuto 3 | 33 #define FDE_TTOALIGNMENT_TopAuto 3 |
34 #define FDE_TTOALIGNMENT_CenterLeft 4 | 34 #define FDE_TTOALIGNMENT_CenterLeft 4 |
35 #define FDE_TTOALIGNMENT_Center 5 | 35 #define FDE_TTOALIGNMENT_Center 5 |
36 #define FDE_TTOALIGNMENT_CenterRight 6 | 36 #define FDE_TTOALIGNMENT_CenterRight 6 |
37 #define FDE_TTOALIGNMENT_CenterAuto 7 | 37 #define FDE_TTOALIGNMENT_CenterAuto 7 |
38 #define FDE_TTOALIGNMENT_BottomLeft 8 | 38 #define FDE_TTOALIGNMENT_BottomLeft 8 |
39 #define FDE_TTOALIGNMENT_BottomCenter 9 | 39 #define FDE_TTOALIGNMENT_BottomCenter 9 |
40 #define FDE_TTOALIGNMENT_BottomRight 10 | 40 #define FDE_TTOALIGNMENT_BottomRight 10 |
41 #define FDE_TTOALIGNMENT_BottomAuto 11 | 41 #define FDE_TTOALIGNMENT_BottomAuto 11 |
42 | 42 |
43 class CFDE_RenderDevice; | 43 class CFDE_RenderDevice; |
44 class CFX_TxtBreak; | 44 class CFX_TxtBreak; |
| 45 struct FX_TXTRUN; |
45 | 46 |
46 struct FDE_TTOPIECE { | 47 struct FDE_TTOPIECE { |
47 int32_t iStartChar; | 48 int32_t iStartChar; |
48 int32_t iChars; | 49 int32_t iChars; |
49 uint32_t dwCharStyles; | 50 uint32_t dwCharStyles; |
50 CFX_RectF rtPiece; | 51 CFX_RectF rtPiece; |
51 }; | 52 }; |
52 typedef CFX_MassArrayTemplate<FDE_TTOPIECE> CFDE_TTOPieceArray; | 53 typedef CFX_MassArrayTemplate<FDE_TTOPIECE> CFDE_TTOPieceArray; |
53 | 54 |
54 class CFDE_TTOLine : public CFX_Target { | 55 class CFDE_TTOLine : public CFX_Target { |
55 public: | 56 public: |
56 CFDE_TTOLine(); | 57 CFDE_TTOLine(); |
57 CFDE_TTOLine(const CFDE_TTOLine& ttoLine); | 58 CFDE_TTOLine(const CFDE_TTOLine& ttoLine); |
58 ~CFDE_TTOLine(); | 59 ~CFDE_TTOLine() override; |
| 60 |
59 int32_t AddPiece(int32_t index, const FDE_TTOPIECE& ttoPiece); | 61 int32_t AddPiece(int32_t index, const FDE_TTOPIECE& ttoPiece); |
60 int32_t GetSize() const; | 62 int32_t GetSize() const; |
61 FDE_TTOPIECE* GetPtrAt(int32_t index); | 63 FDE_TTOPIECE* GetPtrAt(int32_t index); |
62 void RemoveLast(int32_t iCount); | 64 void RemoveLast(int32_t iCount); |
63 void RemoveAll(FX_BOOL bLeaveMemory); | 65 void RemoveAll(FX_BOOL bLeaveMemory); |
64 | 66 |
65 FX_BOOL m_bNewReload; | 67 FX_BOOL m_bNewReload; |
66 CFDE_TTOPieceArray m_pieces; | 68 CFDE_TTOPieceArray m_pieces; |
67 | 69 |
68 protected: | 70 protected: |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 int32_t m_iCurPiece; | 180 int32_t m_iCurPiece; |
179 int32_t m_iTotalLines; | 181 int32_t m_iTotalLines; |
180 FXTEXT_CHARPOS* m_pCharPos; | 182 FXTEXT_CHARPOS* m_pCharPos; |
181 int32_t m_iCharPosSize; | 183 int32_t m_iCharPosSize; |
182 std::unique_ptr<CFDE_RenderDevice> m_pRenderDevice; | 184 std::unique_ptr<CFDE_RenderDevice> m_pRenderDevice; |
183 CFX_Int32Array m_hotKeys; | 185 CFX_Int32Array m_hotKeys; |
184 CFX_RectFArray m_rectArray; | 186 CFX_RectFArray m_rectArray; |
185 }; | 187 }; |
186 | 188 |
187 #endif // XFA_FDE_TTO_FDE_TEXTOUT_H_ | 189 #endif // XFA_FDE_TTO_FDE_TEXTOUT_H_ |
OLD | NEW |