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