Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(83)

Side by Side Diff: fpdfsdk/include/fxedit/fx_edit.h

Issue 842223004: merge to XFA: Fix -Wnon-virtual-dtor compiler warnings. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « fpdfsdk/include/fsdk_annothandler.h ('k') | fpdfsdk/include/javascript/IJavaScript.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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;
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
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
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
OLDNEW
« no previous file with comments | « fpdfsdk/include/fsdk_annothandler.h ('k') | fpdfsdk/include/javascript/IJavaScript.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698