| 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_FX_EDIT_H_ |    7 #ifndef FPDFSDK_INCLUDE_FXEDIT_FX_EDIT_H_ | 
|    8 #define FPDFSDK_INCLUDE_FXEDIT_FX_EDIT_H_ |    8 #define FPDFSDK_INCLUDE_FXEDIT_FX_EDIT_H_ | 
|    9  |    9  | 
|   10 #include "../../../core/include/fxcrt/fx_basic.h" |   10 #include "../../../core/include/fxcrt/fx_basic.h" | 
| (...skipping 17 matching lines...) Expand all  Loading... | 
|   28 class IPDF_VariableText; |   28 class IPDF_VariableText; | 
|   29 class IPDF_VariableText_Provider; |   29 class IPDF_VariableText_Provider; | 
|   30 struct CPVT_Line; |   30 struct CPVT_Line; | 
|   31 struct CPVT_SecProps; |   31 struct CPVT_SecProps; | 
|   32 struct CPVT_Section; |   32 struct CPVT_Section; | 
|   33 struct CPVT_Word; |   33 struct CPVT_Word; | 
|   34 struct CPVT_WordPlace; |   34 struct CPVT_WordPlace; | 
|   35 struct CPVT_WordProps; |   35 struct CPVT_WordProps; | 
|   36 struct CPVT_WordRange; |   36 struct CPVT_WordRange; | 
|   37  |   37  | 
|   38 #define PVTWORD_STYLE_NORMAL»   »       »       »       0x0000L |   38 #define PVTWORD_STYLE_NORMAL 0x0000L | 
|   39 #define PVTWORD_STYLE_HIGHLIGHT»»       »       »       0x0001L |   39 #define PVTWORD_STYLE_HIGHLIGHT 0x0001L | 
|   40 #define PVTWORD_STYLE_UNDERLINE»»       »       »       0x0002L |   40 #define PVTWORD_STYLE_UNDERLINE 0x0002L | 
|   41 #define PVTWORD_STYLE_CROSSOUT» »       »       »       0x0004L |   41 #define PVTWORD_STYLE_CROSSOUT 0x0004L | 
|   42 #define PVTWORD_STYLE_SQUIGGLY» »       »       »       0x0008L |   42 #define PVTWORD_STYLE_SQUIGGLY 0x0008L | 
|   43 #define PVTWORD_STYLE_DUALCROSSOUT»     »       »       0x0010L |   43 #define PVTWORD_STYLE_DUALCROSSOUT 0x0010L | 
|   44 #define PVTWORD_STYLE_BOLD»     »       »       »       »       0x0020L |   44 #define PVTWORD_STYLE_BOLD 0x0020L | 
|   45 #define PVTWORD_STYLE_ITALIC»   »       »       »       0x0040L |   45 #define PVTWORD_STYLE_ITALIC 0x0040L | 
|   46  |   46  | 
|   47 #define FX_EDIT_ISLATINWORD(u)» (u == 0x2D || (u <= 0x005A && u >= 0x0041) || (u
      <= 0x007A && u >= 0x0061) || (u <= 0x02AF && u >= 0x00C0)) |   47 #define FX_EDIT_ISLATINWORD(u)                  \ | 
 |   48   (u == 0x2D || (u <= 0x005A && u >= 0x0041) || \ | 
 |   49    (u <= 0x007A && u >= 0x0061) || (u <= 0x02AF && u >= 0x00C0)) | 
|   48  |   50  | 
|   49 #ifndef DEFAULT_CHARSET |   51 #ifndef DEFAULT_CHARSET | 
|   50 #define DEFAULT_CHARSET         1 |   52 #define DEFAULT_CHARSET 1 | 
|   51 #endif |   53 #endif | 
|   52  |   54  | 
|   53 class IFX_Edit_FontMap |   55 class IFX_Edit_FontMap { | 
|   54 { |   56  public: | 
|   55 public: |   57   virtual ~IFX_Edit_FontMap() {} | 
|   56         virtual ~IFX_Edit_FontMap() { } |   58   // map a fontindex to pdf font. | 
|   57         //map a fontindex to pdf font. |   59   virtual CPDF_Font* GetPDFFont(int32_t nFontIndex) = 0; | 
|   58         virtual CPDF_Font *                                             GetPDFFo
     nt(int32_t nFontIndex) = 0; |   60   // get the alias of a pdf font. | 
|   59         //get the alias of a pdf font. |   61   virtual CFX_ByteString GetPDFFontAlias(int32_t nFontIndex) = 0; | 
|   60         virtual CFX_ByteString                                  GetPDFFontAlias(
     int32_t nFontIndex) = 0; |   62   // get the index of a font that can show a word. | 
|   61         //get the index of a font that can show a word. |   63   virtual int32_t GetWordFontIndex(FX_WORD word, | 
|   62         virtual int32_t                                         GetWordFontIndex
     (FX_WORD word, int32_t charset, int32_t nFontIndex) = 0; |   64                                    int32_t charset, | 
|   63         //get the charcode of word from unicode |   65                                    int32_t nFontIndex) = 0; | 
|   64         virtual int32_t                                         CharCodeFromUnic
     ode(int32_t nFontIndex, FX_WORD word) = 0; |   66   // get the charcode of word from unicode | 
|   65         //get the charset of unicode |   67   virtual int32_t CharCodeFromUnicode(int32_t nFontIndex, FX_WORD word) = 0; | 
|   66         virtual int32_t                                         CharSetFromUnico
     de(FX_WORD word, int32_t nOldCharset) = 0; |   68   // get the charset of unicode | 
|   67 }; |   69   virtual int32_t CharSetFromUnicode(FX_WORD word, int32_t nOldCharset) = 0; | 
|   68  |   70 }; | 
|   69 class IFX_Edit_Notify |   71  | 
|   70 { |   72 class IFX_Edit_Notify { | 
|   71 public: |   73  public: | 
|   72         virtual ~IFX_Edit_Notify() { } |   74   virtual ~IFX_Edit_Notify() {} | 
|   73         //set the horizontal scrollbar information. |   75   // set the horizontal scrollbar information. | 
|   74         virtual void                                                    IOnSetSc
     rollInfoX(FX_FLOAT fPlateMin, FX_FLOAT fPlateMax, |   76   virtual void IOnSetScrollInfoX(FX_FLOAT fPlateMin, | 
|   75                                                                                 
                     FX_FLOAT fContentMin, FX_FLOAT fContentMax, |   77                                  FX_FLOAT fPlateMax, | 
|   76                                                                                 
                     FX_FLOAT fSmallStep, FX_FLOAT fBigStep) = 0; |   78                                  FX_FLOAT fContentMin, | 
|   77         //set the vertical scrollbar information. |   79                                  FX_FLOAT fContentMax, | 
|   78         virtual void                                                    IOnSetSc
     rollInfoY(FX_FLOAT fPlateMin, FX_FLOAT fPlateMax, |   80                                  FX_FLOAT fSmallStep, | 
|   79                                                                                 
                     FX_FLOAT fContentMin, FX_FLOAT fContentMax, |   81                                  FX_FLOAT fBigStep) = 0; | 
|   80                                                                                 
                     FX_FLOAT fSmallStep, FX_FLOAT fBigStep) = 0; |   82   // set the vertical scrollbar information. | 
|   81         //set the position of horizontal scrollbar. |   83   virtual void IOnSetScrollInfoY(FX_FLOAT fPlateMin, | 
|   82         virtual void                                                    IOnSetSc
     rollPosX(FX_FLOAT fx) = 0; |   84                                  FX_FLOAT fPlateMax, | 
|   83         //set the position of vertical scrollbar. |   85                                  FX_FLOAT fContentMin, | 
|   84         virtual void                                                    IOnSetSc
     rollPosY(FX_FLOAT fy) = 0; |   86                                  FX_FLOAT fContentMax, | 
|   85         //set the caret information. |   87                                  FX_FLOAT fSmallStep, | 
|   86         virtual void                                                    IOnSetCa
     ret(FX_BOOL bVisible,const CPDF_Point & ptHead,const CPDF_Point & ptFoot, const 
     CPVT_WordPlace& place) = 0; |   88                                  FX_FLOAT fBigStep) = 0; | 
|   87         //if the caret position is changed ,send the information of current post
     ion to user. |   89   // set the position of horizontal scrollbar. | 
|   88         virtual void                                                    IOnCaret
     Change(const CPVT_SecProps & secProps, const CPVT_WordProps & wordProps) = 0; |   90   virtual void IOnSetScrollPosX(FX_FLOAT fx) = 0; | 
|   89         //if the text area is changed, send the information to user. |   91   // set the position of vertical scrollbar. | 
|   90         virtual void                                                    IOnConte
     ntChange(const CPDF_Rect& rcContent) = 0; |   92   virtual void IOnSetScrollPosY(FX_FLOAT fy) = 0; | 
|   91         //Invalidate the rectangle relative to the bounding box of edit. |   93   // set the caret information. | 
|   92         virtual void                                                    IOnInval
     idateRect(CPDF_Rect * pRect) = 0; |   94   virtual void IOnSetCaret(FX_BOOL bVisible, | 
|   93 }; |   95                            const CPDF_Point& ptHead, | 
|   94  |   96                            const CPDF_Point& ptFoot, | 
|   95 class IFX_Edit_OprNotify |   97                            const CPVT_WordPlace& place) = 0; | 
|   96 { |   98   // if the caret position is changed ,send the information of current postion | 
|   97 public: |   99   // to user. | 
|   98         virtual ~IFX_Edit_OprNotify() { } |  100   virtual void IOnCaretChange(const CPVT_SecProps& secProps, | 
|   99  |  101                               const CPVT_WordProps& wordProps) = 0; | 
|  100         //OprType: 0 |  102   // if the text area is changed, send the information to user. | 
|  101         virtual void                                                    OnInsert
     Word(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace) = 0; |  103   virtual void IOnContentChange(const CPDF_Rect& rcContent) = 0; | 
|  102         //OprType: 1 |  104   // Invalidate the rectangle relative to the bounding box of edit. | 
|  103         virtual void                                                    OnInsert
     Return(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace) = 0; |  105   virtual void IOnInvalidateRect(CPDF_Rect* pRect) = 0; | 
|  104         //OprType: 2 |  106 }; | 
|  105         virtual void                                                    OnBackSp
     ace(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace) = 0; |  107  | 
|  106         //OprType: 3 |  108 class IFX_Edit_OprNotify { | 
|  107         virtual void                                                    OnDelete
     (const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace) = 0; |  109  public: | 
|  108         //OprType: 4 |  110   virtual ~IFX_Edit_OprNotify() {} | 
|  109         virtual void                                                    OnClear(
     const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace) = 0; |  111  | 
|  110         //OprType: 5 |  112   // OprType: 0 | 
|  111         virtual void                                                    OnInsert
     Text(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace) = 0; |  113   virtual void OnInsertWord(const CPVT_WordPlace& place, | 
|  112         //OprType: 6 |  114                             const CPVT_WordPlace& oldplace) = 0; | 
|  113         virtual void                                                    OnSetTex
     t(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace) = 0; |  115   // OprType: 1 | 
|  114         // |  116   virtual void OnInsertReturn(const CPVT_WordPlace& place, | 
|  115         virtual void                                                    OnAddUnd
     o(IFX_Edit_UndoItem* pUndoItem) = 0; |  117                               const CPVT_WordPlace& oldplace) = 0; | 
|  116 }; |  118   // OprType: 2 | 
|  117  |  119   virtual void OnBackSpace(const CPVT_WordPlace& place, | 
|  118 class IFX_Edit_Iterator |  120                            const CPVT_WordPlace& oldplace) = 0; | 
|  119 { |  121   // OprType: 3 | 
|  120 public: |  122   virtual void OnDelete(const CPVT_WordPlace& place, | 
|  121         virtual ~IFX_Edit_Iterator()  {} |  123                         const CPVT_WordPlace& oldplace) = 0; | 
|  122 public: |  124   // OprType: 4 | 
|  123         //move the current position to the next word. |  125   virtual void OnClear(const CPVT_WordPlace& place, | 
|  124         virtual FX_BOOL                                                 NextWord
     () = 0; |  126                        const CPVT_WordPlace& oldplace) = 0; | 
|  125         //move the current position to the next line. |  127   // OprType: 5 | 
|  126         virtual FX_BOOL                                                 NextLine
     () = 0; |  128   virtual void OnInsertText(const CPVT_WordPlace& place, | 
|  127         //move the current position to the next section. |  129                             const CPVT_WordPlace& oldplace) = 0; | 
|  128         virtual FX_BOOL                                                 NextSect
     ion() = 0; |  130   // OprType: 6 | 
|  129  |  131   virtual void OnSetText(const CPVT_WordPlace& place, | 
|  130         //move the current position to the previous word. |  132                          const CPVT_WordPlace& oldplace) = 0; | 
|  131         virtual FX_BOOL                                                 PrevWord
     () = 0; |  133   // | 
|  132         //move the current position to the previous line. |  134   virtual void OnAddUndo(IFX_Edit_UndoItem* pUndoItem) = 0; | 
|  133         virtual FX_BOOL                                                 PrevLine
     () = 0; |  135 }; | 
|  134         //move the current position to the previous section. |  136  | 
|  135         virtual FX_BOOL                                                 PrevSect
     ion() = 0; |  137 class IFX_Edit_Iterator { | 
|  136  |  138  public: | 
|  137         //get the information of the current word. |  139   virtual ~IFX_Edit_Iterator() {} | 
|  138         virtual FX_BOOL                                                 GetWord(
     CPVT_Word & word) const = 0; |  140  | 
|  139         //get the information of the current line. |  141  public: | 
|  140         virtual FX_BOOL                                                 GetLine(
     CPVT_Line & line) const = 0; |  142   // move the current position to the next word. | 
|  141         //get the information of the current section. |  143   virtual FX_BOOL NextWord() = 0; | 
|  142         virtual FX_BOOL                                                 GetSecti
     on(CPVT_Section & section) const = 0; |  144   // move the current position to the next line. | 
|  143         //set the current position. |  145   virtual FX_BOOL NextLine() = 0; | 
|  144         virtual void                                                    SetAt(in
     t32_t nWordIndex) = 0; |  146   // move the current position to the next section. | 
|  145         //set the current position. |  147   virtual FX_BOOL NextSection() = 0; | 
|  146         virtual void                                                    SetAt(co
     nst CPVT_WordPlace & place) = 0; |  148  | 
|  147         //get the current position. |  149   // move the current position to the previous word. | 
|  148         virtual const CPVT_WordPlace &                  GetAt() const = 0; |  150   virtual FX_BOOL PrevWord() = 0; | 
|  149  |  151   // move the current position to the previous line. | 
|  150         //get the edit which this iterator belongs to |  152   virtual FX_BOOL PrevLine() = 0; | 
|  151         virtual IFX_Edit*                                               GetEdit(
     ) const = 0; |  153   // move the current position to the previous section. | 
|  152 }; |  154   virtual FX_BOOL PrevSection() = 0; | 
|  153  |  155  | 
|  154 class IFX_Edit_UndoItem |  156   // get the information of the current word. | 
|  155 { |  157   virtual FX_BOOL GetWord(CPVT_Word& word) const = 0; | 
|  156 public: |  158   // get the information of the current line. | 
|  157         virtual ~IFX_Edit_UndoItem() { } |  159   virtual FX_BOOL GetLine(CPVT_Line& line) const = 0; | 
|  158  |  160   // get the information of the current section. | 
|  159         virtual void                                                    Undo() =
      0; |  161   virtual FX_BOOL GetSection(CPVT_Section& section) const = 0; | 
|  160         virtual void                                                    Redo() =
      0; |  162   // set the current position. | 
|  161         virtual CFX_WideString                                  GetUndoTitle() =
      0; |  163   virtual void SetAt(int32_t nWordIndex) = 0; | 
|  162 }; |  164   // set the current position. | 
|  163  |  165   virtual void SetAt(const CPVT_WordPlace& place) = 0; | 
|  164 class IFX_Edit |  166   // get the current position. | 
|  165 { |  167   virtual const CPVT_WordPlace& GetAt() const = 0; | 
|  166 public: |  168  | 
|  167         static IFX_Edit*                                                NewEdit(
     ); |  169   // get the edit which this iterator belongs to | 
|  168         static  void                                                    DelEdit(
     IFX_Edit* pEdit); |  170   virtual IFX_Edit* GetEdit() const = 0; | 
|  169  |  171 }; | 
|  170         //set a IFX_Edit_FontMap pointer implemented by user. |  172  | 
|  171         virtual void                                                    SetFontM
     ap(IFX_Edit_FontMap* pFontMap) = 0; |  173 class IFX_Edit_UndoItem { | 
|  172         //if user don't like to use FontMap, implement VTProvider and set it dir
     ectly. |  174  public: | 
|  173         virtual void                                                    SetVTPro
     vider(IPDF_VariableText_Provider* pProvider) = 0; |  175   virtual ~IFX_Edit_UndoItem() {} | 
|  174         //set a IFX_Edit_Notify pointer implemented by user. |  176  | 
|  175         virtual void                                                    SetNotif
     y(IFX_Edit_Notify * pNotify) = 0; |  177   virtual void Undo() = 0; | 
|  176         virtual void                                                    SetOprNo
     tify(IFX_Edit_OprNotify* pOprNotify) = 0; |  178   virtual void Redo() = 0; | 
|  177         //get a pointer allocated by CPDF_Edit, by this pointer, user can iterat
     e the contents of edit, but don't need to release. |  179   virtual CFX_WideString GetUndoTitle() = 0; | 
|  178         virtual IFX_Edit_Iterator*                              GetIterator() = 
     0; |  180 }; | 
|  179         //get a VT pointer relative to this edit. |  181  | 
|  180         virtual IPDF_VariableText*                              GetVariableText(
     ) = 0; |  182 class IFX_Edit { | 
|  181         //get the IFX_Edit_FontMap pointer set by user. |  183  public: | 
|  182         virtual IFX_Edit_FontMap*                               GetFontMap() = 0
     ; |  184   static IFX_Edit* NewEdit(); | 
|  183  |  185   static void DelEdit(IFX_Edit* pEdit); | 
|  184         //initialize the edit. |  186  | 
|  185         virtual void                                                    Initiali
     ze() = 0; |  187   // set a IFX_Edit_FontMap pointer implemented by user. | 
|  186  |  188   virtual void SetFontMap(IFX_Edit_FontMap* pFontMap) = 0; | 
|  187         //set the bounding box of the text area. |  189   // if user don't like to use FontMap, implement VTProvider and set it | 
|  188         virtual void                                                    SetPlate
     Rect(const CPDF_Rect & rect, FX_BOOL bPaint = TRUE) = 0; |  190   // directly. | 
|  189         //set the scroll origin |  191   virtual void SetVTProvider(IPDF_VariableText_Provider* pProvider) = 0; | 
|  190         virtual void                                                    SetScrol
     lPos(const CPDF_Point & point) = 0; |  192   // set a IFX_Edit_Notify pointer implemented by user. | 
|  191  |  193   virtual void SetNotify(IFX_Edit_Notify* pNotify) = 0; | 
|  192         //set the horizontal text alignment in text box, nFormat (0:left 1:middl
     e 2:right). |  194   virtual void SetOprNotify(IFX_Edit_OprNotify* pOprNotify) = 0; | 
|  193         virtual void                                                    SetAlign
     mentH(int32_t nFormat = 0, FX_BOOL bPaint = TRUE) = 0; |  195   // get a pointer allocated by CPDF_Edit, by this pointer, user can iterate the | 
|  194         //set the vertical text alignment in text box, nFormat (0:top 1:center 2
     :bottom). |  196   // contents of edit, but don't need to release. | 
|  195         virtual void                                                    SetAlign
     mentV(int32_t nFormat = 0, FX_BOOL bPaint = TRUE) = 0; |  197   virtual IFX_Edit_Iterator* GetIterator() = 0; | 
|  196         //if the text is shown in secret , set a character for substitute. |  198   // get a VT pointer relative to this edit. | 
|  197         virtual void                                                    SetPassw
     ordChar(FX_WORD wSubWord = '*', FX_BOOL bPaint = TRUE) = 0; |  199   virtual IPDF_VariableText* GetVariableText() = 0; | 
|  198         //set the maximal count of words of the text. |  200   // get the IFX_Edit_FontMap pointer set by user. | 
|  199         virtual void                                                    SetLimit
     Char(int32_t nLimitChar = 0, FX_BOOL bPaint = TRUE) = 0; |  201   virtual IFX_Edit_FontMap* GetFontMap() = 0; | 
|  200         //if set the count of charArray , then all words is shown in equal space
     . |  202  | 
|  201         virtual void                                                    SetCharA
     rray(int32_t nCharArray = 0, FX_BOOL bPaint = TRUE) = 0; |  203   // initialize the edit. | 
|  202         //set the space of two characters. |  204   virtual void Initialize() = 0; | 
|  203         virtual void                                                    SetCharS
     pace(FX_FLOAT fCharSpace = 0.0f, FX_BOOL bPaint = TRUE) = 0; |  205  | 
|  204         //set the horizontal scale of all characters. |  206   // set the bounding box of the text area. | 
|  205         virtual void                                                    SetHorzS
     cale(int32_t nHorzScale = 100, FX_BOOL bPaint = TRUE) = 0; |  207   virtual void SetPlateRect(const CPDF_Rect& rect, FX_BOOL bPaint = TRUE) = 0; | 
|  206         //set the leading of all lines |  208   // set the scroll origin | 
|  207         virtual void                                                    SetLineL
     eading(FX_FLOAT fLineLeading, FX_BOOL bPaint = TRUE) = 0; |  209   virtual void SetScrollPos(const CPDF_Point& point) = 0; | 
|  208         //if set, CRLF is allowed. |  210  | 
|  209         virtual void                                                    SetMulti
     Line(FX_BOOL bMultiLine = TRUE, FX_BOOL bPaint = TRUE) = 0; |  211   // set the horizontal text alignment in text box, nFormat (0:left 1:middle | 
|  210         //if set, all words auto fit the width of the bounding box. |  212   // 2:right). | 
|  211         virtual void                                                    SetAutoR
     eturn(FX_BOOL bAuto = TRUE, FX_BOOL bPaint = TRUE) = 0; |  213   virtual void SetAlignmentH(int32_t nFormat = 0, FX_BOOL bPaint = TRUE) = 0; | 
|  212         //if set, a font size is calculated to full fit the bounding box. |  214   // set the vertical text alignment in text box, nFormat (0:top 1:center | 
|  213         virtual void                                                    SetAutoF
     ontSize(FX_BOOL bAuto = TRUE, FX_BOOL bPaint = TRUE) = 0; |  215   // 2:bottom). | 
|  214         //is set, the text is allowed to scroll. |  216   virtual void SetAlignmentV(int32_t nFormat = 0, FX_BOOL bPaint = TRUE) = 0; | 
|  215         virtual void                                                    SetAutoS
     croll(FX_BOOL bAuto = TRUE, FX_BOOL bPaint = TRUE) = 0; |  217   // if the text is shown in secret , set a character for substitute. | 
|  216         //set the font size of all words. |  218   virtual void SetPasswordChar(FX_WORD wSubWord = '*', | 
|  217         virtual void                                                    SetFontS
     ize(FX_FLOAT fFontSize, FX_BOOL bPaint = TRUE) = 0; |  219                                FX_BOOL bPaint = TRUE) = 0; | 
|  218         //the text is allowed to auto-scroll, allow the text overflow? |  220   // set the maximal count of words of the text. | 
|  219         virtual void                                                    SetTextO
     verflow(FX_BOOL bAllowed = FALSE, FX_BOOL bPaint = TRUE) = 0; |  221   virtual void SetLimitChar(int32_t nLimitChar = 0, FX_BOOL bPaint = TRUE) = 0; | 
|  220  |  222   // if set the count of charArray , then all words is shown in equal space. | 
|  221         //query if the edit is richedit. |  223   virtual void SetCharArray(int32_t nCharArray = 0, FX_BOOL bPaint = TRUE) = 0; | 
|  222         virtual FX_BOOL                                                 IsRichTe
     xt() const = 0; |  224   // set the space of two characters. | 
|  223         //set the edit is richedit. |  225   virtual void SetCharSpace(FX_FLOAT fCharSpace = 0.0f, | 
|  224         virtual void                                                    SetRichT
     ext(FX_BOOL bRichText = TRUE, FX_BOOL bPaint = TRUE) = 0; |  226                             FX_BOOL bPaint = TRUE) = 0; | 
|  225         //set the fontsize of selected text. |  227   // set the horizontal scale of all characters. | 
|  226         virtual FX_BOOL                                                 SetRichF
     ontSize(FX_FLOAT fFontSize) = 0; |  228   virtual void SetHorzScale(int32_t nHorzScale = 100, | 
|  227         //set the fontindex of selected text, user can change the font of select
     ed text. |  229                             FX_BOOL bPaint = TRUE) = 0; | 
|  228         virtual FX_BOOL                                                 SetRichF
     ontIndex(int32_t nFontIndex) = 0; |  230   // set the leading of all lines | 
|  229         //set the textcolor of selected text. |  231   virtual void SetLineLeading(FX_FLOAT fLineLeading, FX_BOOL bPaint = TRUE) = 0; | 
|  230         virtual FX_BOOL                                                 SetRichT
     extColor(FX_COLORREF dwColor) = 0; |  232   // if set, CRLF is allowed. | 
|  231         //set the text script type of selected text. (0:normal 1:superscript 2:s
     ubscript) |  233   virtual void SetMultiLine(FX_BOOL bMultiLine = TRUE, | 
|  232         virtual FX_BOOL                                                 SetRichT
     extScript(int32_t nScriptType) = 0; |  234                             FX_BOOL bPaint = TRUE) = 0; | 
|  233         //set the bold font style of selected text. |  235   // if set, all words auto fit the width of the bounding box. | 
|  234         virtual FX_BOOL                                                 SetRichT
     extBold(FX_BOOL bBold = TRUE) = 0; |  236   virtual void SetAutoReturn(FX_BOOL bAuto = TRUE, FX_BOOL bPaint = TRUE) = 0; | 
|  235         //set the italic font style of selected text. |  237   // if set, a font size is calculated to full fit the bounding box. | 
|  236         virtual FX_BOOL                                                 SetRichT
     extItalic(FX_BOOL bItalic = TRUE) = 0; |  238   virtual void SetAutoFontSize(FX_BOOL bAuto = TRUE, FX_BOOL bPaint = TRUE) = 0; | 
|  237         //set the underline style of selected text. |  239   // is set, the text is allowed to scroll. | 
|  238         virtual FX_BOOL                                                 SetRichT
     extUnderline(FX_BOOL bUnderline = TRUE) = 0; |  240   virtual void SetAutoScroll(FX_BOOL bAuto = TRUE, FX_BOOL bPaint = TRUE) = 0; | 
|  239         //set the crossout style of selected text. |  241   // set the font size of all words. | 
|  240         virtual FX_BOOL                                                 SetRichT
     extCrossout(FX_BOOL bCrossout = TRUE) = 0; |  242   virtual void SetFontSize(FX_FLOAT fFontSize, FX_BOOL bPaint = TRUE) = 0; | 
|  241         //set the charspace of selected text, in user coordinate. |  243   // the text is allowed to auto-scroll, allow the text overflow? | 
|  242         virtual FX_BOOL                                                 SetRichT
     extCharSpace(FX_FLOAT fCharSpace) = 0; |  244   virtual void SetTextOverflow(FX_BOOL bAllowed = FALSE, | 
|  243         //set the horizontal scale of selected text, default value is 100. |  245                                FX_BOOL bPaint = TRUE) = 0; | 
|  244         virtual FX_BOOL                                                 SetRichT
     extHorzScale(int32_t nHorzScale = 100) = 0; |  246  | 
|  245         //set the leading of selected section, in user coordinate. |  247   // query if the edit is richedit. | 
|  246         virtual FX_BOOL                                                 SetRichT
     extLineLeading(FX_FLOAT fLineLeading) = 0; |  248   virtual FX_BOOL IsRichText() const = 0; | 
|  247         //set the indent of selected section, in user coordinate. |  249   // set the edit is richedit. | 
|  248         virtual FX_BOOL                                                 SetRichT
     extLineIndent(FX_FLOAT fLineIndent) = 0; |  250   virtual void SetRichText(FX_BOOL bRichText = TRUE, FX_BOOL bPaint = TRUE) = 0; | 
|  249         //set the alignment of selected section, nAlignment(0:left 1:middle 2:ri
     ght) |  251   // set the fontsize of selected text. | 
|  250         virtual FX_BOOL                                                 SetRichT
     extAlignment(int32_t nAlignment) = 0; |  252   virtual FX_BOOL SetRichFontSize(FX_FLOAT fFontSize) = 0; | 
|  251  |  253   // set the fontindex of selected text, user can change the font of selected | 
|  252         //set the selected range of text. |  254   // text. | 
|  253         //if nStartChar == 0 and nEndChar == -1, select all the text. |  255   virtual FX_BOOL SetRichFontIndex(int32_t nFontIndex) = 0; | 
|  254         virtual void                                                    SetSel(i
     nt32_t nStartChar,int32_t nEndChar) = 0; |  256   // set the textcolor of selected text. | 
|  255         //get the selected range of text. |  257   virtual FX_BOOL SetRichTextColor(FX_COLORREF dwColor) = 0; | 
|  256         virtual void                                                    GetSel(i
     nt32_t & nStartChar, int32_t & nEndChar) const = 0; |  258   // set the text script type of selected text. (0:normal 1:superscript | 
|  257         //select all the text. |  259   // 2:subscript) | 
|  258         virtual void                                                    SelectAl
     l() = 0; |  260   virtual FX_BOOL SetRichTextScript(int32_t nScriptType) = 0; | 
|  259         //set text is not selected. |  261   // set the bold font style of selected text. | 
|  260         virtual void                                                    SelectNo
     ne() = 0; |  262   virtual FX_BOOL SetRichTextBold(FX_BOOL bBold = TRUE) = 0; | 
|  261         //get the caret position. |  263   // set the italic font style of selected text. | 
|  262         virtual int32_t                                         GetCaret() const
      = 0; |  264   virtual FX_BOOL SetRichTextItalic(FX_BOOL bItalic = TRUE) = 0; | 
|  263         virtual CPVT_WordPlace                                  GetCaretWordPlac
     e() const = 0; |  265   // set the underline style of selected text. | 
|  264         //get the string of selected text. |  266   virtual FX_BOOL SetRichTextUnderline(FX_BOOL bUnderline = TRUE) = 0; | 
|  265         virtual CFX_WideString                                  GetSelText() con
     st = 0; |  267   // set the crossout style of selected text. | 
|  266         //get the text conent |  268   virtual FX_BOOL SetRichTextCrossout(FX_BOOL bCrossout = TRUE) = 0; | 
|  267         virtual CFX_WideString                                  GetText() const 
     = 0; |  269   // set the charspace of selected text, in user coordinate. | 
|  268         //query if any text is selected. |  270   virtual FX_BOOL SetRichTextCharSpace(FX_FLOAT fCharSpace) = 0; | 
|  269         virtual FX_BOOL                                                 IsSelect
     ed() const = 0; |  271   // set the horizontal scale of selected text, default value is 100. | 
|  270         //get the scroll origin |  272   virtual FX_BOOL SetRichTextHorzScale(int32_t nHorzScale = 100) = 0; | 
|  271         virtual CPDF_Point                                              GetScrol
     lPos() const = 0; |  273   // set the leading of selected section, in user coordinate. | 
|  272         //get the bounding box of the text area. |  274   virtual FX_BOOL SetRichTextLineLeading(FX_FLOAT fLineLeading) = 0; | 
|  273         virtual CPDF_Rect                                               GetPlate
     Rect() const = 0; |  275   // set the indent of selected section, in user coordinate. | 
|  274         //get the fact area of the text. |  276   virtual FX_BOOL SetRichTextLineIndent(FX_FLOAT fLineIndent) = 0; | 
|  275         virtual CPDF_Rect                                               GetConte
     ntRect() const = 0; |  277   // set the alignment of selected section, nAlignment(0:left 1:middle 2:right) | 
|  276         //get the visible word range |  278   virtual FX_BOOL SetRichTextAlignment(int32_t nAlignment) = 0; | 
|  277         virtual CPVT_WordRange                                  GetVisibleWordRa
     nge() const = 0; |  279  | 
|  278         //get the whole word range |  280   // set the selected range of text. | 
|  279         virtual CPVT_WordRange                                  GetWholeWordRang
     e() const = 0; |  281   // if nStartChar == 0 and nEndChar == -1, select all the text. | 
|  280         //get the word range of select text |  282   virtual void SetSel(int32_t nStartChar, int32_t nEndChar) = 0; | 
|  281         virtual CPVT_WordRange                                  GetSelectWordRan
     ge() const = 0; |  283   // get the selected range of text. | 
|  282  |  284   virtual void GetSel(int32_t& nStartChar, int32_t& nEndChar) const = 0; | 
|  283         //send the mousedown message to edit for response. |  285   // select all the text. | 
|  284         //if Shift key is hold, bShift is TRUE, is Ctrl key is hold, bCtrl is TR
     UE. |  286   virtual void SelectAll() = 0; | 
|  285         virtual void                                                    OnMouseD
     own(const CPDF_Point & point,FX_BOOL bShift,FX_BOOL bCtrl) = 0; |  287   // set text is not selected. | 
|  286         //send the mousemove message to edit when mouse down is TRUE. |  288   virtual void SelectNone() = 0; | 
|  287         virtual void                                                    OnMouseM
     ove(const CPDF_Point & point,FX_BOOL bShift,FX_BOOL bCtrl) = 0; |  289   // get the caret position. | 
|  288         //send the UP key message to edit. |  290   virtual int32_t GetCaret() const = 0; | 
|  289         virtual void                                                    OnVK_UP(
     FX_BOOL bShift,FX_BOOL bCtrl) = 0; |  291   virtual CPVT_WordPlace GetCaretWordPlace() const = 0; | 
|  290         //send the DOWN key message to edit. |  292   // get the string of selected text. | 
|  291         virtual void                                                    OnVK_DOW
     N(FX_BOOL bShift,FX_BOOL bCtrl) = 0; |  293   virtual CFX_WideString GetSelText() const = 0; | 
|  292         //send the LEFT key message to edit. |  294   // get the text conent | 
|  293         virtual void                                                    OnVK_LEF
     T(FX_BOOL bShift,FX_BOOL bCtrl) = 0; |  295   virtual CFX_WideString GetText() const = 0; | 
|  294         //send the RIGHT key message to edit. |  296   // query if any text is selected. | 
|  295         virtual void                                                    OnVK_RIG
     HT(FX_BOOL bShift,FX_BOOL bCtrl) = 0; |  297   virtual FX_BOOL IsSelected() const = 0; | 
|  296         //send the HOME key message to edit. |  298   // get the scroll origin | 
|  297         virtual void                                                    OnVK_HOM
     E(FX_BOOL bShift,FX_BOOL bCtrl) = 0; |  299   virtual CPDF_Point GetScrollPos() const = 0; | 
|  298         //send the END key message to edit. |  300   // get the bounding box of the text area. | 
|  299         virtual void                                                    OnVK_END
     (FX_BOOL bShift,FX_BOOL bCtrl) = 0; |  301   virtual CPDF_Rect GetPlateRect() const = 0; | 
|  300  |  302   // get the fact area of the text. | 
|  301         //put text into edit. |  303   virtual CPDF_Rect GetContentRect() const = 0; | 
|  302         virtual void                                                    SetText(
     const FX_WCHAR* text,int32_t charset = DEFAULT_CHARSET, |  304   // get the visible word range | 
|  303                                                                                 
                             const CPVT_SecProps * pSecProps = NULL,const CPVT_WordPr
     ops * pWordProps = NULL) = 0; |  305   virtual CPVT_WordRange GetVisibleWordRange() const = 0; | 
|  304         //insert a word into the edit. |  306   // get the whole word range | 
|  305         virtual FX_BOOL                                                 InsertWo
     rd(FX_WORD word, int32_t charset = DEFAULT_CHARSET, const CPVT_WordProps * pWord
     Props = NULL) = 0; |  307   virtual CPVT_WordRange GetWholeWordRange() const = 0; | 
|  306         //insert a return into the edit. |  308   // get the word range of select text | 
|  307         virtual FX_BOOL                                                 InsertRe
     turn(const CPVT_SecProps * pSecProps = NULL,const CPVT_WordProps * pWordProps = 
     NULL) = 0; |  309   virtual CPVT_WordRange GetSelectWordRange() const = 0; | 
|  308         //insert text into the edit. |  310  | 
|  309         virtual FX_BOOL                                                 InsertTe
     xt(const FX_WCHAR* text, int32_t charset = DEFAULT_CHARSET, |  311   // send the mousedown message to edit for response. | 
|  310                                                                                 
                             const CPVT_SecProps * pSecProps = NULL,const CPVT_WordPr
     ops * pWordProps = NULL) = 0; |  312   // if Shift key is hold, bShift is TRUE, is Ctrl key is hold, bCtrl is TRUE. | 
|  311         //do backspace operation. |  313   virtual void OnMouseDown(const CPDF_Point& point, | 
|  312         virtual FX_BOOL                                                 Backspac
     e() = 0; |  314                            FX_BOOL bShift, | 
|  313         //do delete operation. |  315                            FX_BOOL bCtrl) = 0; | 
|  314         virtual FX_BOOL                                                 Delete()
      = 0; |  316   // send the mousemove message to edit when mouse down is TRUE. | 
|  315         //delete the selected text. |  317   virtual void OnMouseMove(const CPDF_Point& point, | 
|  316         virtual FX_BOOL                                                 Clear() 
     = 0; |  318                            FX_BOOL bShift, | 
|  317  |  319                            FX_BOOL bCtrl) = 0; | 
|  318         //do Redo operation. |  320   // send the UP key message to edit. | 
|  319         virtual FX_BOOL                                                 Redo() =
      0; |  321   virtual void OnVK_UP(FX_BOOL bShift, FX_BOOL bCtrl) = 0; | 
|  320         //do Undo operation. |  322   // send the DOWN key message to edit. | 
|  321         virtual FX_BOOL                                                 Undo() =
      0; |  323   virtual void OnVK_DOWN(FX_BOOL bShift, FX_BOOL bCtrl) = 0; | 
|  322         //move caret |  324   // send the LEFT key message to edit. | 
|  323         virtual void                                                    SetCaret
     (int32_t nPos) = 0; |  325   virtual void OnVK_LEFT(FX_BOOL bShift, FX_BOOL bCtrl) = 0; | 
|  324  |  326   // send the RIGHT key message to edit. | 
|  325         //arrange all words over again |  327   virtual void OnVK_RIGHT(FX_BOOL bShift, FX_BOOL bCtrl) = 0; | 
|  326         virtual void                                                    Paint() 
     = 0; |  328   // send the HOME key message to edit. | 
|  327  |  329   virtual void OnVK_HOME(FX_BOOL bShift, FX_BOOL bCtrl) = 0; | 
|  328         //allow to refresh screen? |  330   // send the END key message to edit. | 
|  329         virtual void                                                    EnableRe
     fresh(FX_BOOL bRefresh) = 0; |  331   virtual void OnVK_END(FX_BOOL bShift, FX_BOOL bCtrl) = 0; | 
|  330  |  332  | 
|  331         virtual void                                                    RefreshW
     ordRange(const CPVT_WordRange& wr) = 0; |  333   // put text into edit. | 
|  332  |  334   virtual void SetText(const FX_WCHAR* text, | 
|  333         //allow undo/redo? |  335                        int32_t charset = DEFAULT_CHARSET, | 
|  334         virtual void                                                    EnableUn
     do(FX_BOOL bUndo) = 0; |  336                        const CPVT_SecProps* pSecProps = NULL, | 
|  335  |  337                        const CPVT_WordProps* pWordProps = NULL) = 0; | 
|  336         //allow notify? |  338   // insert a word into the edit. | 
|  337         virtual void                                                    EnableNo
     tify(FX_BOOL bNotify) = 0; |  339   virtual FX_BOOL InsertWord(FX_WORD word, | 
|  338  |  340                              int32_t charset = DEFAULT_CHARSET, | 
|  339         //allow opr notify? |  341                              const CPVT_WordProps* pWordProps = NULL) = 0; | 
|  340         virtual void                                                    EnableOp
     rNotify(FX_BOOL bNotify) = 0; |  342   // insert a return into the edit. | 
|  341  |  343   virtual FX_BOOL InsertReturn(const CPVT_SecProps* pSecProps = NULL, | 
|  342         //map word place to word index. |  344                                const CPVT_WordProps* pWordProps = NULL) = 0; | 
|  343         virtual int32_t                                         WordPlaceToWordI
     ndex(const CPVT_WordPlace & place) const = 0; |  345   // insert text into the edit. | 
|  344         //map word index to word place. |  346   virtual FX_BOOL InsertText(const FX_WCHAR* text, | 
|  345         virtual CPVT_WordPlace                                  WordIndexToWordP
     lace(int32_t index) const = 0; |  347                              int32_t charset = DEFAULT_CHARSET, | 
|  346  |  348                              const CPVT_SecProps* pSecProps = NULL, | 
|  347         //get the beginning position of a line |  349                              const CPVT_WordProps* pWordProps = NULL) = 0; | 
|  348         virtual CPVT_WordPlace                                  GetLineBeginPlac
     e(const CPVT_WordPlace & place) const = 0; |  350   // do backspace operation. | 
|  349  |  351   virtual FX_BOOL Backspace() = 0; | 
|  350         //get the ending position of a line |  352   // do delete operation. | 
|  351         virtual CPVT_WordPlace                                  GetLineEndPlace(
     const CPVT_WordPlace & place) const = 0; |  353   virtual FX_BOOL Delete() = 0; | 
|  352  |  354   // delete the selected text. | 
|  353         //get the beginning position of a section |  355   virtual FX_BOOL Clear() = 0; | 
|  354         virtual CPVT_WordPlace                                  GetSectionBeginP
     lace(const CPVT_WordPlace & place) const = 0; |  356  | 
|  355  |  357   // do Redo operation. | 
|  356         //get the ending position of a section |  358   virtual FX_BOOL Redo() = 0; | 
|  357         virtual CPVT_WordPlace                                  GetSectionEndPla
     ce(const CPVT_WordPlace & place) const = 0; |  359   // do Undo operation. | 
|  358  |  360   virtual FX_BOOL Undo() = 0; | 
|  359         //search a wordplace form point |  361   // move caret | 
|  360         virtual CPVT_WordPlace                                  SearchWordPlace(
     const CPDF_Point& point) const = 0; |  362   virtual void SetCaret(int32_t nPos) = 0; | 
|  361  |  363  | 
|  362         //get the font size of non_rich text or default font size of richtext. |  364   // arrange all words over again | 
|  363         virtual FX_FLOAT                                                GetFontS
     ize() const = 0; |  365   virtual void Paint() = 0; | 
|  364         //get the mask character. |  366  | 
|  365         virtual FX_WORD                                                 GetPassw
     ordChar() const = 0; |  367   // allow to refresh screen? | 
|  366         //get the count of charArray |  368   virtual void EnableRefresh(FX_BOOL bRefresh) = 0; | 
|  367         virtual int32_t                                         GetCharArray() c
     onst = 0; |  369  | 
|  368         //get the horizontal scale of all characters |  370   virtual void RefreshWordRange(const CPVT_WordRange& wr) = 0; | 
|  369         virtual int32_t                                         GetHorzScale() c
     onst = 0; |  371  | 
|  370         //get the space of two characters |  372   // allow undo/redo? | 
|  371         virtual FX_FLOAT                                                GetCharS
     pace() const = 0; |  373   virtual void EnableUndo(FX_BOOL bUndo) = 0; | 
|  372         //get the latin words of specified range |  374  | 
|  373         virtual CFX_WideString                                  GetRangeText(con
     st CPVT_WordRange & range) const = 0; |  375   // allow notify? | 
|  374         //is the text full in bounding box |  376   virtual void EnableNotify(FX_BOOL bNotify) = 0; | 
|  375         virtual FX_BOOL                                                 IsTextFu
     ll() const = 0; |  377  | 
|  376         virtual FX_BOOL                                                 CanUndo(
     ) const = 0; |  378   // allow opr notify? | 
|  377         virtual FX_BOOL                                                 CanRedo(
     ) const = 0; |  379   virtual void EnableOprNotify(FX_BOOL bNotify) = 0; | 
|  378         //if the content is changed after settext? |  380  | 
|  379         virtual FX_BOOL                                                 IsModifi
     ed() const = 0; |  381   // map word place to word index. | 
|  380         //get the total words in edit |  382   virtual int32_t WordPlaceToWordIndex(const CPVT_WordPlace& place) const = 0; | 
|  381         virtual int32_t                                         GetTotalWords() 
     const = 0; |  383   // map word index to word place. | 
|  382  |  384   virtual CPVT_WordPlace WordIndexToWordPlace(int32_t index) const = 0; | 
|  383         virtual void                                                    AddUndoI
     tem(IFX_Edit_UndoItem* pUndoItem) = 0; |  385  | 
|  384  |  386   // get the beginning position of a line | 
|  385         static CFX_ByteString                                   GetEditAppearanc
     eStream(IFX_Edit* pEdit, const CPDF_Point & ptOffset, |  387   virtual CPVT_WordPlace GetLineBeginPlace( | 
|  386                                                                                 
                             const CPVT_WordRange* pRange = NULL, |  388       const CPVT_WordPlace& place) const = 0; | 
|  387                                                                                 
                             FX_BOOL bContinuous = TRUE, FX_WORD SubWord = 0); |  389  | 
|  388         static CFX_ByteString                                   GetSelectAppeara
     nceStream(IFX_Edit* pEdit, const CPDF_Point & ptOffset, const CPVT_WordRange* pR
     ange = NULL); |  390   // get the ending position of a line | 
|  389         static void                                                             
     DrawEdit(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device, IFX_Edit* pEdit, 
     FX_COLORREF crTextFill, FX_COLORREF crTextStroke, |  391   virtual CPVT_WordPlace GetLineEndPlace(const CPVT_WordPlace& place) const = 0; | 
|  390                                                                                 
                             const CPDF_Rect& rcClip, const CPDF_Point& ptOffset, con
     st CPVT_WordRange* pRange, IFX_SystemHandler* pSystemHandler, void* pFFLData); |  392  | 
|  391         static void                                                             
     DrawUnderline(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device, IFX_Edit* pE
     dit, FX_COLORREF color, |  393   // get the beginning position of a section | 
|  392                                                                                 
                             const CPDF_Rect& rcClip, const CPDF_Point& ptOffset, con
     st CPVT_WordRange* pRange); |  394   virtual CPVT_WordPlace GetSectionBeginPlace( | 
|  393         static void                                                             
     DrawRichEdit(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device, IFX_Edit* pEd
     it, |  395       const CPVT_WordPlace& place) const = 0; | 
|  394                                                                                 
                             const CPDF_Rect& rcClip, const CPDF_Point& ptOffset, con
     st CPVT_WordRange* pRange); |  396  | 
|  395         static void                                                             
     GeneratePageObjects(CPDF_PageObjects* pPageObjects, IFX_Edit* pEdit, |  397   // get the ending position of a section | 
|  396                                                                                 
                             const CPDF_Point& ptOffset, const CPVT_WordRange* pRange
     , FX_COLORREF crText, CFX_ArrayTemplate<CPDF_TextObject*>& ObjArray); |  398   virtual CPVT_WordPlace GetSectionEndPlace( | 
|  397         static void                                                             
     GenerateRichPageObjects(CPDF_PageObjects* pPageObjects, IFX_Edit* pEdit, |  399       const CPVT_WordPlace& place) const = 0; | 
|  398                                                                                 
                             const CPDF_Point& ptOffset, const CPVT_WordRange* pRange
     , CFX_ArrayTemplate<CPDF_TextObject*>& ObjArray); |  400  | 
|  399         static void                                                             
     GenerateUnderlineObjects(CPDF_PageObjects* pPageObjects, IFX_Edit* pEdit, |  401   // search a wordplace form point | 
|  400                                                                                 
                             const CPDF_Point& ptOffset, const CPVT_WordRange* pRange
     , FX_COLORREF color); |  402   virtual CPVT_WordPlace SearchWordPlace(const CPDF_Point& point) const = 0; | 
|  401  |  403  | 
|  402 protected: |  404   // get the font size of non_rich text or default font size of richtext. | 
|  403     ~IFX_Edit() { } |  405   virtual FX_FLOAT GetFontSize() const = 0; | 
|  404 }; |  406   // get the mask character. | 
|  405  |  407   virtual FX_WORD GetPasswordChar() const = 0; | 
|  406 class IFX_List_Notify |  408   // get the count of charArray | 
|  407 { |  409   virtual int32_t GetCharArray() const = 0; | 
|  408 public: |  410   // get the horizontal scale of all characters | 
|  409         virtual ~IFX_List_Notify() { } |  411   virtual int32_t GetHorzScale() const = 0; | 
|  410         //set the horizontal scrollbar information. |  412   // get the space of two characters | 
|  411         virtual void                                                    IOnSetSc
     rollInfoX(FX_FLOAT fPlateMin, FX_FLOAT fPlateMax, |  413   virtual FX_FLOAT GetCharSpace() const = 0; | 
|  412                                                                                 
                     FX_FLOAT fContentMin, FX_FLOAT fContentMax, |  414   // get the latin words of specified range | 
|  413                                                                                 
                     FX_FLOAT fSmallStep, FX_FLOAT fBigStep) = 0; |  415   virtual CFX_WideString GetRangeText(const CPVT_WordRange& range) const = 0; | 
|  414         //set the vertical scrollbar information. |  416   // is the text full in bounding box | 
|  415         virtual void                                                    IOnSetSc
     rollInfoY(FX_FLOAT fPlateMin, FX_FLOAT fPlateMax, |  417   virtual FX_BOOL IsTextFull() const = 0; | 
|  416                                                                                 
                     FX_FLOAT fContentMin, FX_FLOAT fContentMax, |  418   virtual FX_BOOL CanUndo() const = 0; | 
|  417                                                                                 
                     FX_FLOAT fSmallStep, FX_FLOAT fBigStep) = 0; |  419   virtual FX_BOOL CanRedo() const = 0; | 
|  418         //set the position of horizontal scrollbar. |  420   // if the content is changed after settext? | 
|  419         virtual void                                                    IOnSetSc
     rollPosX(FX_FLOAT fx) = 0; |  421   virtual FX_BOOL IsModified() const = 0; | 
|  420         //set the position of vertical scrollbar. |  422   // get the total words in edit | 
|  421         virtual void                                                    IOnSetSc
     rollPosY(FX_FLOAT fy) = 0; |  423   virtual int32_t GetTotalWords() const = 0; | 
|  422         //Invalidate the rectangle relative to the bounding box of edit. |  424  | 
|  423         virtual void                                                    IOnInval
     idateRect(CPDF_Rect * pRect) = 0; |  425   virtual void AddUndoItem(IFX_Edit_UndoItem* pUndoItem) = 0; | 
|  424 }; |  426  | 
|  425  |  427   static CFX_ByteString GetEditAppearanceStream( | 
|  426 class IFX_List |  428       IFX_Edit* pEdit, | 
|  427 { |  429       const CPDF_Point& ptOffset, | 
|  428 public: |  430       const CPVT_WordRange* pRange = NULL, | 
|  429         static IFX_List*                                                NewList(
     ); |  431       FX_BOOL bContinuous = TRUE, | 
|  430         static void                                                             
     DelList(IFX_List* pList); |  432       FX_WORD SubWord = 0); | 
|  431  |  433   static CFX_ByteString GetSelectAppearanceStream( | 
|  432         virtual void                                                    SetFontM
     ap(IFX_Edit_FontMap * pFontMap) = 0; |  434       IFX_Edit* pEdit, | 
|  433         virtual void                                                    SetNotif
     y(IFX_List_Notify * pNotify) = 0; |  435       const CPDF_Point& ptOffset, | 
|  434  |  436       const CPVT_WordRange* pRange = NULL); | 
|  435         virtual void                                                    SetPlate
     Rect(const CPDF_Rect & rect) = 0; |  437   static void DrawEdit(CFX_RenderDevice* pDevice, | 
|  436         virtual void                                                    SetFontS
     ize(FX_FLOAT fFontSize) = 0; |  438                        CPDF_Matrix* pUser2Device, | 
|  437  |  439                        IFX_Edit* pEdit, | 
|  438         virtual CPDF_Rect                                               GetPlate
     Rect() const = 0; |  440                        FX_COLORREF crTextFill, | 
|  439         virtual CPDF_Rect                                               GetConte
     ntRect() const = 0; |  441                        FX_COLORREF crTextStroke, | 
|  440  |  442                        const CPDF_Rect& rcClip, | 
|  441         virtual FX_FLOAT                                                GetFontS
     ize() const = 0; |  443                        const CPDF_Point& ptOffset, | 
|  442         virtual IFX_Edit*                                               GetItemE
     dit(int32_t nIndex) const = 0; |  444                        const CPVT_WordRange* pRange, | 
|  443         virtual int32_t                                         GetCount() const
      = 0; |  445                        IFX_SystemHandler* pSystemHandler, | 
|  444         virtual FX_BOOL                                                 IsItemSe
     lected(int32_t nIndex) const = 0; |  446                        void* pFFLData); | 
|  445         virtual FX_FLOAT                                                GetFirst
     Height() const = 0; |  447   static void DrawUnderline(CFX_RenderDevice* pDevice, | 
|  446  |  448                             CPDF_Matrix* pUser2Device, | 
|  447         virtual void                                                    SetMulti
     pleSel(FX_BOOL bMultiple) = 0; |  449                             IFX_Edit* pEdit, | 
|  448         virtual FX_BOOL                                                 IsMultip
     leSel() const = 0; |  450                             FX_COLORREF color, | 
|  449         virtual FX_BOOL                                                 IsValid(
     int32_t nItemIndex) const = 0; |  451                             const CPDF_Rect& rcClip, | 
|  450         virtual int32_t                                         FindNext(int32_t
      nIndex,FX_WCHAR nChar) const = 0; |  452                             const CPDF_Point& ptOffset, | 
|  451  |  453                             const CPVT_WordRange* pRange); | 
|  452         virtual void                                                    SetScrol
     lPos(const CPDF_Point & point) = 0; |  454   static void DrawRichEdit(CFX_RenderDevice* pDevice, | 
|  453         virtual void                                                    ScrollTo
     ListItem(int32_t nItemIndex) = 0; |  455                            CPDF_Matrix* pUser2Device, | 
|  454         virtual CPDF_Rect                                               GetItemR
     ect(int32_t nIndex) const = 0; |  456                            IFX_Edit* pEdit, | 
|  455         virtual int32_t                                         GetCaret() const
      = 0; |  457                            const CPDF_Rect& rcClip, | 
|  456         virtual int32_t                                         GetSelect() cons
     t = 0; |  458                            const CPDF_Point& ptOffset, | 
|  457         virtual int32_t                                         GetTopItem() con
     st = 0; |  459                            const CPVT_WordRange* pRange); | 
|  458         virtual int32_t                                         GetItemIndex(con
     st CPDF_Point & point) const = 0; |  460   static void GeneratePageObjects( | 
|  459         virtual int32_t                                         GetFirstSelected
     () const = 0; |  461       CPDF_PageObjects* pPageObjects, | 
|  460  |  462       IFX_Edit* pEdit, | 
|  461         virtual void                                                    AddStrin
     g(const FX_WCHAR* string) = 0; |  463       const CPDF_Point& ptOffset, | 
|  462         virtual void                                                    SetTopIt
     em(int32_t nIndex) = 0; |  464       const CPVT_WordRange* pRange, | 
|  463         virtual void                                                    Select(i
     nt32_t nItemIndex) = 0; |  465       FX_COLORREF crText, | 
|  464         virtual void                                                    SetCaret
     (int32_t nItemIndex) = 0; |  466       CFX_ArrayTemplate<CPDF_TextObject*>& ObjArray); | 
|  465         virtual void                                                    Empty() 
     = 0; |  467   static void GenerateRichPageObjects( | 
|  466         virtual void                                                    Cancel()
      = 0; |  468       CPDF_PageObjects* pPageObjects, | 
|  467         virtual CFX_WideString                                  GetText() const 
     = 0; |  469       IFX_Edit* pEdit, | 
|  468  |  470       const CPDF_Point& ptOffset, | 
|  469  |  471       const CPVT_WordRange* pRange, | 
|  470         virtual void                                                    OnMouseD
     own(const CPDF_Point & point,FX_BOOL bShift,FX_BOOL bCtrl) = 0; |  472       CFX_ArrayTemplate<CPDF_TextObject*>& ObjArray); | 
|  471         virtual void                                                    OnMouseM
     ove(const CPDF_Point & point,FX_BOOL bShift,FX_BOOL bCtrl) = 0; |  473   static void GenerateUnderlineObjects(CPDF_PageObjects* pPageObjects, | 
|  472         virtual void                                                    OnVK_UP(
     FX_BOOL bShift,FX_BOOL bCtrl) = 0; |  474                                        IFX_Edit* pEdit, | 
|  473         virtual void                                                    OnVK_DOW
     N(FX_BOOL bShift,FX_BOOL bCtrl) = 0; |  475                                        const CPDF_Point& ptOffset, | 
|  474         virtual void                                                    OnVK_LEF
     T(FX_BOOL bShift,FX_BOOL bCtrl) = 0; |  476                                        const CPVT_WordRange* pRange, | 
|  475         virtual void                                                    OnVK_RIG
     HT(FX_BOOL bShift,FX_BOOL bCtrl) = 0; |  477                                        FX_COLORREF color); | 
|  476         virtual void                                                    OnVK_HOM
     E(FX_BOOL bShift,FX_BOOL bCtrl) = 0; |  478  | 
|  477         virtual void                                                    OnVK_END
     (FX_BOOL bShift,FX_BOOL bCtrl) = 0; |  479  protected: | 
|  478         virtual void                                                    OnVK(int
     32_t nItemIndex,FX_BOOL bShift,FX_BOOL bCtrl) = 0; |  480   ~IFX_Edit() {} | 
|  479         virtual FX_BOOL                                                 OnChar(F
     X_WORD nChar,FX_BOOL bShift,FX_BOOL bCtrl) = 0; |  481 }; | 
|  480  |  482  | 
|  481 protected: |  483 class IFX_List_Notify { | 
|  482         ~IFX_List() { } |  484  public: | 
 |  485   virtual ~IFX_List_Notify() {} | 
 |  486   // set the horizontal scrollbar information. | 
 |  487   virtual void IOnSetScrollInfoX(FX_FLOAT fPlateMin, | 
 |  488                                  FX_FLOAT fPlateMax, | 
 |  489                                  FX_FLOAT fContentMin, | 
 |  490                                  FX_FLOAT fContentMax, | 
 |  491                                  FX_FLOAT fSmallStep, | 
 |  492                                  FX_FLOAT fBigStep) = 0; | 
 |  493   // set the vertical scrollbar information. | 
 |  494   virtual void IOnSetScrollInfoY(FX_FLOAT fPlateMin, | 
 |  495                                  FX_FLOAT fPlateMax, | 
 |  496                                  FX_FLOAT fContentMin, | 
 |  497                                  FX_FLOAT fContentMax, | 
 |  498                                  FX_FLOAT fSmallStep, | 
 |  499                                  FX_FLOAT fBigStep) = 0; | 
 |  500   // set the position of horizontal scrollbar. | 
 |  501   virtual void IOnSetScrollPosX(FX_FLOAT fx) = 0; | 
 |  502   // set the position of vertical scrollbar. | 
 |  503   virtual void IOnSetScrollPosY(FX_FLOAT fy) = 0; | 
 |  504   // Invalidate the rectangle relative to the bounding box of edit. | 
 |  505   virtual void IOnInvalidateRect(CPDF_Rect* pRect) = 0; | 
 |  506 }; | 
 |  507  | 
 |  508 class IFX_List { | 
 |  509  public: | 
 |  510   static IFX_List* NewList(); | 
 |  511   static void DelList(IFX_List* pList); | 
 |  512  | 
 |  513   virtual void SetFontMap(IFX_Edit_FontMap* pFontMap) = 0; | 
 |  514   virtual void SetNotify(IFX_List_Notify* pNotify) = 0; | 
 |  515  | 
 |  516   virtual void SetPlateRect(const CPDF_Rect& rect) = 0; | 
 |  517   virtual void SetFontSize(FX_FLOAT fFontSize) = 0; | 
 |  518  | 
 |  519   virtual CPDF_Rect GetPlateRect() const = 0; | 
 |  520   virtual CPDF_Rect GetContentRect() const = 0; | 
 |  521  | 
 |  522   virtual FX_FLOAT GetFontSize() const = 0; | 
 |  523   virtual IFX_Edit* GetItemEdit(int32_t nIndex) const = 0; | 
 |  524   virtual int32_t GetCount() const = 0; | 
 |  525   virtual FX_BOOL IsItemSelected(int32_t nIndex) const = 0; | 
 |  526   virtual FX_FLOAT GetFirstHeight() const = 0; | 
 |  527  | 
 |  528   virtual void SetMultipleSel(FX_BOOL bMultiple) = 0; | 
 |  529   virtual FX_BOOL IsMultipleSel() const = 0; | 
 |  530   virtual FX_BOOL IsValid(int32_t nItemIndex) const = 0; | 
 |  531   virtual int32_t FindNext(int32_t nIndex, FX_WCHAR nChar) const = 0; | 
 |  532  | 
 |  533   virtual void SetScrollPos(const CPDF_Point& point) = 0; | 
 |  534   virtual void ScrollToListItem(int32_t nItemIndex) = 0; | 
 |  535   virtual CPDF_Rect GetItemRect(int32_t nIndex) const = 0; | 
 |  536   virtual int32_t GetCaret() const = 0; | 
 |  537   virtual int32_t GetSelect() const = 0; | 
 |  538   virtual int32_t GetTopItem() const = 0; | 
 |  539   virtual int32_t GetItemIndex(const CPDF_Point& point) const = 0; | 
 |  540   virtual int32_t GetFirstSelected() const = 0; | 
 |  541  | 
 |  542   virtual void AddString(const FX_WCHAR* string) = 0; | 
 |  543   virtual void SetTopItem(int32_t nIndex) = 0; | 
 |  544   virtual void Select(int32_t nItemIndex) = 0; | 
 |  545   virtual void SetCaret(int32_t nItemIndex) = 0; | 
 |  546   virtual void Empty() = 0; | 
 |  547   virtual void Cancel() = 0; | 
 |  548   virtual CFX_WideString GetText() const = 0; | 
 |  549  | 
 |  550   virtual void OnMouseDown(const CPDF_Point& point, | 
 |  551                            FX_BOOL bShift, | 
 |  552                            FX_BOOL bCtrl) = 0; | 
 |  553   virtual void OnMouseMove(const CPDF_Point& point, | 
 |  554                            FX_BOOL bShift, | 
 |  555                            FX_BOOL bCtrl) = 0; | 
 |  556   virtual void OnVK_UP(FX_BOOL bShift, FX_BOOL bCtrl) = 0; | 
 |  557   virtual void OnVK_DOWN(FX_BOOL bShift, FX_BOOL bCtrl) = 0; | 
 |  558   virtual void OnVK_LEFT(FX_BOOL bShift, FX_BOOL bCtrl) = 0; | 
 |  559   virtual void OnVK_RIGHT(FX_BOOL bShift, FX_BOOL bCtrl) = 0; | 
 |  560   virtual void OnVK_HOME(FX_BOOL bShift, FX_BOOL bCtrl) = 0; | 
 |  561   virtual void OnVK_END(FX_BOOL bShift, FX_BOOL bCtrl) = 0; | 
 |  562   virtual void OnVK(int32_t nItemIndex, FX_BOOL bShift, FX_BOOL bCtrl) = 0; | 
 |  563   virtual FX_BOOL OnChar(FX_WORD nChar, FX_BOOL bShift, FX_BOOL bCtrl) = 0; | 
 |  564  | 
 |  565  protected: | 
 |  566   ~IFX_List() {} | 
|  483 }; |  567 }; | 
|  484  |  568  | 
|  485 #endif  // FPDFSDK_INCLUDE_FXEDIT_FX_EDIT_H_ |  569 #endif  // FPDFSDK_INCLUDE_FXEDIT_FX_EDIT_H_ | 
| OLD | NEW |