| 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 "fx_edit.h" | 11 #include "fx_edit.h" |
| 12 | 12 |
| 13 class CFX_Edit_Page; | 13 class CFX_Edit_Page; |
| 14 struct CFX_Edit_LineRect; | 14 struct CFX_Edit_LineRect; |
| 15 class CFX_Edit_LineRectArray; | 15 class CFX_Edit_LineRectArray; |
| 16 class CFX_Edit_RectArray; | 16 class CFX_Edit_RectArray; |
| 17 class CFX_Edit_Refresh; | 17 class CFX_Edit_Refresh; |
| 18 class CFX_Edit_Select; | 18 class CFX_Edit_Select; |
| 19 class CFX_Edit; | 19 class CFX_Edit; |
| 20 class CFX_Edit_Iterator; | 20 class CFX_Edit_Iterator; |
| 21 class CFX_Edit_Refresh; | 21 class CFX_Edit_Refresh; |
| 22 class CFX_Edit_UndoItem; | 22 class CFX_Edit_UndoItem; |
| 23 class CFX_Edit_Undo; | 23 class CFX_Edit_Undo; |
| 24 class CFX_Edit_Provider; | 24 class CFX_Edit_Provider; |
| 25 | 25 |
| 26 #define FX_EDIT_IsFloatZero(f)» » » » » » (f < 0.0
001 && f > -0.0001) | 26 #define FX_EDIT_IsFloatZero(f) (f < 0.0001 && f > -0.0001) |
| 27 #define FX_EDIT_IsFloatEqual(fa,fb)» » » » » FX_EDIT_
IsFloatZero(fa - fb) | 27 #define FX_EDIT_IsFloatEqual(fa, fb) FX_EDIT_IsFloatZero(fa - fb) |
| 28 #define FX_EDIT_IsFloatBigger(fa,fb)» » » » (fa > fb && !FX_
EDIT_IsFloatEqual(fa,fb)) | 28 #define FX_EDIT_IsFloatBigger(fa, fb) (fa > fb && !FX_EDIT_IsFloatEqual(fa, fb)) |
| 29 #define FX_EDIT_IsFloatSmaller(fa,fb)» » » » (fa < fb && !FX_
EDIT_IsFloatEqual(fa,fb)) | 29 #define FX_EDIT_IsFloatSmaller(fa, fb) \ |
| 30 | 30 (fa < fb && !FX_EDIT_IsFloatEqual(fa, fb)) |
| 31 template<class T> T FX_EDIT_MIN (const T & i, const T & j) { return ((i < j) ? i
: j); } | 31 |
| 32 template<class T> T FX_EDIT_MAX (const T & i, const T & j) { return ((i > j) ? i
: j); } | 32 template <class T> |
| 33 | 33 T FX_EDIT_MIN(const T& i, const T& j) { |
| 34 #define»FX_EDIT_PI» » » » » » » »
» 3.14159265358979f | 34 return ((i < j) ? i : j); |
| 35 #define FX_EDIT_ITALIC_ANGEL» » » » » » 10 * FX_
EDIT_PI / 180.0f | 35 } |
| 36 | 36 template <class T> |
| 37 T FX_EDIT_MAX(const T& i, const T& j) { |
| 38 return ((i > j) ? i : j); |
| 39 } |
| 40 |
| 41 #define FX_EDIT_PI 3.14159265358979f |
| 42 #define FX_EDIT_ITALIC_ANGEL 10 * FX_EDIT_PI / 180.0f |
| 37 | 43 |
| 38 /* ------------------------- CFX_Edit_Refresh ---------------------------- */ | 44 /* ------------------------- CFX_Edit_Refresh ---------------------------- */ |
| 39 | 45 |
| 40 enum REFRESH_PLAN_E | 46 enum REFRESH_PLAN_E { RP_ANALYSE, RP_NOANALYSE, RP_OPTIONAL }; |
| 41 { | 47 |
| 42 » RP_ANALYSE, | 48 enum EDIT_PROPS_E { |
| 43 » RP_NOANALYSE, | 49 EP_LINELEADING, |
| 44 » RP_OPTIONAL | 50 EP_LINEINDENT, |
| 45 }; | 51 EP_ALIGNMENT, |
| 46 | 52 EP_FONTINDEX, |
| 47 enum EDIT_PROPS_E | 53 EP_FONTSIZE, |
| 48 { | 54 EP_WORDCOLOR, |
| 49 » EP_LINELEADING, | 55 EP_SCRIPTTYPE, |
| 50 » EP_LINEINDENT, | 56 EP_UNDERLINE, |
| 51 » EP_ALIGNMENT, | 57 EP_CROSSOUT, |
| 52 » EP_FONTINDEX, | 58 EP_CHARSPACE, |
| 53 » EP_FONTSIZE, | 59 EP_HORZSCALE, |
| 54 » EP_WORDCOLOR, | 60 EP_BOLD, |
| 55 » EP_SCRIPTTYPE, | 61 EP_ITALIC |
| 56 » EP_UNDERLINE, | 62 }; |
| 57 » EP_CROSSOUT, | 63 |
| 58 » EP_CHARSPACE, | 64 struct CFX_Edit_LineRect { |
| 59 » EP_HORZSCALE, | 65 CFX_Edit_LineRect(const CPVT_WordRange& wrLine, const CPDF_Rect& rcLine) |
| 60 » EP_BOLD, | 66 : m_wrLine(wrLine), m_rcLine(rcLine) {} |
| 61 » EP_ITALIC | 67 |
| 62 }; | 68 FX_BOOL operator!=(const CFX_Edit_LineRect& linerect) const { |
| 63 | 69 return FXSYS_memcmp(this, &linerect, sizeof(CFX_Edit_LineRect)) != 0; |
| 64 struct CFX_Edit_LineRect | 70 } |
| 65 { | 71 |
| 66 » CFX_Edit_LineRect(const CPVT_WordRange & wrLine,const CPDF_Rect & rcLine
) : | 72 FX_BOOL IsSameHeight(const CFX_Edit_LineRect& linerect) const { |
| 67 » » m_wrLine(wrLine), m_rcLine(rcLine) | 73 return FX_EDIT_IsFloatZero( |
| 68 » { | 74 (m_rcLine.top - m_rcLine.bottom) - |
| 69 » } | 75 (linerect.m_rcLine.top - linerect.m_rcLine.bottom)); |
| 70 | 76 } |
| 71 » FX_BOOL operator != (const CFX_Edit_LineRect & linerect) const | 77 |
| 72 » { | 78 FX_BOOL IsSameTop(const CFX_Edit_LineRect& linerect) const { |
| 73 » » return FXSYS_memcmp(this, &linerect, sizeof(CFX_Edit_LineRect))
!= 0; | 79 return FX_EDIT_IsFloatZero(m_rcLine.top - linerect.m_rcLine.top); |
| 74 » } | 80 } |
| 75 | 81 |
| 76 » FX_BOOL IsSameHeight(const CFX_Edit_LineRect & linerect) const | 82 FX_BOOL IsSameLeft(const CFX_Edit_LineRect& linerect) const { |
| 77 » { | 83 return FX_EDIT_IsFloatZero(m_rcLine.left - linerect.m_rcLine.left); |
| 78 » » return FX_EDIT_IsFloatZero((m_rcLine.top - m_rcLine.bottom) - (l
inerect.m_rcLine.top -linerect.m_rcLine.bottom)); | 84 } |
| 79 » } | 85 |
| 80 | 86 FX_BOOL IsSameRight(const CFX_Edit_LineRect& linerect) const { |
| 81 » FX_BOOL IsSameTop(const CFX_Edit_LineRect & linerect) const | 87 return FX_EDIT_IsFloatZero(m_rcLine.right - linerect.m_rcLine.right); |
| 82 » { | 88 } |
| 83 » » return FX_EDIT_IsFloatZero(m_rcLine.top - linerect.m_rcLine.top)
; | 89 |
| 84 » } | 90 CPVT_WordRange m_wrLine; |
| 85 | 91 CPDF_Rect m_rcLine; |
| 86 » FX_BOOL IsSameLeft(const CFX_Edit_LineRect & linerect) const | 92 }; |
| 87 » { | 93 |
| 88 » » return FX_EDIT_IsFloatZero(m_rcLine.left - linerect.m_rcLine.lef
t); | 94 class CFX_Edit_LineRectArray { |
| 89 » } | 95 public: |
| 90 | 96 CFX_Edit_LineRectArray() {} |
| 91 » FX_BOOL IsSameRight(const CFX_Edit_LineRect & linerect) const | 97 |
| 92 » { | 98 virtual ~CFX_Edit_LineRectArray() { Empty(); } |
| 93 » » return FX_EDIT_IsFloatZero(m_rcLine.right - linerect.m_rcLine.ri
ght); | 99 |
| 94 » } | 100 void Empty() { |
| 95 | 101 for (int32_t i = 0, sz = m_LineRects.GetSize(); i < sz; i++) |
| 96 » CPVT_WordRange» » » » » » » m_wrLine
; | 102 delete m_LineRects.GetAt(i); |
| 97 » CPDF_Rect» » » » » » » »
m_rcLine; | 103 |
| 98 }; | 104 m_LineRects.RemoveAll(); |
| 99 | 105 } |
| 100 class CFX_Edit_LineRectArray | 106 |
| 101 { | 107 void RemoveAll() { m_LineRects.RemoveAll(); } |
| 102 public: | 108 |
| 103 » CFX_Edit_LineRectArray() | 109 void operator=(CFX_Edit_LineRectArray& rects) { |
| 104 » { | 110 Empty(); |
| 105 » } | 111 for (int32_t i = 0, sz = rects.GetSize(); i < sz; i++) |
| 106 | 112 m_LineRects.Add(rects.GetAt(i)); |
| 107 » virtual ~CFX_Edit_LineRectArray() | 113 |
| 108 » { | 114 rects.RemoveAll(); |
| 109 » » Empty(); | 115 } |
| 110 » } | 116 |
| 111 | 117 void Add(const CPVT_WordRange& wrLine, const CPDF_Rect& rcLine) { |
| 112 » void Empty() | 118 if (CFX_Edit_LineRect* pRect = new CFX_Edit_LineRect(wrLine, rcLine)) |
| 113 » { | 119 m_LineRects.Add(pRect); |
| 114 » » for (int32_t i = 0, sz = m_LineRects.GetSize(); i < sz; i++) | 120 } |
| 115 » » » delete m_LineRects.GetAt(i); | 121 |
| 116 | 122 int32_t GetSize() const { return m_LineRects.GetSize(); } |
| 117 » » m_LineRects.RemoveAll(); | 123 |
| 118 » } | 124 CFX_Edit_LineRect* GetAt(int32_t nIndex) const { |
| 119 | 125 if (nIndex < 0 || nIndex >= m_LineRects.GetSize()) |
| 120 » void RemoveAll() | 126 return NULL; |
| 121 » { | 127 |
| 122 » » m_LineRects.RemoveAll(); | 128 return m_LineRects.GetAt(nIndex); |
| 123 » } | 129 } |
| 124 | 130 |
| 125 » void operator = (CFX_Edit_LineRectArray & rects) | 131 CFX_ArrayTemplate<CFX_Edit_LineRect*> m_LineRects; |
| 126 » { | 132 }; |
| 127 » » Empty(); | 133 |
| 128 » » for (int32_t i = 0, sz = rects.GetSize(); i < sz; i++) | 134 class CFX_Edit_RectArray { |
| 129 » » » m_LineRects.Add(rects.GetAt(i)); | 135 public: |
| 130 | 136 CFX_Edit_RectArray() {} |
| 131 » » rects.RemoveAll(); | 137 |
| 132 » } | 138 virtual ~CFX_Edit_RectArray() { Empty(); } |
| 133 | 139 |
| 134 » void Add(const CPVT_WordRange & wrLine,const CPDF_Rect & rcLine) | 140 void Empty() { |
| 135 » { | 141 for (int32_t i = 0, sz = m_Rects.GetSize(); i < sz; i++) |
| 136 » » if (CFX_Edit_LineRect * pRect = new CFX_Edit_LineRect(wrLine,rcL
ine)) | 142 delete m_Rects.GetAt(i); |
| 137 » » » m_LineRects.Add(pRect); | 143 |
| 138 » } | 144 m_Rects.RemoveAll(); |
| 139 | 145 } |
| 140 » int32_t GetSize() const | 146 |
| 141 » { | 147 void Add(const CPDF_Rect& rect) { |
| 142 » » return m_LineRects.GetSize(); | 148 // check for overlaped area |
| 143 » } | 149 for (int32_t i = 0, sz = m_Rects.GetSize(); i < sz; i++) |
| 144 | 150 if (CPDF_Rect* pRect = m_Rects.GetAt(i)) |
| 145 » CFX_Edit_LineRect * GetAt(int32_t nIndex) const | 151 if (pRect->Contains(rect)) |
| 146 » { | 152 return; |
| 147 » » if (nIndex < 0 || nIndex >= m_LineRects.GetSize()) | 153 |
| 148 » » » return NULL; | 154 if (CPDF_Rect* pNewRect = new CPDF_Rect(rect)) |
| 149 | 155 m_Rects.Add(pNewRect); |
| 150 » » return m_LineRects.GetAt(nIndex); | 156 } |
| 151 » } | 157 |
| 152 | 158 int32_t GetSize() const { return m_Rects.GetSize(); } |
| 153 » CFX_ArrayTemplate<CFX_Edit_LineRect*>» » m_LineRects; | 159 |
| 154 }; | 160 CPDF_Rect* GetAt(int32_t nIndex) const { |
| 155 | 161 if (nIndex < 0 || nIndex >= m_Rects.GetSize()) |
| 156 class CFX_Edit_RectArray | 162 return NULL; |
| 157 { | 163 |
| 158 public: | 164 return m_Rects.GetAt(nIndex); |
| 159 » CFX_Edit_RectArray() | 165 } |
| 160 » { | 166 |
| 161 » } | 167 CFX_ArrayTemplate<CPDF_Rect*> m_Rects; |
| 162 | 168 }; |
| 163 » virtual ~CFX_Edit_RectArray() | 169 |
| 164 » { | 170 class CFX_Edit_Refresh { |
| 165 » » Empty(); | 171 public: |
| 166 » } | 172 CFX_Edit_Refresh(); |
| 167 | 173 virtual ~CFX_Edit_Refresh(); |
| 168 » void Empty() | 174 |
| 169 » { | 175 void BeginRefresh(); |
| 170 » » for (int32_t i = 0, sz = m_Rects.GetSize(); i < sz; i++) | 176 void Push(const CPVT_WordRange& linerange, const CPDF_Rect& rect); |
| 171 » » » delete m_Rects.GetAt(i); | 177 void NoAnalyse(); |
| 172 | 178 void Analyse(int32_t nAlignment); |
| 173 » » m_Rects.RemoveAll(); | 179 void AddRefresh(const CPDF_Rect& rect); |
| 174 » } | 180 const CFX_Edit_RectArray* GetRefreshRects() const; |
| 175 | 181 void EndRefresh(); |
| 176 » void Add(const CPDF_Rect & rect) | 182 |
| 177 » { | 183 private: |
| 178 » » //check for overlaped area | 184 CFX_Edit_LineRectArray m_NewLineRects; |
| 179 » » for (int32_t i = 0, sz = m_Rects.GetSize(); i < sz; i++) | 185 CFX_Edit_LineRectArray m_OldLineRects; |
| 180 » » » if (CPDF_Rect * pRect = m_Rects.GetAt(i)) | 186 CFX_Edit_RectArray m_RefreshRects; |
| 181 » » » » if (pRect->Contains(rect))return; | 187 }; |
| 182 | |
| 183 » » if (CPDF_Rect * pNewRect = new CPDF_Rect(rect)) | |
| 184 » » » m_Rects.Add(pNewRect); | |
| 185 » } | |
| 186 | |
| 187 » int32_t GetSize() const | |
| 188 » { | |
| 189 » » return m_Rects.GetSize(); | |
| 190 » } | |
| 191 | |
| 192 » CPDF_Rect * GetAt(int32_t nIndex) const | |
| 193 » { | |
| 194 » » if (nIndex < 0 || nIndex >= m_Rects.GetSize()) | |
| 195 » » » return NULL; | |
| 196 | |
| 197 » » return m_Rects.GetAt(nIndex); | |
| 198 » } | |
| 199 | |
| 200 » CFX_ArrayTemplate<CPDF_Rect*>» » » m_Rects; | |
| 201 }; | |
| 202 | |
| 203 class CFX_Edit_Refresh | |
| 204 { | |
| 205 public: | |
| 206 » CFX_Edit_Refresh(); | |
| 207 » virtual ~CFX_Edit_Refresh(); | |
| 208 | |
| 209 » void» » » » » » » » »
BeginRefresh(); | |
| 210 » void» » » » » » » » »
Push(const CPVT_WordRange & linerange,const CPDF_Rect & rect); | |
| 211 » void» » » » » » » » »
NoAnalyse(); | |
| 212 » void» » » » » » » » »
Analyse(int32_t nAlignment); | |
| 213 » void» » » » » » » » »
AddRefresh(const CPDF_Rect & rect); | |
| 214 » const CFX_Edit_RectArray *» » » » GetRefreshRects(
) const; | |
| 215 » void» » » » » » » » »
EndRefresh(); | |
| 216 | |
| 217 private: | |
| 218 » CFX_Edit_LineRectArray» » » » » m_NewLineRects; | |
| 219 » CFX_Edit_LineRectArray» » » » » m_OldLineRects; | |
| 220 » CFX_Edit_RectArray» » » » » » m_Refres
hRects; | |
| 221 }; | |
| 222 | |
| 223 | 188 |
| 224 /* ------------------------- CFX_Edit_Select ---------------------------- */ | 189 /* ------------------------- CFX_Edit_Select ---------------------------- */ |
| 225 | 190 |
| 226 class CFX_Edit_Select | 191 class CFX_Edit_Select { |
| 227 { | 192 public: |
| 228 public: | 193 CFX_Edit_Select() {} |
| 229 » CFX_Edit_Select() | 194 |
| 230 » { | 195 CFX_Edit_Select(const CPVT_WordPlace& begin, const CPVT_WordPlace& end) { |
| 231 » } | 196 Set(begin, end); |
| 232 | 197 } |
| 233 » CFX_Edit_Select(const CPVT_WordPlace & begin,const CPVT_WordPlace & end) | 198 |
| 234 » { | 199 CFX_Edit_Select(const CPVT_WordRange& range) { |
| 235 » » Set(begin,end); | 200 Set(range.BeginPos, range.EndPos); |
| 236 » } | 201 } |
| 237 | 202 |
| 238 » CFX_Edit_Select(const CPVT_WordRange & range) | 203 CPVT_WordRange ConvertToWordRange() const { |
| 239 » { | 204 return CPVT_WordRange(BeginPos, EndPos); |
| 240 » » Set(range.BeginPos,range.EndPos); | 205 } |
| 241 » } | 206 |
| 242 | 207 void Default() { |
| 243 » CPVT_WordRange ConvertToWordRange() const | 208 BeginPos.Default(); |
| 244 » { | 209 EndPos.Default(); |
| 245 » » return CPVT_WordRange(BeginPos, EndPos); | 210 } |
| 246 » } | 211 |
| 247 | 212 void Set(const CPVT_WordPlace& begin, const CPVT_WordPlace& end) { |
| 248 » void Default() | 213 BeginPos = begin; |
| 249 » { | 214 EndPos = end; |
| 250 » » BeginPos.Default(); | 215 } |
| 251 » » EndPos.Default(); | 216 |
| 252 » } | 217 void SetBeginPos(const CPVT_WordPlace& begin) { BeginPos = begin; } |
| 253 | 218 |
| 254 » void Set(const CPVT_WordPlace & begin,const CPVT_WordPlace & end) | 219 void SetEndPos(const CPVT_WordPlace& end) { EndPos = end; } |
| 255 » { | 220 |
| 256 » » BeginPos = begin; | 221 FX_BOOL IsExist() const { return BeginPos != EndPos; } |
| 257 » » EndPos = end; | 222 |
| 258 » } | 223 FX_BOOL operator!=(const CPVT_WordRange& wr) const { |
| 259 | 224 return wr.BeginPos != BeginPos || wr.EndPos != EndPos; |
| 260 » void SetBeginPos(const CPVT_WordPlace & begin) | 225 } |
| 261 » { | 226 |
| 262 » » BeginPos = begin; | 227 CPVT_WordPlace BeginPos, EndPos; |
| 263 » } | |
| 264 | |
| 265 » void SetEndPos(const CPVT_WordPlace & end) | |
| 266 » { | |
| 267 » » EndPos = end; | |
| 268 » } | |
| 269 | |
| 270 » FX_BOOL IsExist() const | |
| 271 » { | |
| 272 » » return BeginPos != EndPos; | |
| 273 » } | |
| 274 | |
| 275 » FX_BOOL operator != (const CPVT_WordRange & wr) const | |
| 276 » { | |
| 277 » » return wr.BeginPos != BeginPos || wr.EndPos != EndPos; | |
| 278 » } | |
| 279 | |
| 280 » CPVT_WordPlace BeginPos,EndPos; | |
| 281 }; | 228 }; |
| 282 | 229 |
| 283 /* ------------------------- CFX_Edit_Undo ---------------------------- */ | 230 /* ------------------------- CFX_Edit_Undo ---------------------------- */ |
| 284 | 231 |
| 285 class CFX_Edit_Undo | 232 class CFX_Edit_Undo { |
| 286 { | 233 public: |
| 287 public: | 234 CFX_Edit_Undo(int32_t nBufsize = 10000); |
| 288 CFX_Edit_Undo(int32_t nBufsize = 10000); | 235 virtual ~CFX_Edit_Undo(); |
| 289 virtual ~CFX_Edit_Undo(); | 236 |
| 290 | 237 void Undo(); |
| 291 void
Undo(); | 238 void Redo(); |
| 292 void
Redo(); | 239 |
| 293 | 240 void AddItem(IFX_Edit_UndoItem* pItem); |
| 294 void
AddItem(IFX_Edit_UndoItem* pItem); | 241 |
| 295 | 242 FX_BOOL CanUndo() const; |
| 296 FX_BOOL
CanUndo() const; | 243 FX_BOOL CanRedo() const; |
| 297 FX_BOOL
CanRedo() const; | 244 FX_BOOL IsModified() const; |
| 298 FX_BOOL
IsModified() const; | 245 FX_BOOL IsWorking() const; |
| 299 FX_BOOL
IsWorking() const; | 246 |
| 300 | 247 void Reset(); |
| 301 void
Reset(); | 248 |
| 302 | 249 IFX_Edit_UndoItem* GetItem(int32_t nIndex); |
| 303 IFX_Edit_UndoItem* GetItem(
int32_t nIndex); | 250 int32_t GetItemCount() { return m_UndoItemStack.GetSize(); } |
| 304 int32_t GetItemC
ount(){return m_UndoItemStack.GetSize();} | 251 int32_t GetCurUndoPos() { return m_nCurUndoPos; } |
| 305 int32_t GetCurUn
doPos(){return m_nCurUndoPos;} | 252 |
| 306 | 253 private: |
| 307 private: | 254 void SetBufSize(int32_t nSize) { m_nBufSize = nSize; } |
| 308 void
SetBufSize(int32_t nSize){m_nBufSize = nSize;} | 255 int32_t GetBufSize() { return m_nBufSize; } |
| 309 int32_t GetBufSi
ze(){return m_nBufSize;} | 256 |
| 310 | 257 void RemoveHeads(); |
| 311 void
RemoveHeads(); | 258 void RemoveTails(); |
| 312 void
RemoveTails(); | 259 |
| 313 | 260 private: |
| 314 private: | 261 CFX_ArrayTemplate<IFX_Edit_UndoItem*> m_UndoItemStack; |
| 315 CFX_ArrayTemplate<IFX_Edit_UndoItem*> m_UndoItemStack; | 262 |
| 316 | 263 int32_t m_nCurUndoPos; |
| 317 int32_t m_nCurUn
doPos; | 264 int32_t m_nBufSize; |
| 318 int32_t m_nBufSi
ze; | 265 FX_BOOL m_bModified; |
| 319 FX_BOOL
m_bModified; | 266 FX_BOOL m_bVirgin; |
| 320 FX_BOOL
m_bVirgin; | 267 FX_BOOL m_bWorking; |
| 321 FX_BOOL
m_bWorking; | 268 }; |
| 322 }; | 269 |
| 323 | 270 class CFX_Edit_UndoItem : public IFX_Edit_UndoItem { |
| 324 class CFX_Edit_UndoItem : public IFX_Edit_UndoItem | 271 public: |
| 325 { | 272 CFX_Edit_UndoItem() : m_bFirst(TRUE), m_bLast(TRUE) {} |
| 326 public: | 273 |
| 327 CFX_Edit_UndoItem() : m_bFirst(TRUE), m_bLast(TRUE) {} | 274 CFX_WideString GetUndoTitle() override { return L""; } |
| 328 | 275 |
| 329 CFX_WideString GetUndoTitle() override { return L""; } | 276 void SetFirst(FX_BOOL bFirst) { m_bFirst = bFirst; } |
| 330 | 277 FX_BOOL IsFirst() { return m_bFirst; } |
| 331 void
SetFirst(FX_BOOL bFirst){m_bFirst = bFirst;} | 278 void SetLast(FX_BOOL bLast) { m_bLast = bLast; } |
| 332 FX_BOOL
IsFirst(){return m_bFirst;} | 279 FX_BOOL IsLast() { return m_bLast; } |
| 333 void
SetLast(FX_BOOL bLast){m_bLast = bLast;} | 280 |
| 334 FX_BOOL
IsLast(){return m_bLast;} | 281 private: |
| 335 | 282 FX_BOOL m_bFirst; |
| 336 private: | 283 FX_BOOL m_bLast; |
| 337 FX_BOOL
m_bFirst; | 284 }; |
| 338 FX_BOOL
m_bLast; | 285 |
| 339 }; | 286 class CFX_Edit_GroupUndoItem : public IFX_Edit_UndoItem { |
| 340 | 287 public: |
| 341 class CFX_Edit_GroupUndoItem : public IFX_Edit_UndoItem | 288 CFX_Edit_GroupUndoItem(const CFX_WideString& sTitle); |
| 342 { | 289 ~CFX_Edit_GroupUndoItem() override; |
| 343 public: | 290 |
| 344 CFX_Edit_GroupUndoItem(const CFX_WideString& sTitle); | 291 void Undo() override; |
| 345 ~CFX_Edit_GroupUndoItem() override; | 292 void Redo() override; |
| 346 | 293 CFX_WideString GetUndoTitle() override; |
| 347 void Undo() override; | 294 |
| 348 void Redo() override; | 295 void AddUndoItem(CFX_Edit_UndoItem* pUndoItem); |
| 349 CFX_WideString GetUndoTitle() override; | 296 void UpdateItems(); |
| 350 | 297 |
| 351 void
AddUndoItem(CFX_Edit_UndoItem* pUndoItem); | 298 private: |
| 352 void
UpdateItems(); | 299 CFX_WideString m_sTitle; |
| 353 | 300 CFX_ArrayTemplate<CFX_Edit_UndoItem*> m_Items; |
| 354 private: | 301 }; |
| 355 CFX_WideString m_sTitle
; | 302 |
| 356 CFX_ArrayTemplate<CFX_Edit_UndoItem*> m_Items; | 303 /* ------------------------- CFX_Edit_UndoItem derived classes |
| 357 }; | 304 * ---------------------------- */ |
| 358 | 305 |
| 359 /* ------------------------- CFX_Edit_UndoItem derived classes -----------------
----------- */ | 306 class CFXEU_InsertWord : public CFX_Edit_UndoItem { |
| 360 | 307 public: |
| 361 class CFXEU_InsertWord : public CFX_Edit_UndoItem | 308 CFXEU_InsertWord(CFX_Edit* pEdit, |
| 362 { | 309 const CPVT_WordPlace& wpOldPlace, |
| 363 public: | 310 const CPVT_WordPlace& wpNewPlace, |
| 364 CFXEU_InsertWord(CFX_Edit * pEdit, const CPVT_WordPlace & wpOldPlace, co
nst CPVT_WordPlace & wpNewPlace, | 311 FX_WORD word, |
| 365 FX_WORD word, int32_t charset, const CPVT_WordProps * pWordProps
); | 312 int32_t charset, |
| 366 virtual ~CFXEU_InsertWord(); | 313 const CPVT_WordProps* pWordProps); |
| 367 | 314 virtual ~CFXEU_InsertWord(); |
| 368 void Redo(); | 315 |
| 369 void Undo(); | 316 void Redo(); |
| 370 | 317 void Undo(); |
| 371 private: | 318 |
| 372 CFX_Edit* m_pEdit; | 319 private: |
| 373 | 320 CFX_Edit* m_pEdit; |
| 374 CPVT_WordPlace m_wpOld; | 321 |
| 375 CPVT_WordPlace m_wpNew; | 322 CPVT_WordPlace m_wpOld; |
| 376 FX_WORD m_Word; | 323 CPVT_WordPlace m_wpNew; |
| 377 int32_t m_nCharset; | 324 FX_WORD m_Word; |
| 378 CPVT_WordProps m_WordProps; | 325 int32_t m_nCharset; |
| 379 }; | 326 CPVT_WordProps m_WordProps; |
| 380 | 327 }; |
| 381 class CFXEU_InsertReturn : public CFX_Edit_UndoItem | 328 |
| 382 { | 329 class CFXEU_InsertReturn : public CFX_Edit_UndoItem { |
| 383 public: | 330 public: |
| 384 CFXEU_InsertReturn(CFX_Edit * pEdit, const CPVT_WordPlace & wpOldPlace,
const CPVT_WordPlace & wpNewPlace, | 331 CFXEU_InsertReturn(CFX_Edit* pEdit, |
| 385 const CPVT_SecProps * p
SecProps, const CPVT_WordProps * pWordProps); | 332 const CPVT_WordPlace& wpOldPlace, |
| 386 virtual ~CFXEU_InsertReturn(); | 333 const CPVT_WordPlace& wpNewPlace, |
| 387 | 334 const CPVT_SecProps* pSecProps, |
| 388 void Redo(); | 335 const CPVT_WordProps* pWordProps); |
| 389 void Undo(); | 336 virtual ~CFXEU_InsertReturn(); |
| 390 | 337 |
| 391 private: | 338 void Redo(); |
| 392 CFX_Edit * m_pEdit; | 339 void Undo(); |
| 393 | 340 |
| 394 CPVT_WordPlace m_wpOld; | 341 private: |
| 395 CPVT_WordPlace m_wpNew; | 342 CFX_Edit* m_pEdit; |
| 396 CPVT_SecProps m_SecProps; | 343 |
| 397 CPVT_WordProps m_WordProps; | 344 CPVT_WordPlace m_wpOld; |
| 398 }; | 345 CPVT_WordPlace m_wpNew; |
| 399 | 346 CPVT_SecProps m_SecProps; |
| 400 class CFXEU_Backspace : public CFX_Edit_UndoItem | 347 CPVT_WordProps m_WordProps; |
| 401 { | 348 }; |
| 402 public: | 349 |
| 403 CFXEU_Backspace(CFX_Edit * pEdit, const CPVT_WordPlace & wpOldPlace, con
st CPVT_WordPlace & wpNewPlace, | 350 class CFXEU_Backspace : public CFX_Edit_UndoItem { |
| 404 FX_WORD word, int32_t charset, | 351 public: |
| 405 const CPVT_SecProps & SecProps,
const CPVT_WordProps & WordProps); | 352 CFXEU_Backspace(CFX_Edit* pEdit, |
| 406 virtual ~CFXEU_Backspace(); | 353 const CPVT_WordPlace& wpOldPlace, |
| 407 | 354 const CPVT_WordPlace& wpNewPlace, |
| 408 void Redo(); | 355 FX_WORD word, |
| 409 void Undo(); | 356 int32_t charset, |
| 410 | 357 const CPVT_SecProps& SecProps, |
| 411 private: | 358 const CPVT_WordProps& WordProps); |
| 412 CFX_Edit * m_pEdit; | 359 virtual ~CFXEU_Backspace(); |
| 413 | 360 |
| 414 CPVT_WordPlace m_wpOld; | 361 void Redo(); |
| 415 CPVT_WordPlace m_wpNew; | 362 void Undo(); |
| 416 FX_WORD m_Word; | 363 |
| 417 int32_t m_nCharset; | 364 private: |
| 418 CPVT_SecProps m_SecProps; | 365 CFX_Edit* m_pEdit; |
| 419 CPVT_WordProps m_WordProps; | 366 |
| 420 }; | 367 CPVT_WordPlace m_wpOld; |
| 421 | 368 CPVT_WordPlace m_wpNew; |
| 422 class CFXEU_Delete : public CFX_Edit_UndoItem | 369 FX_WORD m_Word; |
| 423 { | 370 int32_t m_nCharset; |
| 424 public: | 371 CPVT_SecProps m_SecProps; |
| 425 CFXEU_Delete(CFX_Edit * pEdit, const CPVT_WordPlace & wpOldPlace, const
CPVT_WordPlace & wpNewPlace, | 372 CPVT_WordProps m_WordProps; |
| 426 FX_WORD word, int32_t charset, | 373 }; |
| 427 const CPVT_SecProps & SecProps,
const CPVT_WordProps & WordProps, FX_BOOL bSecEnd); | 374 |
| 428 virtual ~CFXEU_Delete(); | 375 class CFXEU_Delete : public CFX_Edit_UndoItem { |
| 429 | 376 public: |
| 430 void Redo(); | 377 CFXEU_Delete(CFX_Edit* pEdit, |
| 431 void Undo(); | 378 const CPVT_WordPlace& wpOldPlace, |
| 432 | 379 const CPVT_WordPlace& wpNewPlace, |
| 433 private: | 380 FX_WORD word, |
| 434 CFX_Edit * m_pEdit; | 381 int32_t charset, |
| 435 | 382 const CPVT_SecProps& SecProps, |
| 436 CPVT_WordPlace m_wpOld; | 383 const CPVT_WordProps& WordProps, |
| 437 CPVT_WordPlace m_wpNew; | 384 FX_BOOL bSecEnd); |
| 438 FX_WORD m_Word; | 385 virtual ~CFXEU_Delete(); |
| 439 int32_t m_nCharset; | 386 |
| 440 CPVT_SecProps m_SecProps; | 387 void Redo(); |
| 441 CPVT_WordProps m_WordProps; | 388 void Undo(); |
| 442 FX_BOOL m_bSecEnd; | 389 |
| 443 }; | 390 private: |
| 444 | 391 CFX_Edit* m_pEdit; |
| 445 class CFXEU_Clear : public CFX_Edit_UndoItem | 392 |
| 446 { | 393 CPVT_WordPlace m_wpOld; |
| 447 public: | 394 CPVT_WordPlace m_wpNew; |
| 448 CFXEU_Clear(CFX_Edit * pEdit, const CPVT_WordRange & wrSel, const CFX_Wi
deString & swText); | 395 FX_WORD m_Word; |
| 449 virtual ~CFXEU_Clear(); | 396 int32_t m_nCharset; |
| 450 | 397 CPVT_SecProps m_SecProps; |
| 451 void Redo(); | 398 CPVT_WordProps m_WordProps; |
| 452 void Undo(); | 399 FX_BOOL m_bSecEnd; |
| 453 | 400 }; |
| 454 private: | 401 |
| 455 CFX_Edit* m_pEdit; | 402 class CFXEU_Clear : public CFX_Edit_UndoItem { |
| 456 | 403 public: |
| 457 CPVT_WordRange m_wrSel; | 404 CFXEU_Clear(CFX_Edit* pEdit, |
| 458 CFX_WideString m_swText; | 405 const CPVT_WordRange& wrSel, |
| 459 }; | 406 const CFX_WideString& swText); |
| 460 | 407 virtual ~CFXEU_Clear(); |
| 461 class CFXEU_ClearRich : public CFX_Edit_UndoItem | 408 |
| 462 { | 409 void Redo(); |
| 463 public: | 410 void Undo(); |
| 464 CFXEU_ClearRich(CFX_Edit * pEdit, const CPVT_WordPlace & wpOldPlace, con
st CPVT_WordPlace & wpNewPlace, | 411 |
| 465 const CPVT_WordRange & wrSel, | 412 private: |
| 466 FX_WORD word, int32_t charset, | 413 CFX_Edit* m_pEdit; |
| 467 const CPVT_SecProps & SecProps, const
CPVT_WordProps & WordProps); | 414 |
| 468 virtual ~CFXEU_ClearRich(); | 415 CPVT_WordRange m_wrSel; |
| 469 | 416 CFX_WideString m_swText; |
| 470 void Redo(); | 417 }; |
| 471 void Undo(); | 418 |
| 472 | 419 class CFXEU_ClearRich : public CFX_Edit_UndoItem { |
| 473 private: | 420 public: |
| 474 CFX_Edit * m_pEdit; | 421 CFXEU_ClearRich(CFX_Edit* pEdit, |
| 475 | 422 const CPVT_WordPlace& wpOldPlace, |
| 476 CPVT_WordPlace m_wpOld; | 423 const CPVT_WordPlace& wpNewPlace, |
| 477 CPVT_WordPlace m_wpNew; | 424 const CPVT_WordRange& wrSel, |
| 478 CPVT_WordRange m_wrSel; | 425 FX_WORD word, |
| 479 FX_WORD m_Word; | 426 int32_t charset, |
| 480 int32_t m_nCharset; | 427 const CPVT_SecProps& SecProps, |
| 481 CPVT_SecProps m_SecProps; | 428 const CPVT_WordProps& WordProps); |
| 482 CPVT_WordProps m_WordProps; | 429 virtual ~CFXEU_ClearRich(); |
| 483 }; | 430 |
| 484 | 431 void Redo(); |
| 485 class CFXEU_InsertText : public CFX_Edit_UndoItem | 432 void Undo(); |
| 486 { | 433 |
| 487 public: | 434 private: |
| 488 CFXEU_InsertText(CFX_Edit * pEdit, const CPVT_WordPlace & wpOldPlace, co
nst CPVT_WordPlace & wpNewPlace, | 435 CFX_Edit* m_pEdit; |
| 489 const CFX_WideString & swText
, int32_t charset, | 436 |
| 490 const CPVT_SecProps * pSecPro
ps, const CPVT_WordProps * pWordProps); | 437 CPVT_WordPlace m_wpOld; |
| 491 virtual ~CFXEU_InsertText(); | 438 CPVT_WordPlace m_wpNew; |
| 492 | 439 CPVT_WordRange m_wrSel; |
| 493 void Redo(); | 440 FX_WORD m_Word; |
| 494 void Undo(); | 441 int32_t m_nCharset; |
| 495 | 442 CPVT_SecProps m_SecProps; |
| 496 private: | 443 CPVT_WordProps m_WordProps; |
| 497 CFX_Edit * m_pEdit; | 444 }; |
| 498 | 445 |
| 499 CPVT_WordPlace m_wpOld; | 446 class CFXEU_InsertText : public CFX_Edit_UndoItem { |
| 500 CPVT_WordPlace m_wpNew; | 447 public: |
| 501 CFX_WideString m_swText; | 448 CFXEU_InsertText(CFX_Edit* pEdit, |
| 502 int32_t m_nCharset; | 449 const CPVT_WordPlace& wpOldPlace, |
| 503 CPVT_SecProps m_SecProps; | 450 const CPVT_WordPlace& wpNewPlace, |
| 504 CPVT_WordProps m_WordProps; | 451 const CFX_WideString& swText, |
| 505 }; | 452 int32_t charset, |
| 506 | 453 const CPVT_SecProps* pSecProps, |
| 507 class CFXEU_SetSecProps : public CFX_Edit_UndoItem | 454 const CPVT_WordProps* pWordProps); |
| 508 { | 455 virtual ~CFXEU_InsertText(); |
| 509 public: | 456 |
| 510 CFXEU_SetSecProps(CFX_Edit * pEdit, const CPVT_WordPlace & place, EDIT_P
ROPS_E ep, | 457 void Redo(); |
| 511 const CPVT_SecProps & oldsecprops, const CPVT_WordProps & oldwor
dprops, | 458 void Undo(); |
| 512 const CPVT_SecProps & newsecprops, const CPVT_WordProps & newwor
dprops, const CPVT_WordRange & range); | 459 |
| 513 virtual ~CFXEU_SetSecProps(); | 460 private: |
| 514 | 461 CFX_Edit* m_pEdit; |
| 515 void Redo(); | 462 |
| 516 void Undo(); | 463 CPVT_WordPlace m_wpOld; |
| 517 | 464 CPVT_WordPlace m_wpNew; |
| 518 private: | 465 CFX_WideString m_swText; |
| 519 CFX_Edit * m_pEdit; | 466 int32_t m_nCharset; |
| 520 CPVT_WordPlace m_wpPlace; | 467 CPVT_SecProps m_SecProps; |
| 521 CPVT_WordRange m_wrPlace; | 468 CPVT_WordProps m_WordProps; |
| 522 EDIT_PROPS_E m_eProps; | 469 }; |
| 523 | 470 |
| 524 CPVT_SecProps m_OldSecProps; | 471 class CFXEU_SetSecProps : public CFX_Edit_UndoItem { |
| 525 CPVT_SecProps m_NewSecProps; | 472 public: |
| 526 CPVT_WordProps m_OldWordProps; | 473 CFXEU_SetSecProps(CFX_Edit* pEdit, |
| 527 CPVT_WordProps m_NewWordProps; | 474 const CPVT_WordPlace& place, |
| 528 }; | 475 EDIT_PROPS_E ep, |
| 529 | 476 const CPVT_SecProps& oldsecprops, |
| 530 class CFXEU_SetWordProps : public CFX_Edit_UndoItem | 477 const CPVT_WordProps& oldwordprops, |
| 531 { | 478 const CPVT_SecProps& newsecprops, |
| 532 public: | 479 const CPVT_WordProps& newwordprops, |
| 533 CFXEU_SetWordProps(CFX_Edit * pEdit, const CPVT_WordPlace & place, EDIT_
PROPS_E ep, | 480 const CPVT_WordRange& range); |
| 534 const CPVT_WordProps & oldprops, const CPVT_WordProps & newprops
, const CPVT_WordRange & range); | 481 virtual ~CFXEU_SetSecProps(); |
| 535 virtual ~CFXEU_SetWordProps(); | 482 |
| 536 | 483 void Redo(); |
| 537 void Redo(); | 484 void Undo(); |
| 538 void Undo(); | 485 |
| 539 | 486 private: |
| 540 private: | 487 CFX_Edit* m_pEdit; |
| 541 CFX_Edit * m_pEdit; | 488 CPVT_WordPlace m_wpPlace; |
| 542 CPVT_WordPlace m_wpPlace; | 489 CPVT_WordRange m_wrPlace; |
| 543 CPVT_WordRange m_wrPlace; | 490 EDIT_PROPS_E m_eProps; |
| 544 EDIT_PROPS_E m_eProps; | 491 |
| 545 | 492 CPVT_SecProps m_OldSecProps; |
| 546 CPVT_WordProps m_OldWordProps; | 493 CPVT_SecProps m_NewSecProps; |
| 547 CPVT_WordProps m_NewWordProps; | 494 CPVT_WordProps m_OldWordProps; |
| 495 CPVT_WordProps m_NewWordProps; |
| 496 }; |
| 497 |
| 498 class CFXEU_SetWordProps : public CFX_Edit_UndoItem { |
| 499 public: |
| 500 CFXEU_SetWordProps(CFX_Edit* pEdit, |
| 501 const CPVT_WordPlace& place, |
| 502 EDIT_PROPS_E ep, |
| 503 const CPVT_WordProps& oldprops, |
| 504 const CPVT_WordProps& newprops, |
| 505 const CPVT_WordRange& range); |
| 506 virtual ~CFXEU_SetWordProps(); |
| 507 |
| 508 void Redo(); |
| 509 void Undo(); |
| 510 |
| 511 private: |
| 512 CFX_Edit* m_pEdit; |
| 513 CPVT_WordPlace m_wpPlace; |
| 514 CPVT_WordRange m_wrPlace; |
| 515 EDIT_PROPS_E m_eProps; |
| 516 |
| 517 CPVT_WordProps m_OldWordProps; |
| 518 CPVT_WordProps m_NewWordProps; |
| 548 }; | 519 }; |
| 549 | 520 |
| 550 /* ------------------------- CFX_Edit ---------------------------- */ | 521 /* ------------------------- CFX_Edit ---------------------------- */ |
| 551 | 522 |
| 552 class CFX_Edit : public IFX_Edit | 523 class CFX_Edit : public IFX_Edit { |
| 553 { | 524 friend class CFX_Edit_Iterator; |
| 554 friend class CFX_Edit_Iterator; | 525 friend class CFXEU_InsertWord; |
| 555 friend class CFXEU_InsertWord; | 526 friend class CFXEU_InsertReturn; |
| 556 friend class CFXEU_InsertReturn; | 527 friend class CFXEU_Backspace; |
| 557 friend class CFXEU_Backspace; | 528 friend class CFXEU_Delete; |
| 558 friend class CFXEU_Delete; | 529 friend class CFXEU_Clear; |
| 559 friend class CFXEU_Clear; | 530 friend class CFXEU_ClearRich; |
| 560 friend class CFXEU_ClearRich; | 531 friend class CFXEU_SetSecProps; |
| 561 friend class CFXEU_SetSecProps; | 532 friend class CFXEU_SetWordProps; |
| 562 friend class CFXEU_SetWordProps; | 533 friend class CFXEU_InsertText; |
| 563 friend class CFXEU_InsertText; | 534 |
| 564 | 535 public: |
| 565 public: | 536 CFX_Edit(IPDF_VariableText* pVT); |
| 566 CFX_Edit(IPDF_VariableText * pVT); | 537 virtual ~CFX_Edit(); |
| 567 virtual ~CFX_Edit(); | 538 |
| 568 | 539 void SetFontMap(IFX_Edit_FontMap* pFontMap); |
| 569 void
SetFontMap(IFX_Edit_FontMap * pFontMap); | 540 void SetVTProvider(IPDF_VariableText_Provider* pProvider); |
| 570 void
SetVTProvider(IPDF_VariableText_Provider* pProvider); | 541 void SetNotify(IFX_Edit_Notify* pNotify); |
| 571 void
SetNotify(IFX_Edit_Notify * pNotify); | 542 void SetOprNotify(IFX_Edit_OprNotify* pOprNotify); |
| 572 void
SetOprNotify(IFX_Edit_OprNotify* pOprNotify); | 543 IFX_Edit_Iterator* GetIterator(); |
| 573 IFX_Edit_Iterator* GetItera
tor(); | 544 IPDF_VariableText* GetVariableText(); |
| 574 IPDF_VariableText * GetVaria
bleText(); | 545 IFX_Edit_FontMap* GetFontMap(); |
| 575 IFX_Edit_FontMap* GetFontM
ap(); | 546 |
| 576 | 547 void Initialize(); |
| 577 void
Initialize(); | 548 void SetPlateRect(const CPDF_Rect& rect, FX_BOOL bPaint = TRUE); |
| 578 void
SetPlateRect(const CPDF_Rect & rect, FX_BOOL bPaint = TRUE); | 549 void SetScrollPos(const CPDF_Point& point); |
| 579 void
SetScrollPos(const CPDF_Point & point); | 550 |
| 580 | 551 void SetAlignmentH(int32_t nFormat = 0, FX_BOOL bPaint = TRUE); |
| 581 void
SetAlignmentH(int32_t nFormat = 0, FX_BOOL bPaint = TRUE); | 552 void SetAlignmentV(int32_t nFormat = 0, FX_BOOL bPaint = TRUE); |
| 582 void
SetAlignmentV(int32_t nFormat = 0, FX_BOOL bPaint = TRUE); | 553 void SetPasswordChar(FX_WORD wSubWord = '*', FX_BOOL bPaint = TRUE); |
| 583 void
SetPasswordChar(FX_WORD wSubWord = '*', FX_BOOL bPaint = TRUE); | 554 void SetLimitChar(int32_t nLimitChar = 0, FX_BOOL bPaint = TRUE); |
| 584 void
SetLimitChar(int32_t nLimitChar = 0, FX_BOOL bPaint = TRUE); | 555 void SetCharArray(int32_t nCharArray = 0, FX_BOOL bPaint = TRUE); |
| 585 void
SetCharArray(int32_t nCharArray = 0, FX_BOOL bPaint = TRUE); | 556 void SetCharSpace(FX_FLOAT fCharSpace = 0.0f, FX_BOOL bPaint = TRUE); |
| 586 void
SetCharSpace(FX_FLOAT fCharSpace = 0.0f, FX_BOOL bPaint = TRUE); | 557 void SetHorzScale(int32_t nHorzScale = 100, FX_BOOL bPaint = TRUE); |
| 587 void
SetHorzScale(int32_t nHorzScale = 100, FX_BOOL bPaint = TRUE); | 558 void SetLineLeading(FX_FLOAT fLineLeading, FX_BOOL bPaint = TRUE); |
| 588 void
SetLineLeading(FX_FLOAT fLineLeading, FX_BOOL bPaint = TRUE); | 559 void SetMultiLine(FX_BOOL bMultiLine = TRUE, FX_BOOL bPaint = TRUE); |
| 589 void
SetMultiLine(FX_BOOL bMultiLine = TRUE, FX_BOOL bPaint = TRUE); | 560 void SetAutoReturn(FX_BOOL bAuto = TRUE, FX_BOOL bPaint = TRUE); |
| 590 void
SetAutoReturn(FX_BOOL bAuto = TRUE, FX_BOOL bPaint = TRUE); | 561 void SetAutoFontSize(FX_BOOL bAuto = TRUE, FX_BOOL bPaint = TRUE); |
| 591 void
SetAutoFontSize(FX_BOOL bAuto = TRUE, FX_BOOL bPaint = TRUE); | 562 void SetAutoScroll(FX_BOOL bAuto = TRUE, FX_BOOL bPaint = TRUE); |
| 592 void
SetAutoScroll(FX_BOOL bAuto = TRUE, FX_BOOL bPaint = TRUE); | 563 void SetFontSize(FX_FLOAT fFontSize, FX_BOOL bPaint = TRUE); |
| 593 void
SetFontSize(FX_FLOAT fFontSize, FX_BOOL bPaint = TRUE); | 564 void SetTextOverflow(FX_BOOL bAllowed = FALSE, FX_BOOL bPaint = TRUE); |
| 594 void
SetTextOverflow(FX_BOOL bAllowed = FALSE, FX_BOOL bPaint = TRUE); | 565 |
| 595 | 566 FX_BOOL IsRichText() const; |
| 596 FX_BOOL
IsRichText() const; | 567 void SetRichText(FX_BOOL bRichText = TRUE, FX_BOOL bPaint = TRUE); |
| 597 void
SetRichText(FX_BOOL bRichText = TRUE, FX_BOOL bPaint = TRUE); | 568 FX_BOOL SetRichFontSize(FX_FLOAT fFontSize); |
| 598 FX_BOOL
SetRichFontSize(FX_FLOAT fFontSize); | 569 FX_BOOL SetRichFontIndex(int32_t nFontIndex); |
| 599 FX_BOOL
SetRichFontIndex(int32_t nFontIndex); | 570 FX_BOOL SetRichTextColor(FX_COLORREF dwColor); |
| 600 FX_BOOL
SetRichTextColor(FX_COLORREF dwColor); | 571 FX_BOOL SetRichTextScript(int32_t nScriptType); |
| 601 FX_BOOL
SetRichTextScript(int32_t nScriptType); | 572 FX_BOOL SetRichTextBold(FX_BOOL bBold = TRUE); |
| 602 FX_BOOL
SetRichTextBold(FX_BOOL bBold = TRUE); | 573 FX_BOOL SetRichTextItalic(FX_BOOL bItalic = TRUE); |
| 603 FX_BOOL
SetRichTextItalic(FX_BOOL bItalic = TRUE); | 574 FX_BOOL SetRichTextUnderline(FX_BOOL bUnderline = TRUE); |
| 604 FX_BOOL
SetRichTextUnderline(FX_BOOL bUnderline = TRUE); | 575 FX_BOOL SetRichTextCrossout(FX_BOOL bCrossout = TRUE); |
| 605 FX_BOOL
SetRichTextCrossout(FX_BOOL bCrossout = TRUE); | 576 FX_BOOL SetRichTextCharSpace(FX_FLOAT fCharSpace); |
| 606 FX_BOOL
SetRichTextCharSpace(FX_FLOAT fCharSpace); | 577 FX_BOOL SetRichTextHorzScale(int32_t nHorzScale = 100); |
| 607 FX_BOOL
SetRichTextHorzScale(int32_t nHorzScale = 100); | 578 FX_BOOL SetRichTextLineLeading(FX_FLOAT fLineLeading); |
| 608 FX_BOOL
SetRichTextLineLeading(FX_FLOAT fLineLeading); | 579 FX_BOOL SetRichTextLineIndent(FX_FLOAT fLineIndent); |
| 609 FX_BOOL
SetRichTextLineIndent(FX_FLOAT fLineIndent); | 580 FX_BOOL SetRichTextAlignment(int32_t nAlignment); |
| 610 FX_BOOL
SetRichTextAlignment(int32_t nAlignment); | 581 |
| 611 | 582 void OnMouseDown(const CPDF_Point& point, FX_BOOL bShift, FX_BOOL bCtrl); |
| 612 void
OnMouseDown(const CPDF_Point & point,FX_BOOL bShift,FX_BOOL bCtrl); | 583 void OnMouseMove(const CPDF_Point& point, FX_BOOL bShift, FX_BOOL bCtrl); |
| 613 void
OnMouseMove(const CPDF_Point & point,FX_BOOL bShift,FX_BOOL bCtrl); | 584 void OnVK_UP(FX_BOOL bShift, FX_BOOL bCtrl); |
| 614 void
OnVK_UP(FX_BOOL bShift,FX_BOOL bCtrl); | 585 void OnVK_DOWN(FX_BOOL bShift, FX_BOOL bCtrl); |
| 615 void
OnVK_DOWN(FX_BOOL bShift,FX_BOOL bCtrl); | 586 void OnVK_LEFT(FX_BOOL bShift, FX_BOOL bCtrl); |
| 616 void
OnVK_LEFT(FX_BOOL bShift,FX_BOOL bCtrl); | 587 void OnVK_RIGHT(FX_BOOL bShift, FX_BOOL bCtrl); |
| 617 void
OnVK_RIGHT(FX_BOOL bShift,FX_BOOL bCtrl); | 588 void OnVK_HOME(FX_BOOL bShift, FX_BOOL bCtrl); |
| 618 void
OnVK_HOME(FX_BOOL bShift,FX_BOOL bCtrl); | 589 void OnVK_END(FX_BOOL bShift, FX_BOOL bCtrl); |
| 619 void
OnVK_END(FX_BOOL bShift,FX_BOOL bCtrl); | 590 |
| 620 | 591 void SetText(const FX_WCHAR* text, |
| 621 void
SetText(const FX_WCHAR* text,int32_t charset = DEFAULT_CHARSET, | 592 int32_t charset = DEFAULT_CHARSET, |
| 622
const CPVT_SecProps * pSecProps = NULL,const CPVT_WordPr
ops * pWordProps = NULL); | 593 const CPVT_SecProps* pSecProps = NULL, |
| 623 FX_BOOL
InsertWord(FX_WORD word, int32_t charset = DEFAULT_CHARSET, const CPVT_WordProps
* pWordProps = NULL); | 594 const CPVT_WordProps* pWordProps = NULL); |
| 624 FX_BOOL
InsertReturn(const CPVT_SecProps * pSecProps = NULL,const CPVT_WordProps * pWord
Props = NULL); | 595 FX_BOOL InsertWord(FX_WORD word, |
| 625 FX_BOOL
Backspace(); | 596 int32_t charset = DEFAULT_CHARSET, |
| 626 FX_BOOL
Delete(); | 597 const CPVT_WordProps* pWordProps = NULL); |
| 627 FX_BOOL
Clear(); | 598 FX_BOOL InsertReturn(const CPVT_SecProps* pSecProps = NULL, |
| 628 FX_BOOL
Empty(); | 599 const CPVT_WordProps* pWordProps = NULL); |
| 629 FX_BOOL
InsertText(const FX_WCHAR* text, int32_t charset = DEFAULT_CHARSET, | 600 FX_BOOL Backspace(); |
| 630
const CPVT_SecProps * pSecProps = NULL,const CPVT_WordPr
ops * pWordProps = NULL); | 601 FX_BOOL Delete(); |
| 631 FX_BOOL
Redo(); | 602 FX_BOOL Clear(); |
| 632 FX_BOOL
Undo(); | 603 FX_BOOL Empty(); |
| 633 CPVT_WordPlace DoInsert
Text(const CPVT_WordPlace& place, const FX_WCHAR* text, int32_t charset, | 604 FX_BOOL InsertText(const FX_WCHAR* text, |
| 634
const CPVT_SecProps * pSecProps, const CPVT_WordProps * pWordPro
ps); | 605 int32_t charset = DEFAULT_CHARSET, |
| 635 int32_t GetCharS
etFromUnicode(FX_WORD word, int32_t nOldCharset); | 606 const CPVT_SecProps* pSecProps = NULL, |
| 636 | 607 const CPVT_WordProps* pWordProps = NULL); |
| 637 int32_t WordPlac
eToWordIndex(const CPVT_WordPlace & place) const; | 608 FX_BOOL Redo(); |
| 638 CPVT_WordPlace WordInde
xToWordPlace(int32_t index) const; | 609 FX_BOOL Undo(); |
| 639 | 610 CPVT_WordPlace DoInsertText(const CPVT_WordPlace& place, |
| 640 CPVT_WordPlace GetLineB
eginPlace(const CPVT_WordPlace & place) const; | 611 const FX_WCHAR* text, |
| 641 CPVT_WordPlace GetLineE
ndPlace(const CPVT_WordPlace & place) const; | 612 int32_t charset, |
| 642 CPVT_WordPlace GetSecti
onBeginPlace(const CPVT_WordPlace & place) const; | 613 const CPVT_SecProps* pSecProps, |
| 643 CPVT_WordPlace GetSecti
onEndPlace(const CPVT_WordPlace & place) const; | 614 const CPVT_WordProps* pWordProps); |
| 644 CPVT_WordPlace SearchWo
rdPlace(const CPDF_Point& point) const; | 615 int32_t GetCharSetFromUnicode(FX_WORD word, int32_t nOldCharset); |
| 645 | 616 |
| 646 int32_t GetCaret
() const; | 617 int32_t WordPlaceToWordIndex(const CPVT_WordPlace& place) const; |
| 647 CPVT_WordPlace GetCaret
WordPlace() const; | 618 CPVT_WordPlace WordIndexToWordPlace(int32_t index) const; |
| 648 CFX_WideString GetSelTe
xt() const; | 619 |
| 649 CFX_WideString GetText(
) const; | 620 CPVT_WordPlace GetLineBeginPlace(const CPVT_WordPlace& place) const; |
| 650 FX_FLOAT
GetFontSize() const; | 621 CPVT_WordPlace GetLineEndPlace(const CPVT_WordPlace& place) const; |
| 651 FX_WORD
GetPasswordChar() const; | 622 CPVT_WordPlace GetSectionBeginPlace(const CPVT_WordPlace& place) const; |
| 652 CPDF_Point
GetScrollPos() const; | 623 CPVT_WordPlace GetSectionEndPlace(const CPVT_WordPlace& place) const; |
| 653 int32_t GetCharA
rray() const; | 624 CPVT_WordPlace SearchWordPlace(const CPDF_Point& point) const; |
| 654 CPDF_Rect
GetPlateRect() const; | 625 |
| 655 CPDF_Rect
GetContentRect() const; | 626 int32_t GetCaret() const; |
| 656 CFX_WideString GetRange
Text(const CPVT_WordRange & range) const; | 627 CPVT_WordPlace GetCaretWordPlace() const; |
| 657 int32_t GetHorzS
cale() const; | 628 CFX_WideString GetSelText() const; |
| 658 FX_FLOAT
GetCharSpace() const; | 629 CFX_WideString GetText() const; |
| 659 int32_t GetTotal
Words() const; | 630 FX_FLOAT GetFontSize() const; |
| 660 int32_t GetTotal
Lines() const; | 631 FX_WORD GetPasswordChar() const; |
| 661 | 632 CPDF_Point GetScrollPos() const; |
| 662 void
SetSel(int32_t nStartChar,int32_t nEndChar); | 633 int32_t GetCharArray() const; |
| 663 void
GetSel(int32_t & nStartChar, int32_t & nEndChar) const; | 634 CPDF_Rect GetPlateRect() const; |
| 664 | 635 CPDF_Rect GetContentRect() const; |
| 665 private: | 636 CFX_WideString GetRangeText(const CPVT_WordRange& range) const; |
| 666 void
SelectAll(); | 637 int32_t GetHorzScale() const; |
| 667 void
SelectNone(); | 638 FX_FLOAT GetCharSpace() const; |
| 668 void
SetSel(const CPVT_WordPlace & begin,const CPVT_WordPlace & end); | 639 int32_t GetTotalWords() const; |
| 669 FX_BOOL
IsSelected() const; | 640 int32_t GetTotalLines() const; |
| 670 | 641 |
| 671 void
RearrangeAll(); | 642 void SetSel(int32_t nStartChar, int32_t nEndChar); |
| 672 void
RearrangePart(const CPVT_WordRange & range); | 643 void GetSel(int32_t& nStartChar, int32_t& nEndChar) const; |
| 673 void
Paint(); | 644 |
| 674 void
ScrollToCaret(); | 645 private: |
| 675 void
SetScrollInfo(); | 646 void SelectAll(); |
| 676 void
SetScrollPosX(FX_FLOAT fx); | 647 void SelectNone(); |
| 677 void
SetScrollPosY(FX_FLOAT fy); | 648 void SetSel(const CPVT_WordPlace& begin, const CPVT_WordPlace& end); |
| 678 void
SetScrollLimit(); | 649 FX_BOOL IsSelected() const; |
| 679 void
SetContentChanged(); | 650 |
| 680 void
EnableNotify(FX_BOOL bNotify); | 651 void RearrangeAll(); |
| 681 | 652 void RearrangePart(const CPVT_WordRange& range); |
| 682 void
SetText(const FX_WCHAR* text,int32_t charset, | 653 void Paint(); |
| 683
const CPVT_SecProps * pSecProps,const CPVT_WordProps * p
WordProps,FX_BOOL bAddUndo, FX_BOOL bPaint); | 654 void ScrollToCaret(); |
| 684 FX_BOOL
InsertWord(FX_WORD word, int32_t charset, const CPVT_WordProps * pWordProps,FX_B
OOL bAddUndo, FX_BOOL bPaint); | 655 void SetScrollInfo(); |
| 685 FX_BOOL
InsertReturn(const CPVT_SecProps * pSecProps,const CPVT_WordProps * pWordProps,F
X_BOOL bAddUndo, FX_BOOL bPaint); | 656 void SetScrollPosX(FX_FLOAT fx); |
| 686 FX_BOOL
Backspace(FX_BOOL bAddUndo, FX_BOOL bPaint); | 657 void SetScrollPosY(FX_FLOAT fy); |
| 687 FX_BOOL
Delete(FX_BOOL bAddUndo, FX_BOOL bPaint); | 658 void SetScrollLimit(); |
| 688 FX_BOOL
Clear(FX_BOOL bAddUndo, FX_BOOL bPaint); | 659 void SetContentChanged(); |
| 689 FX_BOOL
InsertText(const FX_WCHAR* text, int32_t charset, | 660 void EnableNotify(FX_BOOL bNotify); |
| 690
const CPVT_SecProps * pSecProps,const CPVT_WordProps * pWordProp
s,FX_BOOL bAddUndo, FX_BOOL bPaint); | 661 |
| 691 FX_BOOL
SetRichTextProps(EDIT_PROPS_E eProps, | 662 void SetText(const FX_WCHAR* text, |
| 692
const CPVT_SecProps * pSecProps, const CPVT_WordProps * pWordPro
ps); | 663 int32_t charset, |
| 693 FX_BOOL
SetSecProps(EDIT_PROPS_E eProps, const CPVT_WordPlace & place, | 664 const CPVT_SecProps* pSecProps, |
| 694
const CPVT_SecProps * pSecProps, const CPVT_WordProps * pWordPro
ps, const CPVT_WordRange & wr, FX_BOOL bAddUndo); | 665 const CPVT_WordProps* pWordProps, |
| 695 FX_BOOL
SetWordProps(EDIT_PROPS_E eProps, const CPVT_WordPlace & place, | 666 FX_BOOL bAddUndo, |
| 696
const CPVT_WordProps * pWordProps, const CPVT_WordRange & wr, FX
_BOOL bAddUndo); | 667 FX_BOOL bPaint); |
| 697 void
PaintSetProps(EDIT_PROPS_E eProps, const CPVT_WordRange & wr); | 668 FX_BOOL InsertWord(FX_WORD word, |
| 698 void
PaintInsertText(const CPVT_WordPlace & wpOld, const CPVT_WordPlace & wpNew); | 669 int32_t charset, |
| 699 | 670 const CPVT_WordProps* pWordProps, |
| 700 inline CPDF_Point VTToEdit
(const CPDF_Point & point) const; | 671 FX_BOOL bAddUndo, |
| 701 inline CPDF_Point EditToVT
(const CPDF_Point & point) const; | 672 FX_BOOL bPaint); |
| 702 inline CPDF_Rect VTToEdit
(const CPDF_Rect & rect) const; | 673 FX_BOOL InsertReturn(const CPVT_SecProps* pSecProps, |
| 703 inline CPDF_Rect EditToVT
(const CPDF_Rect & rect) const; | 674 const CPVT_WordProps* pWordProps, |
| 704 | 675 FX_BOOL bAddUndo, |
| 705 void
EnableRefresh(FX_BOOL bRefresh); | 676 FX_BOOL bPaint); |
| 706 void
Refresh(REFRESH_PLAN_E ePlan,const CPVT_WordRange * pRange1 = NULL,const CPVT_Wo
rdRange * pRange2 = NULL); | 677 FX_BOOL Backspace(FX_BOOL bAddUndo, FX_BOOL bPaint); |
| 707 void
RefreshPushLineRects(const CPVT_WordRange & wr); | 678 FX_BOOL Delete(FX_BOOL bAddUndo, FX_BOOL bPaint); |
| 708 void
RefreshPushRandomRects(const CPVT_WordRange & wr); | 679 FX_BOOL Clear(FX_BOOL bAddUndo, FX_BOOL bPaint); |
| 709 void
RefreshWordRange(const CPVT_WordRange& wr); | 680 FX_BOOL InsertText(const FX_WCHAR* text, |
| 710 | 681 int32_t charset, |
| 711 void
SetCaret(int32_t nPos); | 682 const CPVT_SecProps* pSecProps, |
| 712 void
SetCaret(const CPVT_WordPlace & place); | 683 const CPVT_WordProps* pWordProps, |
| 713 void
SetCaretInfo(); | 684 FX_BOOL bAddUndo, |
| 714 void
SetCaretOrigin(); | 685 FX_BOOL bPaint); |
| 715 void
SetCaretChange(); | 686 FX_BOOL SetRichTextProps(EDIT_PROPS_E eProps, |
| 716 | 687 const CPVT_SecProps* pSecProps, |
| 717 CPVT_WordRange GetWhole
WordRange() const; | 688 const CPVT_WordProps* pWordProps); |
| 718 CPVT_WordRange GetVisib
leWordRange() const; | 689 FX_BOOL SetSecProps(EDIT_PROPS_E eProps, |
| 719 CPVT_WordRange GetLatin
WordsRange(const CPVT_WordPlace & place) const; | 690 const CPVT_WordPlace& place, |
| 720 CPVT_WordRange CombineW
ordRange(const CPVT_WordRange & wr1, const CPVT_WordRange & wr2); | 691 const CPVT_SecProps* pSecProps, |
| 721 CPVT_WordRange GetSelec
tWordRange() const; | 692 const CPVT_WordProps* pWordProps, |
| 722 | 693 const CPVT_WordRange& wr, |
| 723 void
EnableUndo(FX_BOOL bUndo); | 694 FX_BOOL bAddUndo); |
| 724 void
EnableOprNotify(FX_BOOL bNotify); | 695 FX_BOOL SetWordProps(EDIT_PROPS_E eProps, |
| 725 | 696 const CPVT_WordPlace& place, |
| 726 FX_BOOL
IsTextFull() const; | 697 const CPVT_WordProps* pWordProps, |
| 727 FX_BOOL
IsTextOverflow() const; | 698 const CPVT_WordRange& wr, |
| 728 FX_BOOL
CanUndo() const; | 699 FX_BOOL bAddUndo); |
| 729 FX_BOOL
CanRedo() const; | 700 void PaintSetProps(EDIT_PROPS_E eProps, const CPVT_WordRange& wr); |
| 730 FX_BOOL
IsModified() const; | 701 void PaintInsertText(const CPVT_WordPlace& wpOld, |
| 731 | 702 const CPVT_WordPlace& wpNew); |
| 732 void
BeginGroupUndo(const CFX_WideString& sTitle); | 703 |
| 733 void
EndGroupUndo(); | 704 inline CPDF_Point VTToEdit(const CPDF_Point& point) const; |
| 734 void
AddEditUndoItem(CFX_Edit_UndoItem* pEditUndoItem); | 705 inline CPDF_Point EditToVT(const CPDF_Point& point) const; |
| 735 void
AddUndoItem(IFX_Edit_UndoItem* pUndoItem); | 706 inline CPDF_Rect VTToEdit(const CPDF_Rect& rect) const; |
| 736 | 707 inline CPDF_Rect EditToVT(const CPDF_Rect& rect) const; |
| 737 void
SetPageInfo(const CPVT_WordPlace& place); | 708 |
| 738 CPVT_WordPlace SearchPa
geEndPlace(const CPVT_WordPlace& wpPageBegin, const CPDF_Point& point) const; | 709 void EnableRefresh(FX_BOOL bRefresh); |
| 739 FX_FLOAT
GetLineTop(const CPVT_WordPlace& place) const; | 710 void Refresh(REFRESH_PLAN_E ePlan, |
| 740 FX_FLOAT
GetLineBottom(const CPVT_WordPlace& place) const; | 711 const CPVT_WordRange* pRange1 = NULL, |
| 741 | 712 const CPVT_WordRange* pRange2 = NULL); |
| 742 private: | 713 void RefreshPushLineRects(const CPVT_WordRange& wr); |
| 743 IPDF_VariableText* m_pVT; | 714 void RefreshPushRandomRects(const CPVT_WordRange& wr); |
| 744 IFX_Edit_Notify* m_pNotif
y; | 715 void RefreshWordRange(const CPVT_WordRange& wr); |
| 745 IFX_Edit_OprNotify* m_pOprNo
tify; | 716 |
| 746 CFX_Edit_Provider* m_pVTPro
vide; | 717 void SetCaret(int32_t nPos); |
| 747 | 718 void SetCaret(const CPVT_WordPlace& place); |
| 748 CPVT_WordPlace m_wpCare
t; | 719 void SetCaretInfo(); |
| 749 CPVT_WordPlace m_wpOldC
aret; | 720 void SetCaretOrigin(); |
| 750 CFX_Edit_Select m_SelSta
te; | 721 void SetCaretChange(); |
| 751 | 722 |
| 752 CPDF_Point
m_ptScrollPos; | 723 CPVT_WordRange GetWholeWordRange() const; |
| 753 CPDF_Point
m_ptRefreshScrollPos; | 724 CPVT_WordRange GetVisibleWordRange() const; |
| 754 FX_BOOL
m_bEnableScroll; | 725 CPVT_WordRange GetLatinWordsRange(const CPVT_WordPlace& place) const; |
| 755 IFX_Edit_Iterator * m_pItera
tor; | 726 CPVT_WordRange CombineWordRange(const CPVT_WordRange& wr1, |
| 756 CFX_Edit_Refresh m_Refres
h; | 727 const CPVT_WordRange& wr2); |
| 757 CPDF_Point
m_ptCaret; | 728 CPVT_WordRange GetSelectWordRange() const; |
| 758 CFX_Edit_Undo m_Undo; | 729 |
| 759 int32_t m_nAlign
ment; | 730 void EnableUndo(FX_BOOL bUndo); |
| 760 FX_BOOL
m_bNotifyFlag; | 731 void EnableOprNotify(FX_BOOL bNotify); |
| 761 FX_BOOL
m_bEnableOverflow; | 732 |
| 762 FX_BOOL
m_bEnableRefresh; | 733 FX_BOOL IsTextFull() const; |
| 763 CPDF_Rect
m_rcOldContent; | 734 FX_BOOL IsTextOverflow() const; |
| 764 FX_BOOL
m_bEnableUndo; | 735 FX_BOOL CanUndo() const; |
| 765 FX_BOOL
m_bNotify; | 736 FX_BOOL CanRedo() const; |
| 766 FX_BOOL
m_bOprNotify; | 737 FX_BOOL IsModified() const; |
| 767 CFX_Edit_GroupUndoItem* m_pGroupUndoItem
; | 738 |
| 739 void BeginGroupUndo(const CFX_WideString& sTitle); |
| 740 void EndGroupUndo(); |
| 741 void AddEditUndoItem(CFX_Edit_UndoItem* pEditUndoItem); |
| 742 void AddUndoItem(IFX_Edit_UndoItem* pUndoItem); |
| 743 |
| 744 void SetPageInfo(const CPVT_WordPlace& place); |
| 745 CPVT_WordPlace SearchPageEndPlace(const CPVT_WordPlace& wpPageBegin, |
| 746 const CPDF_Point& point) const; |
| 747 FX_FLOAT GetLineTop(const CPVT_WordPlace& place) const; |
| 748 FX_FLOAT GetLineBottom(const CPVT_WordPlace& place) const; |
| 749 |
| 750 private: |
| 751 IPDF_VariableText* m_pVT; |
| 752 IFX_Edit_Notify* m_pNotify; |
| 753 IFX_Edit_OprNotify* m_pOprNotify; |
| 754 CFX_Edit_Provider* m_pVTProvide; |
| 755 |
| 756 CPVT_WordPlace m_wpCaret; |
| 757 CPVT_WordPlace m_wpOldCaret; |
| 758 CFX_Edit_Select m_SelState; |
| 759 |
| 760 CPDF_Point m_ptScrollPos; |
| 761 CPDF_Point m_ptRefreshScrollPos; |
| 762 FX_BOOL m_bEnableScroll; |
| 763 IFX_Edit_Iterator* m_pIterator; |
| 764 CFX_Edit_Refresh m_Refresh; |
| 765 CPDF_Point m_ptCaret; |
| 766 CFX_Edit_Undo m_Undo; |
| 767 int32_t m_nAlignment; |
| 768 FX_BOOL m_bNotifyFlag; |
| 769 FX_BOOL m_bEnableOverflow; |
| 770 FX_BOOL m_bEnableRefresh; |
| 771 CPDF_Rect m_rcOldContent; |
| 772 FX_BOOL m_bEnableUndo; |
| 773 FX_BOOL m_bNotify; |
| 774 FX_BOOL m_bOprNotify; |
| 775 CFX_Edit_GroupUndoItem* m_pGroupUndoItem; |
| 768 }; | 776 }; |
| 769 | 777 |
| 770 /* ------------------------- CFX_Edit_Iterator ---------------------------- */ | 778 /* ------------------------- CFX_Edit_Iterator ---------------------------- */ |
| 771 | 779 |
| 772 class CFX_Edit_Iterator : public IFX_Edit_Iterator | 780 class CFX_Edit_Iterator : public IFX_Edit_Iterator { |
| 773 { | 781 public: |
| 774 public: | 782 CFX_Edit_Iterator(CFX_Edit* pEdit, IPDF_VariableText_Iterator* pVTIterator); |
| 775 » CFX_Edit_Iterator(CFX_Edit * pEdit,IPDF_VariableText_Iterator * pVTItera
tor); | 783 virtual ~CFX_Edit_Iterator(); |
| 776 » virtual ~CFX_Edit_Iterator(); | 784 |
| 777 | 785 FX_BOOL NextWord(); |
| 778 » FX_BOOL»» » » » » » » »
NextWord(); | 786 FX_BOOL NextLine(); |
| 779 » FX_BOOL»» » » » » » » »
NextLine(); | 787 FX_BOOL NextSection(); |
| 780 » FX_BOOL»» » » » » » » »
NextSection(); | 788 FX_BOOL PrevWord(); |
| 781 » FX_BOOL»» » » » » » » »
PrevWord(); | 789 FX_BOOL PrevLine(); |
| 782 » FX_BOOL»» » » » » » » »
PrevLine(); | 790 FX_BOOL PrevSection(); |
| 783 » FX_BOOL»» » » » » » » »
PrevSection(); | 791 |
| 784 | 792 FX_BOOL GetWord(CPVT_Word& word) const; |
| 785 » FX_BOOL»» » » » » » » »
GetWord(CPVT_Word & word) const; | 793 FX_BOOL GetLine(CPVT_Line& line) const; |
| 786 » FX_BOOL»» » » » » » » »
GetLine(CPVT_Line & line) const; | 794 FX_BOOL GetSection(CPVT_Section& section) const; |
| 787 » FX_BOOL»» » » » » » » »
GetSection(CPVT_Section & section) const; | 795 void SetAt(int32_t nWordIndex); |
| 788 » void» » » » » » » » »
SetAt(int32_t nWordIndex); | 796 void SetAt(const CPVT_WordPlace& place); |
| 789 » void» » » » » » » » »
SetAt(const CPVT_WordPlace & place); | 797 const CPVT_WordPlace& GetAt() const; |
| 790 » const CPVT_WordPlace &» » » » » GetAt() const; | 798 IFX_Edit* GetEdit() const; |
| 791 » IFX_Edit*» » » » » » » »
GetEdit() const; | 799 |
| 792 | 800 private: |
| 793 private: | 801 CFX_Edit* m_pEdit; |
| 794 » CFX_Edit *» » » » » » » »
m_pEdit; | 802 IPDF_VariableText_Iterator* m_pVTIterator; |
| 795 » IPDF_VariableText_Iterator*» » » » m_pVTIterator; | 803 }; |
| 796 }; | 804 |
| 797 | 805 class CFX_Edit_Provider : public IPDF_VariableText_Provider { |
| 798 class CFX_Edit_Provider : public IPDF_VariableText_Provider | 806 public: |
| 799 { | 807 CFX_Edit_Provider(IFX_Edit_FontMap* pFontMap); |
| 800 public: | 808 virtual ~CFX_Edit_Provider(); |
| 801 » CFX_Edit_Provider(IFX_Edit_FontMap* pFontMap); | 809 |
| 802 » virtual ~CFX_Edit_Provider(); | 810 IFX_Edit_FontMap* GetFontMap(); |
| 803 | 811 |
| 804 » IFX_Edit_FontMap*» » » GetFontMap(); | 812 int32_t GetCharWidth(int32_t nFontIndex, FX_WORD word, int32_t nWordStyle); |
| 805 | 813 int32_t GetTypeAscent(int32_t nFontIndex); |
| 806 » int32_t»» » » » GetCharWidth(int32_t nFontIndex,
FX_WORD word, int32_t nWordStyle); | 814 int32_t GetTypeDescent(int32_t nFontIndex); |
| 807 » int32_t»» » » » GetTypeAscent(int32_t nFontIndex
); | 815 int32_t GetWordFontIndex(FX_WORD word, int32_t charset, int32_t nFontIndex); |
| 808 » int32_t»» » » » GetTypeDescent(int32_t nFontInde
x); | 816 int32_t GetDefaultFontIndex(); |
| 809 » int32_t»» » » » GetWordFontIndex(FX_WORD word, i
nt32_t charset, int32_t nFontIndex); | 817 FX_BOOL IsLatinWord(FX_WORD word); |
| 810 » int32_t»» » » » GetDefaultFontIndex(); | 818 |
| 811 » FX_BOOL»» » » » » IsLatinWord(FX_WORD word
); | 819 private: |
| 812 | 820 IFX_Edit_FontMap* m_pFontMap; |
| 813 private: | |
| 814 » IFX_Edit_FontMap*» » » m_pFontMap; | |
| 815 }; | 821 }; |
| 816 | 822 |
| 817 #endif // FPDFSDK_INCLUDE_FXEDIT_FXET_EDIT_H_ | 823 #endif // FPDFSDK_INCLUDE_FXEDIT_FXET_EDIT_H_ |
| OLD | NEW |