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 _FX_EDIT_H_ | 7 #ifndef _FX_EDIT_H_ |
8 #define _FX_EDIT_H_ | 8 #define _FX_EDIT_H_ |
9 | 9 |
10 #define PVTWORD_STYLE_NORMAL 0x0000L | 10 #define PVTWORD_STYLE_NORMAL 0x0000L |
(...skipping 26 matching lines...) Expand all Loading... | |
37 class IFX_Edit_Iterator; | 37 class IFX_Edit_Iterator; |
38 class IFX_Edit_UndoItem; | 38 class IFX_Edit_UndoItem; |
39 class IFX_Edit; | 39 class IFX_Edit; |
40 class IFX_List_Notify; | 40 class IFX_List_Notify; |
41 class IFX_List; | 41 class IFX_List; |
42 class IFX_SystemHandler; | 42 class IFX_SystemHandler; |
43 | 43 |
44 class IFX_Edit_FontMap | 44 class IFX_Edit_FontMap |
45 { | 45 { |
46 public: | 46 public: |
47 virtual ~IFX_Edit_FontMap() { } | |
47 //map a fontindex to pdf font. | 48 //map a fontindex to pdf font. |
48 virtual CPDF_Font * GetPDFFo nt(FX_INT32 nFontIndex) = 0; | 49 virtual CPDF_Font * GetPDFFo nt(FX_INT32 nFontIndex) = 0; |
49 //get the alias of a pdf font. | 50 //get the alias of a pdf font. |
50 virtual CFX_ByteString GetPDFFontAlias( FX_INT32 nFontIndex) = 0; | 51 virtual CFX_ByteString GetPDFFontAlias( FX_INT32 nFontIndex) = 0; |
51 //get the index of a font that can show a word. | 52 //get the index of a font that can show a word. |
52 virtual FX_INT32 GetWordF ontIndex(FX_WORD word, FX_INT32 charset, FX_INT32 nFontIndex) = 0; | 53 virtual FX_INT32 GetWordF ontIndex(FX_WORD word, FX_INT32 charset, FX_INT32 nFontIndex) = 0; |
53 //get the charcode of word from unicode | 54 //get the charcode of word from unicode |
54 virtual FX_INT32 CharCode FromUnicode(FX_INT32 nFontIndex, FX_WORD word) = 0; | 55 virtual FX_INT32 CharCode FromUnicode(FX_INT32 nFontIndex, FX_WORD word) = 0; |
55 //get the charset of unicode | 56 //get the charset of unicode |
56 virtual FX_INT32 CharSetF romUnicode(FX_WORD word, FX_INT32 nOldCharset) = 0; | 57 virtual FX_INT32 CharSetF romUnicode(FX_WORD word, FX_INT32 nOldCharset) = 0; |
57 }; | 58 }; |
58 | 59 |
59 class IFX_Edit_Notify | 60 class IFX_Edit_Notify |
60 { | 61 { |
61 //this class is implemented by user | |
62 public: | 62 public: |
63 virtual ~IFX_Edit_Notify() { } | |
63 //set the horizontal scrollbar information. | 64 //set the horizontal scrollbar information. |
64 virtual void IOnSetSc rollInfoX(FX_FLOAT fPlateMin, FX_FLOAT fPlateMax, | 65 virtual void IOnSetSc rollInfoX(FX_FLOAT fPlateMin, FX_FLOAT fPlateMax, |
65 FX_FLOAT fContentMin, FX_FLOAT fContentMax, | 66 FX_FLOAT fContentMin, FX_FLOAT fContentMax, |
66 FX_FLOAT fSmallStep, FX_FLOAT fBigStep) = 0; | 67 FX_FLOAT fSmallStep, FX_FLOAT fBigStep) = 0; |
67 //set the vertical scrollbar information. | 68 //set the vertical scrollbar information. |
68 virtual void IOnSetSc rollInfoY(FX_FLOAT fPlateMin, FX_FLOAT fPlateMax, | 69 virtual void IOnSetSc rollInfoY(FX_FLOAT fPlateMin, FX_FLOAT fPlateMax, |
69 FX_FLOAT fContentMin, FX_FLOAT fContentMax, | 70 FX_FLOAT fContentMin, FX_FLOAT fContentMax, |
70 FX_FLOAT fSmallStep, FX_FLOAT fBigStep) = 0; | 71 FX_FLOAT fSmallStep, FX_FLOAT fBigStep) = 0; |
71 //set the position of horizontal scrollbar. | 72 //set the position of horizontal scrollbar. |
72 virtual void IOnSetSc rollPosX(FX_FLOAT fx) = 0; | 73 virtual void IOnSetSc rollPosX(FX_FLOAT fx) = 0; |
73 //set the position of vertical scrollbar. | 74 //set the position of vertical scrollbar. |
74 virtual void IOnSetSc rollPosY(FX_FLOAT fy) = 0; | 75 virtual void IOnSetSc rollPosY(FX_FLOAT fy) = 0; |
75 //set the caret information. | 76 //set the caret information. |
76 virtual void IOnSetCa ret(FX_BOOL bVisible,const CPDF_Point & ptHead,const CPDF_Point & ptFoot, const CPVT_WordPlace& place) = 0; | 77 virtual void IOnSetCa ret(FX_BOOL bVisible,const CPDF_Point & ptHead,const CPDF_Point & ptFoot, const CPVT_WordPlace& place) = 0; |
77 //if the caret position is changed ,send the information of current post ion to user. | 78 //if the caret position is changed ,send the information of current post ion to user. |
78 virtual void IOnCaret Change(const CPVT_SecProps & secProps, const CPVT_WordProps & wordProps) = 0; | 79 virtual void IOnCaret Change(const CPVT_SecProps & secProps, const CPVT_WordProps & wordProps) = 0; |
79 //if the text area is changed, send the information to user. | 80 //if the text area is changed, send the information to user. |
80 virtual void IOnConte ntChange(const CPDF_Rect& rcContent) = 0; | 81 virtual void IOnConte ntChange(const CPDF_Rect& rcContent) = 0; |
81 //Invalidate the rectangle relative to the bounding box of edit. | 82 //Invalidate the rectangle relative to the bounding box of edit. |
82 virtual void IOnInval idateRect(CPDF_Rect * pRect) = 0; | 83 virtual void IOnInval idateRect(CPDF_Rect * pRect) = 0; |
83 }; | 84 }; |
84 | 85 |
85 class IFX_Edit_OprNotify | 86 class IFX_Edit_OprNotify |
86 { | 87 { |
87 //this class is implemented by user | |
88 public: | 88 public: |
89 virtual ~IFX_Edit_OprNotify() { } | |
90 | |
89 //OprType: 0 | 91 //OprType: 0 |
90 virtual void OnInsert Word(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace) = 0; | 92 virtual void OnInsert Word(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace) = 0; |
91 //OprType: 1 | 93 //OprType: 1 |
92 virtual void OnInsert Return(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace) = 0; | 94 virtual void OnInsert Return(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace) = 0; |
93 //OprType: 2 | 95 //OprType: 2 |
94 virtual void OnBackSp ace(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace) = 0; | 96 virtual void OnBackSp ace(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace) = 0; |
95 //OprType: 3 | 97 //OprType: 3 |
96 virtual void OnDelete (const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace) = 0; | 98 virtual void OnDelete (const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace) = 0; |
97 //OprType: 4 | 99 //OprType: 4 |
98 virtual void OnClear( const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace) = 0; | 100 virtual void OnClear( const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace) = 0; |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
136 //get the current position. | 138 //get the current position. |
137 virtual const CPVT_WordPlace & GetAt() const = 0; | 139 virtual const CPVT_WordPlace & GetAt() const = 0; |
138 | 140 |
139 //get the edit which this iterator belongs to | 141 //get the edit which this iterator belongs to |
140 virtual IFX_Edit* GetEdit( ) const = 0; | 142 virtual IFX_Edit* GetEdit( ) const = 0; |
141 }; | 143 }; |
142 | 144 |
143 class IFX_Edit_UndoItem | 145 class IFX_Edit_UndoItem |
144 { | 146 { |
145 public: | 147 public: |
148 virtual void Release( ) = 0; | |
brucedawson
2015/01/09 00:20:49
Same reordering question. Probably fine, but just
Tom Sepez
2015/01/09 01:16:53
Didn't see any casts between IFX_Edit_UndoItem and
| |
146 virtual void Undo() = 0; | 149 virtual void Undo() = 0; |
147 virtual void Redo() = 0; | 150 virtual void Redo() = 0; |
148 virtual CFX_WideString GetUndoTitle() = 0; | 151 virtual CFX_WideString GetUndoTitle() = 0; |
149 » virtual void» » » » » » » Release( ) = 0; | 152 |
153 protected: | |
154 ~IFX_Edit_UndoItem() { } | |
150 }; | 155 }; |
151 | 156 |
152 class FXET_CLASS IFX_Edit | 157 class FXET_CLASS IFX_Edit |
153 { | 158 { |
154 public: | 159 public: |
155 static IFX_Edit* NewEdit( ); | 160 static IFX_Edit* NewEdit( ); |
156 static void DelEdit( IFX_Edit* pEdit); | 161 static void DelEdit( IFX_Edit* pEdit); |
157 | 162 |
158 public: | 163 //set a IFX_Edit_FontMap pointer implemented by user. |
159 » //set a IFX_Edit_FontMap pointer implemented by user. | |
160 virtual void SetFontM ap(IFX_Edit_FontMap* pFontMap) = 0; | 164 virtual void SetFontM ap(IFX_Edit_FontMap* pFontMap) = 0; |
161 //if user don't like to use FontMap, implement VTProvider and set it dir ectly. | 165 //if user don't like to use FontMap, implement VTProvider and set it dir ectly. |
162 virtual void SetVTPro vider(IPDF_VariableText_Provider* pProvider) = 0; | 166 virtual void SetVTPro vider(IPDF_VariableText_Provider* pProvider) = 0; |
163 //set a IFX_Edit_Notify pointer implemented by user. | 167 //set a IFX_Edit_Notify pointer implemented by user. |
164 virtual void SetNotif y(IFX_Edit_Notify * pNotify) = 0; | 168 virtual void SetNotif y(IFX_Edit_Notify * pNotify) = 0; |
165 virtual void SetOprNo tify(IFX_Edit_OprNotify* pOprNotify) = 0; | 169 virtual void SetOprNo tify(IFX_Edit_OprNotify* pOprNotify) = 0; |
166 //get a pointer allocated by CPDF_Edit, by this pointer, user can iterat e the contents of edit, but don't need to release. | 170 //get a pointer allocated by CPDF_Edit, by this pointer, user can iterat e the contents of edit, but don't need to release. |
167 virtual IFX_Edit_Iterator* GetIterator() = 0; | 171 virtual IFX_Edit_Iterator* GetIterator() = 0; |
168 //get a VT pointer relative to this edit. | 172 //get a VT pointer relative to this edit. |
169 virtual IPDF_VariableText* GetVariableText( ) = 0; | 173 virtual IPDF_VariableText* GetVariableText( ) = 0; |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
364 virtual FX_BOOL IsTextFu ll() const = 0; | 368 virtual FX_BOOL IsTextFu ll() const = 0; |
365 virtual FX_BOOL CanUndo( ) const = 0; | 369 virtual FX_BOOL CanUndo( ) const = 0; |
366 virtual FX_BOOL CanRedo( ) const = 0; | 370 virtual FX_BOOL CanRedo( ) const = 0; |
367 //if the content is changed after settext? | 371 //if the content is changed after settext? |
368 virtual FX_BOOL IsModifi ed() const = 0; | 372 virtual FX_BOOL IsModifi ed() const = 0; |
369 //get the total words in edit | 373 //get the total words in edit |
370 virtual FX_INT32 GetTotal Words() const = 0; | 374 virtual FX_INT32 GetTotal Words() const = 0; |
371 | 375 |
372 virtual void AddUndoI tem(IFX_Edit_UndoItem* pUndoItem) = 0; | 376 virtual void AddUndoI tem(IFX_Edit_UndoItem* pUndoItem) = 0; |
373 | 377 |
374 public: | |
375 static CFX_ByteString GetEditAppearanc eStream(IFX_Edit* pEdit, const CPDF_Point & ptOffset, | 378 static CFX_ByteString GetEditAppearanc eStream(IFX_Edit* pEdit, const CPDF_Point & ptOffset, |
376 const CPVT_WordRange* pRange = NULL, | 379 const CPVT_WordRange* pRange = NULL, |
377 FX_BOOL bContinuous = TRUE, FX_WORD SubWord = 0); | 380 FX_BOOL bContinuous = TRUE, FX_WORD SubWord = 0); |
378 static CFX_ByteString GetSelectAppeara nceStream(IFX_Edit* pEdit, const CPDF_Point & ptOffset, const CPVT_WordRange* pR ange = NULL); | 381 static CFX_ByteString GetSelectAppeara nceStream(IFX_Edit* pEdit, const CPDF_Point & ptOffset, const CPVT_WordRange* pR ange = NULL); |
379 static void DrawEdit(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device, IFX_Edit* pEdit, FX_COLORREF crTextFill, FX_COLORREF crTextStroke, | 382 static void DrawEdit(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device, IFX_Edit* pEdit, FX_COLORREF crTextFill, FX_COLORREF crTextStroke, |
380 const CPDF_Rect& rcClip, const CPDF_Point& ptOffset, con st CPVT_WordRange* pRange, IFX_SystemHandler* pSystemHandler, void* pFFLData); | 383 const CPDF_Rect& rcClip, const CPDF_Point& ptOffset, con st CPVT_WordRange* pRange, IFX_SystemHandler* pSystemHandler, void* pFFLData); |
381 static void DrawUnderline(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device, IFX_Edit* pE dit, FX_COLORREF color, | 384 static void DrawUnderline(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device, IFX_Edit* pE dit, FX_COLORREF color, |
382 const CPDF_Rect& rcClip, const CPDF_Point& ptOffset, con st CPVT_WordRange* pRange); | 385 const CPDF_Rect& rcClip, const CPDF_Point& ptOffset, con st CPVT_WordRange* pRange); |
383 static void DrawRichEdit(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device, IFX_Edit* pEd it, | 386 static void DrawRichEdit(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device, IFX_Edit* pEd it, |
384 const CPDF_Rect& rcClip, const CPDF_Point& ptOffset, con st CPVT_WordRange* pRange); | 387 const CPDF_Rect& rcClip, const CPDF_Point& ptOffset, con st CPVT_WordRange* pRange); |
385 static void GeneratePageObjects(CPDF_PageObjects* pPageObjects, IFX_Edit* pEdit, | 388 static void GeneratePageObjects(CPDF_PageObjects* pPageObjects, IFX_Edit* pEdit, |
386 const CPDF_Point& ptOffset, const CPVT_WordRange* pRange , FX_COLORREF crText, CFX_ArrayTemplate<CPDF_TextObject*>& ObjArray); | 389 const CPDF_Point& ptOffset, const CPVT_WordRange* pRange , FX_COLORREF crText, CFX_ArrayTemplate<CPDF_TextObject*>& ObjArray); |
387 static void GenerateRichPageObjects(CPDF_PageObjects* pPageObjects, IFX_Edit* pEdit, | 390 static void GenerateRichPageObjects(CPDF_PageObjects* pPageObjects, IFX_Edit* pEdit, |
388 const CPDF_Point& ptOffset, const CPVT_WordRange* pRange , CFX_ArrayTemplate<CPDF_TextObject*>& ObjArray); | 391 const CPDF_Point& ptOffset, const CPVT_WordRange* pRange , CFX_ArrayTemplate<CPDF_TextObject*>& ObjArray); |
389 static void GenerateUnderlineObjects(CPDF_PageObjects* pPageObjects, IFX_Edit* pEdit, | 392 static void GenerateUnderlineObjects(CPDF_PageObjects* pPageObjects, IFX_Edit* pEdit, |
390 const CPDF_Point& ptOffset, const CPVT_WordRange* pRange , FX_COLORREF color); | 393 const CPDF_Point& ptOffset, const CPVT_WordRange* pRange , FX_COLORREF color); |
394 | |
395 protected: | |
396 ~IFX_Edit() { } | |
391 }; | 397 }; |
392 | 398 |
393 class IFX_List_Notify | 399 class IFX_List_Notify |
394 { | 400 { |
395 //this class is implemented by user | |
396 public: | 401 public: |
402 virtual ~IFX_List_Notify() { } | |
397 //set the horizontal scrollbar information. | 403 //set the horizontal scrollbar information. |
398 virtual void IOnSetSc rollInfoX(FX_FLOAT fPlateMin, FX_FLOAT fPlateMax, | 404 virtual void IOnSetSc rollInfoX(FX_FLOAT fPlateMin, FX_FLOAT fPlateMax, |
399 FX_FLOAT fContentMin, FX_FLOAT fContentMax, | 405 FX_FLOAT fContentMin, FX_FLOAT fContentMax, |
400 FX_FLOAT fSmallStep, FX_FLOAT fBigStep) = 0; | 406 FX_FLOAT fSmallStep, FX_FLOAT fBigStep) = 0; |
401 //set the vertical scrollbar information. | 407 //set the vertical scrollbar information. |
402 virtual void IOnSetSc rollInfoY(FX_FLOAT fPlateMin, FX_FLOAT fPlateMax, | 408 virtual void IOnSetSc rollInfoY(FX_FLOAT fPlateMin, FX_FLOAT fPlateMax, |
403 FX_FLOAT fContentMin, FX_FLOAT fContentMax, | 409 FX_FLOAT fContentMin, FX_FLOAT fContentMax, |
404 FX_FLOAT fSmallStep, FX_FLOAT fBigStep) = 0; | 410 FX_FLOAT fSmallStep, FX_FLOAT fBigStep) = 0; |
405 //set the position of horizontal scrollbar. | 411 //set the position of horizontal scrollbar. |
406 virtual void IOnSetSc rollPosX(FX_FLOAT fx) = 0; | 412 virtual void IOnSetSc rollPosX(FX_FLOAT fx) = 0; |
407 //set the position of vertical scrollbar. | 413 //set the position of vertical scrollbar. |
408 virtual void IOnSetSc rollPosY(FX_FLOAT fy) = 0; | 414 virtual void IOnSetSc rollPosY(FX_FLOAT fy) = 0; |
409 //Invalidate the rectangle relative to the bounding box of edit. | 415 //Invalidate the rectangle relative to the bounding box of edit. |
410 virtual void IOnInval idateRect(CPDF_Rect * pRect) = 0; | 416 virtual void IOnInval idateRect(CPDF_Rect * pRect) = 0; |
411 }; | 417 }; |
412 | 418 |
413 class FXET_CLASS IFX_List | 419 class FXET_CLASS IFX_List |
414 { | 420 { |
415 public: | 421 public: |
416 static IFX_List* NewList( ); | 422 static IFX_List* NewList( ); |
417 static void DelList(IFX_List* pList); | 423 static void DelList(IFX_List* pList); |
418 | 424 |
419 public: | |
420 virtual void SetFontM ap(IFX_Edit_FontMap * pFontMap) = 0; | 425 virtual void SetFontM ap(IFX_Edit_FontMap * pFontMap) = 0; |
421 virtual void SetNotif y(IFX_List_Notify * pNotify) = 0; | 426 virtual void SetNotif y(IFX_List_Notify * pNotify) = 0; |
422 | 427 |
423 virtual void SetPlate Rect(const CPDF_Rect & rect) = 0; | 428 virtual void SetPlate Rect(const CPDF_Rect & rect) = 0; |
424 virtual void SetFontS ize(FX_FLOAT fFontSize) = 0; | 429 virtual void SetFontS ize(FX_FLOAT fFontSize) = 0; |
425 | 430 |
426 virtual CPDF_Rect GetPlate Rect() const = 0; | 431 virtual CPDF_Rect GetPlate Rect() const = 0; |
427 virtual CPDF_Rect GetConte ntRect() const = 0; | 432 virtual CPDF_Rect GetConte ntRect() const = 0; |
428 | 433 |
429 virtual FX_FLOAT GetFontS ize() const = 0; | 434 virtual FX_FLOAT GetFontS ize() const = 0; |
(...skipping 28 matching lines...) Expand all Loading... | |
458 virtual void OnMouseD own(const CPDF_Point & point,FX_BOOL bShift,FX_BOOL bCtrl) = 0; | 463 virtual void OnMouseD own(const CPDF_Point & point,FX_BOOL bShift,FX_BOOL bCtrl) = 0; |
459 virtual void OnMouseM ove(const CPDF_Point & point,FX_BOOL bShift,FX_BOOL bCtrl) = 0; | 464 virtual void OnMouseM ove(const CPDF_Point & point,FX_BOOL bShift,FX_BOOL bCtrl) = 0; |
460 virtual void OnVK_UP( FX_BOOL bShift,FX_BOOL bCtrl) = 0; | 465 virtual void OnVK_UP( FX_BOOL bShift,FX_BOOL bCtrl) = 0; |
461 virtual void OnVK_DOW N(FX_BOOL bShift,FX_BOOL bCtrl) = 0; | 466 virtual void OnVK_DOW N(FX_BOOL bShift,FX_BOOL bCtrl) = 0; |
462 virtual void OnVK_LEF T(FX_BOOL bShift,FX_BOOL bCtrl) = 0; | 467 virtual void OnVK_LEF T(FX_BOOL bShift,FX_BOOL bCtrl) = 0; |
463 virtual void OnVK_RIG HT(FX_BOOL bShift,FX_BOOL bCtrl) = 0; | 468 virtual void OnVK_RIG HT(FX_BOOL bShift,FX_BOOL bCtrl) = 0; |
464 virtual void OnVK_HOM E(FX_BOOL bShift,FX_BOOL bCtrl) = 0; | 469 virtual void OnVK_HOM E(FX_BOOL bShift,FX_BOOL bCtrl) = 0; |
465 virtual void OnVK_END (FX_BOOL bShift,FX_BOOL bCtrl) = 0; | 470 virtual void OnVK_END (FX_BOOL bShift,FX_BOOL bCtrl) = 0; |
466 virtual void OnVK(FX_ INT32 nItemIndex,FX_BOOL bShift,FX_BOOL bCtrl) = 0; | 471 virtual void OnVK(FX_ INT32 nItemIndex,FX_BOOL bShift,FX_BOOL bCtrl) = 0; |
467 virtual FX_BOOL OnChar(F X_WORD nChar,FX_BOOL bShift,FX_BOOL bCtrl) = 0; | 472 virtual FX_BOOL OnChar(F X_WORD nChar,FX_BOOL bShift,FX_BOOL bCtrl) = 0; |
473 | |
474 protected: | |
475 ~IFX_List() { } | |
468 }; | 476 }; |
469 | 477 |
470 #endif | 478 #endif |
471 | 479 |
OLD | NEW |