| 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 |