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 FPDFSDK_INCLUDE_FXEDIT_FXET_EDIT_H_ | 7 #ifndef FPDFSDK_INCLUDE_FXEDIT_FXET_EDIT_H_ |
8 #define FPDFSDK_INCLUDE_FXEDIT_FXET_EDIT_H_ | 8 #define FPDFSDK_INCLUDE_FXEDIT_FXET_EDIT_H_ |
9 | 9 |
10 #include "core/include/fpdfdoc/fpdf_vt.h" | 10 #include "core/include/fpdfdoc/fpdf_vt.h" |
11 #include "fpdfsdk/include/fxedit/fx_edit.h" | 11 #include "fpdfsdk/include/fxedit/fx_edit.h" |
12 | 12 |
13 class CFX_Edit; | 13 class CFX_Edit; |
14 class CFX_Edit_Iterator; | 14 class CFX_Edit_Iterator; |
15 class CFX_Edit_Provider; | 15 class CFX_Edit_Provider; |
16 | 16 |
17 #define FX_EDIT_IsFloatZero(f) (f < 0.0001 && f > -0.0001) | 17 #define FX_EDIT_IsFloatZero(f) (f < 0.0001 && f > -0.0001) |
18 #define FX_EDIT_IsFloatEqual(fa, fb) FX_EDIT_IsFloatZero(fa - fb) | 18 #define FX_EDIT_IsFloatEqual(fa, fb) FX_EDIT_IsFloatZero(fa - fb) |
19 #define FX_EDIT_IsFloatBigger(fa, fb) (fa > fb && !FX_EDIT_IsFloatEqual(fa, fb)) | 19 #define FX_EDIT_IsFloatBigger(fa, fb) (fa > fb && !FX_EDIT_IsFloatEqual(fa, fb)) |
20 #define FX_EDIT_IsFloatSmaller(fa, fb) \ | 20 #define FX_EDIT_IsFloatSmaller(fa, fb) \ |
21 (fa < fb && !FX_EDIT_IsFloatEqual(fa, fb)) | 21 (fa < fb && !FX_EDIT_IsFloatEqual(fa, fb)) |
22 | 22 |
23 /* ------------------------- CFX_Edit_Refresh ---------------------------- */ | |
24 | |
25 enum REFRESH_PLAN_E { RP_ANALYSE, RP_NOANALYSE, RP_OPTIONAL }; | 23 enum REFRESH_PLAN_E { RP_ANALYSE, RP_NOANALYSE, RP_OPTIONAL }; |
26 | 24 |
27 enum EDIT_PROPS_E { | 25 enum EDIT_PROPS_E { |
28 EP_LINELEADING, | 26 EP_LINELEADING, |
29 EP_LINEINDENT, | 27 EP_LINEINDENT, |
30 EP_ALIGNMENT, | 28 EP_ALIGNMENT, |
31 EP_FONTINDEX, | 29 EP_FONTINDEX, |
32 EP_FONTSIZE, | 30 EP_FONTSIZE, |
33 EP_WORDCOLOR, | 31 EP_WORDCOLOR, |
34 EP_SCRIPTTYPE, | 32 EP_SCRIPTTYPE, |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
157 void AddRefresh(const CFX_FloatRect& rect); | 155 void AddRefresh(const CFX_FloatRect& rect); |
158 const CFX_Edit_RectArray* GetRefreshRects() const; | 156 const CFX_Edit_RectArray* GetRefreshRects() const; |
159 void EndRefresh(); | 157 void EndRefresh(); |
160 | 158 |
161 private: | 159 private: |
162 CFX_Edit_LineRectArray m_NewLineRects; | 160 CFX_Edit_LineRectArray m_NewLineRects; |
163 CFX_Edit_LineRectArray m_OldLineRects; | 161 CFX_Edit_LineRectArray m_OldLineRects; |
164 CFX_Edit_RectArray m_RefreshRects; | 162 CFX_Edit_RectArray m_RefreshRects; |
165 }; | 163 }; |
166 | 164 |
167 /* ------------------------- CFX_Edit_Select ---------------------------- */ | |
168 | |
169 class CFX_Edit_Select { | 165 class CFX_Edit_Select { |
170 public: | 166 public: |
171 CFX_Edit_Select() {} | 167 CFX_Edit_Select() {} |
172 | 168 |
173 CFX_Edit_Select(const CPVT_WordPlace& begin, const CPVT_WordPlace& end) { | 169 CFX_Edit_Select(const CPVT_WordPlace& begin, const CPVT_WordPlace& end) { |
174 Set(begin, end); | 170 Set(begin, end); |
175 } | 171 } |
176 | 172 |
177 explicit CFX_Edit_Select(const CPVT_WordRange& range) { | 173 explicit CFX_Edit_Select(const CPVT_WordRange& range) { |
178 Set(range.BeginPos, range.EndPos); | 174 Set(range.BeginPos, range.EndPos); |
(...skipping 19 matching lines...) Expand all Loading... |
198 | 194 |
199 FX_BOOL IsExist() const { return BeginPos != EndPos; } | 195 FX_BOOL IsExist() const { return BeginPos != EndPos; } |
200 | 196 |
201 FX_BOOL operator!=(const CPVT_WordRange& wr) const { | 197 FX_BOOL operator!=(const CPVT_WordRange& wr) const { |
202 return wr.BeginPos != BeginPos || wr.EndPos != EndPos; | 198 return wr.BeginPos != BeginPos || wr.EndPos != EndPos; |
203 } | 199 } |
204 | 200 |
205 CPVT_WordPlace BeginPos, EndPos; | 201 CPVT_WordPlace BeginPos, EndPos; |
206 }; | 202 }; |
207 | 203 |
208 /* ------------------------- CFX_Edit_Undo ---------------------------- */ | |
209 | |
210 class CFX_Edit_Undo { | 204 class CFX_Edit_Undo { |
211 public: | 205 public: |
212 explicit CFX_Edit_Undo(int32_t nBufsize); | 206 explicit CFX_Edit_Undo(int32_t nBufsize); |
213 virtual ~CFX_Edit_Undo(); | 207 virtual ~CFX_Edit_Undo(); |
214 | 208 |
215 void Undo(); | 209 void Undo(); |
216 void Redo(); | 210 void Redo(); |
217 | 211 |
218 void AddItem(IFX_Edit_UndoItem* pItem); | 212 void AddItem(IFX_Edit_UndoItem* pItem); |
219 | 213 |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 CFX_WideString GetUndoTitle() override; | 266 CFX_WideString GetUndoTitle() override; |
273 | 267 |
274 void AddUndoItem(CFX_Edit_UndoItem* pUndoItem); | 268 void AddUndoItem(CFX_Edit_UndoItem* pUndoItem); |
275 void UpdateItems(); | 269 void UpdateItems(); |
276 | 270 |
277 private: | 271 private: |
278 CFX_WideString m_sTitle; | 272 CFX_WideString m_sTitle; |
279 CFX_ArrayTemplate<CFX_Edit_UndoItem*> m_Items; | 273 CFX_ArrayTemplate<CFX_Edit_UndoItem*> m_Items; |
280 }; | 274 }; |
281 | 275 |
282 /* ------------------------- CFX_Edit_UndoItem derived classes | |
283 * ---------------------------- */ | |
284 | |
285 class CFXEU_InsertWord : public CFX_Edit_UndoItem { | 276 class CFXEU_InsertWord : public CFX_Edit_UndoItem { |
286 public: | 277 public: |
287 CFXEU_InsertWord(CFX_Edit* pEdit, | 278 CFXEU_InsertWord(CFX_Edit* pEdit, |
288 const CPVT_WordPlace& wpOldPlace, | 279 const CPVT_WordPlace& wpOldPlace, |
289 const CPVT_WordPlace& wpNewPlace, | 280 const CPVT_WordPlace& wpNewPlace, |
290 uint16_t word, | 281 uint16_t word, |
291 int32_t charset, | 282 int32_t charset, |
292 const CPVT_WordProps* pWordProps); | 283 const CPVT_WordProps* pWordProps); |
293 ~CFXEU_InsertWord() override; | 284 ~CFXEU_InsertWord() override; |
294 | 285 |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
499 private: | 490 private: |
500 CFX_Edit* m_pEdit; | 491 CFX_Edit* m_pEdit; |
501 CPVT_WordPlace m_wpPlace; | 492 CPVT_WordPlace m_wpPlace; |
502 CPVT_WordRange m_wrPlace; | 493 CPVT_WordRange m_wrPlace; |
503 EDIT_PROPS_E m_eProps; | 494 EDIT_PROPS_E m_eProps; |
504 | 495 |
505 CPVT_WordProps m_OldWordProps; | 496 CPVT_WordProps m_OldWordProps; |
506 CPVT_WordProps m_NewWordProps; | 497 CPVT_WordProps m_NewWordProps; |
507 }; | 498 }; |
508 | 499 |
509 /* ------------------------- CFX_Edit ---------------------------- */ | |
510 | |
511 class CFX_Edit : public IFX_Edit { | 500 class CFX_Edit : public IFX_Edit { |
512 friend class CFX_Edit_Iterator; | 501 friend class CFX_Edit_Iterator; |
513 friend class CFXEU_InsertWord; | 502 friend class CFXEU_InsertWord; |
514 friend class CFXEU_InsertReturn; | 503 friend class CFXEU_InsertReturn; |
515 friend class CFXEU_Backspace; | 504 friend class CFXEU_Backspace; |
516 friend class CFXEU_Delete; | 505 friend class CFXEU_Delete; |
517 friend class CFXEU_Clear; | 506 friend class CFXEU_Clear; |
518 friend class CFXEU_ClearRich; | 507 friend class CFXEU_ClearRich; |
519 friend class CFXEU_SetSecProps; | 508 friend class CFXEU_SetSecProps; |
520 friend class CFXEU_SetWordProps; | 509 friend class CFXEU_SetWordProps; |
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
756 FX_BOOL m_bNotifyFlag; | 745 FX_BOOL m_bNotifyFlag; |
757 FX_BOOL m_bEnableOverflow; | 746 FX_BOOL m_bEnableOverflow; |
758 FX_BOOL m_bEnableRefresh; | 747 FX_BOOL m_bEnableRefresh; |
759 CFX_FloatRect m_rcOldContent; | 748 CFX_FloatRect m_rcOldContent; |
760 FX_BOOL m_bEnableUndo; | 749 FX_BOOL m_bEnableUndo; |
761 FX_BOOL m_bNotify; | 750 FX_BOOL m_bNotify; |
762 FX_BOOL m_bOprNotify; | 751 FX_BOOL m_bOprNotify; |
763 CFX_Edit_GroupUndoItem* m_pGroupUndoItem; | 752 CFX_Edit_GroupUndoItem* m_pGroupUndoItem; |
764 }; | 753 }; |
765 | 754 |
766 /* ------------------------- CFX_Edit_Iterator ---------------------------- */ | |
767 | |
768 class CFX_Edit_Iterator : public IFX_Edit_Iterator { | 755 class CFX_Edit_Iterator : public IFX_Edit_Iterator { |
769 public: | 756 public: |
770 CFX_Edit_Iterator(CFX_Edit* pEdit, IPDF_VariableText_Iterator* pVTIterator); | 757 CFX_Edit_Iterator(CFX_Edit* pEdit, IPDF_VariableText_Iterator* pVTIterator); |
771 ~CFX_Edit_Iterator() override; | 758 ~CFX_Edit_Iterator() override; |
772 | 759 |
773 // IFX_Edit_Iterator | 760 // IFX_Edit_Iterator |
774 FX_BOOL NextWord() override; | 761 FX_BOOL NextWord() override; |
775 FX_BOOL NextLine() override; | 762 FX_BOOL NextLine() override; |
776 FX_BOOL NextSection() override; | 763 FX_BOOL NextSection() override; |
777 FX_BOOL PrevWord() override; | 764 FX_BOOL PrevWord() override; |
(...skipping 29 matching lines...) Expand all Loading... |
807 int32_t charset, | 794 int32_t charset, |
808 int32_t nFontIndex) override; | 795 int32_t nFontIndex) override; |
809 int32_t GetDefaultFontIndex() override; | 796 int32_t GetDefaultFontIndex() override; |
810 FX_BOOL IsLatinWord(uint16_t word) override; | 797 FX_BOOL IsLatinWord(uint16_t word) override; |
811 | 798 |
812 private: | 799 private: |
813 IFX_Edit_FontMap* m_pFontMap; | 800 IFX_Edit_FontMap* m_pFontMap; |
814 }; | 801 }; |
815 | 802 |
816 #endif // FPDFSDK_INCLUDE_FXEDIT_FXET_EDIT_H_ | 803 #endif // FPDFSDK_INCLUDE_FXEDIT_FXET_EDIT_H_ |
OLD | NEW |