| 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_PDFWINDOW_PWL_EDIT_H_ | 7 #ifndef FPDFSDK_INCLUDE_PDFWINDOW_PWL_EDIT_H_ |
| 8 #define FPDFSDK_INCLUDE_PDFWINDOW_PWL_EDIT_H_ | 8 #define FPDFSDK_INCLUDE_PDFWINDOW_PWL_EDIT_H_ |
| 9 | 9 |
| 10 #include "../../../core/include/fxcrt/fx_basic.h" | 10 #include "../../../core/include/fxcrt/fx_basic.h" |
| 11 #include "PWL_EditCtrl.h" | 11 #include "PWL_EditCtrl.h" |
| 12 #include "PWL_Wnd.h" | 12 #include "PWL_Wnd.h" |
| 13 | 13 |
| 14 class CPWL_Edit; | 14 class CPWL_Edit; |
| 15 class IPWL_Filler_Notify; | 15 class IPWL_Filler_Notify; |
| 16 class IPWL_SpellCheck; | 16 class IPWL_SpellCheck; |
| 17 | 17 |
| 18 class IPWL_Filler_Notify | 18 class IPWL_Filler_Notify { |
| 19 { | 19 public: |
| 20 public: | 20 virtual ~IPWL_Filler_Notify() {} |
| 21 virtual ~IPWL_Filler_Notify() { } | 21 virtual void QueryWherePopup( |
| 22 » virtual void» » » » » QueryWherePopup(void* pP
rivateData, FX_FLOAT fPopupMin,FX_FLOAT fPopupMax, | 22 void* pPrivateData, |
| 23 » » » » » » » » » »
int32_t & nRet, FX_FLOAT & fPopupRet) = 0; //nRet: (0:bottom 1:top) | 23 FX_FLOAT fPopupMin, |
| 24 » virtual void» » » » » OnBeforeKeyStroke(FX_BOO
L bEditOrList, void* pPrivateData, int32_t nKeyCode, | 24 FX_FLOAT fPopupMax, |
| 25 » » » » » » » » » »
CFX_WideString & strChange, const CFX_WideString& strChangeEx, | 25 int32_t& nRet, |
| 26 » » » » » » » » » »
int nSelStart, int nSelEnd, | 26 FX_FLOAT& fPopupRet) = 0; // nRet: (0:bottom 1:top) |
| 27 » » » » » » » » » »
FX_BOOL bKeyDown, FX_BOOL & bRC, FX_BOOL & bExit, FX_DWORD nFlag) = 0; | 27 virtual void OnBeforeKeyStroke(FX_BOOL bEditOrList, |
| 28 » virtual void» » » » » OnAfterKeyStroke(FX_BOOL
bEditOrList, void* pPrivateData, FX_BOOL & bExit, FX_DWORD nFlag) = 0; | 28 void* pPrivateData, |
| 29 int32_t nKeyCode, |
| 30 CFX_WideString& strChange, |
| 31 const CFX_WideString& strChangeEx, |
| 32 int nSelStart, |
| 33 int nSelEnd, |
| 34 FX_BOOL bKeyDown, |
| 35 FX_BOOL& bRC, |
| 36 FX_BOOL& bExit, |
| 37 FX_DWORD nFlag) = 0; |
| 38 virtual void OnAfterKeyStroke(FX_BOOL bEditOrList, |
| 39 void* pPrivateData, |
| 40 FX_BOOL& bExit, |
| 41 FX_DWORD nFlag) = 0; |
| 29 }; | 42 }; |
| 30 | 43 |
| 31 class CPWL_Edit : public CPWL_EditCtrl, public IFX_Edit_OprNotify | 44 class CPWL_Edit : public CPWL_EditCtrl, public IFX_Edit_OprNotify { |
| 32 { | 45 public: |
| 33 public: | 46 CPWL_Edit(); |
| 34 » CPWL_Edit(); | 47 virtual ~CPWL_Edit(); |
| 35 » virtual ~CPWL_Edit(); | |
| 36 | 48 |
| 37 public: | 49 public: |
| 38 » virtual CFX_ByteString» » » GetClassName() const; | 50 virtual CFX_ByteString GetClassName() const; |
| 39 » virtual void» » » » » OnDestroy(); | 51 virtual void OnDestroy(); |
| 40 » virtual void» » » » » OnCreated(); | 52 virtual void OnCreated(); |
| 41 » virtual void» » » » » RePosChildWnd(); | 53 virtual void RePosChildWnd(); |
| 42 » virtual CPDF_Rect» » » » GetClientRect() const; | 54 virtual CPDF_Rect GetClientRect() const; |
| 43 | 55 |
| 44 » virtual void» » » » » GetThisAppearanceStream(
CFX_ByteTextBuf & sAppStream); | 56 virtual void GetThisAppearanceStream(CFX_ByteTextBuf& sAppStream); |
| 45 » virtual void» » » » » DrawThisAppearance(CFX_R
enderDevice* pDevice, CPDF_Matrix* pUser2Device); | 57 virtual void DrawThisAppearance(CFX_RenderDevice* pDevice, |
| 58 CPDF_Matrix* pUser2Device); |
| 46 | 59 |
| 47 » virtual FX_BOOL»» » » » OnLButtonDown(const CPDF
_Point & point, FX_DWORD nFlag); | 60 virtual FX_BOOL OnLButtonDown(const CPDF_Point& point, FX_DWORD nFlag); |
| 48 » virtual FX_BOOL»» » » » OnLButtonDblClk(const CP
DF_Point & point, FX_DWORD nFlag); | 61 virtual FX_BOOL OnLButtonDblClk(const CPDF_Point& point, FX_DWORD nFlag); |
| 49 » virtual FX_BOOL»» » » » OnRButtonUp(const CPDF_P
oint & point, FX_DWORD nFlag); | 62 virtual FX_BOOL OnRButtonUp(const CPDF_Point& point, FX_DWORD nFlag); |
| 50 » virtual FX_BOOL»» » » » OnMouseWheel(short zDelt
a, const CPDF_Point & point, FX_DWORD nFlag); | 63 virtual FX_BOOL OnMouseWheel(short zDelta, |
| 64 const CPDF_Point& point, |
| 65 FX_DWORD nFlag); |
| 51 | 66 |
| 52 » virtual FX_BOOL»» » » » OnKeyDown(FX_WORD nChar,
FX_DWORD nFlag); | 67 virtual FX_BOOL OnKeyDown(FX_WORD nChar, FX_DWORD nFlag); |
| 53 » virtual FX_BOOL»» » » » OnChar(FX_WORD nChar, FX
_DWORD nFlag); | 68 virtual FX_BOOL OnChar(FX_WORD nChar, FX_DWORD nFlag); |
| 54 | 69 |
| 55 » virtual CPDF_Rect» » » » GetFocusRect() const; | 70 virtual CPDF_Rect GetFocusRect() const; |
| 56 | 71 |
| 57 public: | 72 public: |
| 58 » void» » » » » » » SetAlignFormatH(
PWL_EDIT_ALIGNFORMAT_H nFormat = PEAH_LEFT, FX_BOOL bPaint = TRUE);» //0:left
1:right 2:middle | 73 void SetAlignFormatH(PWL_EDIT_ALIGNFORMAT_H nFormat = PEAH_LEFT, |
| 59 » void» » » » » » » SetAlignFormatV(
PWL_EDIT_ALIGNFORMAT_V nFormat = PEAV_TOP, FX_BOOL bPaint = TRUE);» //0:top
1:bottom 2:center | 74 FX_BOOL bPaint = TRUE); // 0:left 1:right 2:middle |
| 75 void SetAlignFormatV(PWL_EDIT_ALIGNFORMAT_V nFormat = PEAV_TOP, |
| 76 FX_BOOL bPaint = TRUE); // 0:top 1:bottom 2:center |
| 60 | 77 |
| 61 » void» » » » » » » SetCharArray(int
32_t nCharArray); | 78 void SetCharArray(int32_t nCharArray); |
| 62 » void» » » » » » » SetLimitChar(int
32_t nLimitChar); | 79 void SetLimitChar(int32_t nLimitChar); |
| 63 | 80 |
| 64 » void» » » » » » » SetHorzScale(int
32_t nHorzScale, FX_BOOL bPaint = TRUE); | 81 void SetHorzScale(int32_t nHorzScale, FX_BOOL bPaint = TRUE); |
| 65 » void» » » » » » » SetCharSpace(FX_
FLOAT fCharSpace, FX_BOOL bPaint = TRUE); | 82 void SetCharSpace(FX_FLOAT fCharSpace, FX_BOOL bPaint = TRUE); |
| 66 | 83 |
| 67 » void» » » » » » » SetLineLeading(F
X_FLOAT fLineLeading, FX_BOOL bPaint = TRUE); | 84 void SetLineLeading(FX_FLOAT fLineLeading, FX_BOOL bPaint = TRUE); |
| 68 | 85 |
| 69 » void» » » » » » » EnableSpellCheck
(FX_BOOL bEnabled); | 86 void EnableSpellCheck(FX_BOOL bEnabled); |
| 70 | 87 |
| 71 » FX_BOOL»» » » » » » CanSelectAll() c
onst; | 88 FX_BOOL CanSelectAll() const; |
| 72 » FX_BOOL»» » » » » » CanClear() const
; | 89 FX_BOOL CanClear() const; |
| 73 » FX_BOOL»» » » » » » CanCopy() const; | 90 FX_BOOL CanCopy() const; |
| 74 » FX_BOOL»» » » » » » CanCut() const; | 91 FX_BOOL CanCut() const; |
| 75 » FX_BOOL»» » » » » » CanPaste() const
; | 92 FX_BOOL CanPaste() const; |
| 76 | 93 |
| 77 » virtual void» » » » » CopyText(); | 94 virtual void CopyText(); |
| 78 » virtual void» » » » » PasteText(); | 95 virtual void PasteText(); |
| 79 » virtual void » » » » » CutText(); | 96 virtual void CutText(); |
| 80 | 97 |
| 81 » virtual void» » » » » SetText(const FX_WCHAR*
csText); | 98 virtual void SetText(const FX_WCHAR* csText); |
| 82 » void» » » » » » » ReplaceSel(const
FX_WCHAR* csText); | 99 void ReplaceSel(const FX_WCHAR* csText); |
| 83 | 100 |
| 84 » CFX_ByteString» » » » » GetTextAppearanceStream(
const CPDF_Point & ptOffset) const; | 101 CFX_ByteString GetTextAppearanceStream(const CPDF_Point& ptOffset) const; |
| 85 » CFX_ByteString» » » » » GetCaretAppearanceStream
(const CPDF_Point & ptOffset) const; | 102 CFX_ByteString GetCaretAppearanceStream(const CPDF_Point& ptOffset) const; |
| 86 » CFX_ByteString» » » » » GetSelectAppearanceStrea
m(const CPDF_Point & ptOffset) const; | 103 CFX_ByteString GetSelectAppearanceStream(const CPDF_Point& ptOffset) const; |
| 87 | 104 |
| 88 » FX_BOOL»» » » » » » IsTextFull() con
st; | 105 FX_BOOL IsTextFull() const; |
| 89 | 106 |
| 90 » static FX_FLOAT»» » » » GetCharArrayAutoFontSize
(CPDF_Font* pFont, const CPDF_Rect& rcPlate, int32_t nCharArray); | 107 static FX_FLOAT GetCharArrayAutoFontSize(CPDF_Font* pFont, |
| 108 const CPDF_Rect& rcPlate, |
| 109 int32_t nCharArray); |
| 91 | 110 |
| 92 » void» » » » » » » SetFillerNotify(
IPWL_Filler_Notify* pNotify) {m_pFillerNotify = pNotify;} | 111 void SetFillerNotify(IPWL_Filler_Notify* pNotify) { |
| 112 m_pFillerNotify = pNotify; |
| 113 } |
| 93 | 114 |
| 94 » void» » » » » » » GeneratePageObje
cts(CPDF_PageObjects* pPageObjects, | 115 void GeneratePageObjects(CPDF_PageObjects* pPageObjects, |
| 95 » » » » » » » » » »
const CPDF_Point& ptOffset, CFX_ArrayTemplate<CPDF_TextObject*>& ObjArray); | 116 const CPDF_Point& ptOffset, |
| 96 » void» » » » » » » GeneratePageObje
cts(CPDF_PageObjects* pPageObjects, | 117 CFX_ArrayTemplate<CPDF_TextObject*>& ObjArray); |
| 97 » » » » » » » » » »
const CPDF_Point& ptOffset); | 118 void GeneratePageObjects(CPDF_PageObjects* pPageObjects, |
| 119 const CPDF_Point& ptOffset); |
| 98 | 120 |
| 99 protected: | 121 protected: |
| 100 » virtual void» » » » » OnSetFocus(); | 122 virtual void OnSetFocus(); |
| 101 » virtual void» » » » » OnKillFocus(); | 123 virtual void OnKillFocus(); |
| 102 | 124 |
| 103 protected: | 125 protected: |
| 104 » virtual void» » » » » OnInsertWord(const CPVT_
WordPlace& place, const CPVT_WordPlace& oldplace); | 126 virtual void OnInsertWord(const CPVT_WordPlace& place, |
| 105 » virtual void» » » » » OnInsertReturn(const CPV
T_WordPlace& place, const CPVT_WordPlace& oldplace); | 127 const CPVT_WordPlace& oldplace); |
| 106 » virtual void» » » » » OnBackSpace(const CPVT_W
ordPlace& place, const CPVT_WordPlace& oldplace); | 128 virtual void OnInsertReturn(const CPVT_WordPlace& place, |
| 107 » virtual void» » » » » OnDelete(const CPVT_Word
Place& place, const CPVT_WordPlace& oldplace); | 129 const CPVT_WordPlace& oldplace); |
| 108 » virtual void» » » » » OnClear(const CPVT_WordP
lace& place, const CPVT_WordPlace& oldplace); | 130 virtual void OnBackSpace(const CPVT_WordPlace& place, |
| 109 » virtual void» » » » » OnSetText(const CPVT_Wor
dPlace& place, const CPVT_WordPlace& oldplace); | 131 const CPVT_WordPlace& oldplace); |
| 110 » virtual void» » » » » OnInsertText(const CPVT_
WordPlace& place, const CPVT_WordPlace& oldplace); | 132 virtual void OnDelete(const CPVT_WordPlace& place, |
| 111 » virtual void» » » » » OnAddUndo(IFX_Edit_UndoI
tem* pUndoItem); | 133 const CPVT_WordPlace& oldplace); |
| 134 virtual void OnClear(const CPVT_WordPlace& place, |
| 135 const CPVT_WordPlace& oldplace); |
| 136 virtual void OnSetText(const CPVT_WordPlace& place, |
| 137 const CPVT_WordPlace& oldplace); |
| 138 virtual void OnInsertText(const CPVT_WordPlace& place, |
| 139 const CPVT_WordPlace& oldplace); |
| 140 virtual void OnAddUndo(IFX_Edit_UndoItem* pUndoItem); |
| 112 | 141 |
| 113 private: | 142 private: |
| 114 » CPVT_WordRange» » » » » GetSelectWordRange() con
st; | 143 CPVT_WordRange GetSelectWordRange() const; |
| 115 » virtual void» » » » » ShowVScrollBar(FX_BOOL b
Show); | 144 virtual void ShowVScrollBar(FX_BOOL bShow); |
| 116 » FX_BOOL»» » » » » » IsVScrollBarVisi
ble() const; | 145 FX_BOOL IsVScrollBarVisible() const; |
| 117 » void» » » » » » » SetParamByFlag()
; | 146 void SetParamByFlag(); |
| 118 | 147 |
| 119 » FX_FLOAT» » » » » » GetCharArrayAuto
FontSize(int32_t nCharArray); | 148 FX_FLOAT GetCharArrayAutoFontSize(int32_t nCharArray); |
| 120 » CPDF_Point» » » » » » GetWordRightBott
omPoint(const CPVT_WordPlace& wpWord); | 149 CPDF_Point GetWordRightBottomPoint(const CPVT_WordPlace& wpWord); |
| 121 | 150 |
| 122 » CPVT_WordRange» » » » » CombineWordRange(const C
PVT_WordRange& wr1, const CPVT_WordRange& wr2); | 151 CPVT_WordRange CombineWordRange(const CPVT_WordRange& wr1, |
| 123 » CPVT_WordRange» » » » » GetLatinWordsRange(const
CPDF_Point & point) const; | 152 const CPVT_WordRange& wr2); |
| 124 » CPVT_WordRange» » » » » GetLatinWordsRange(const
CPVT_WordPlace & place) const; | 153 CPVT_WordRange GetLatinWordsRange(const CPDF_Point& point) const; |
| 125 » CPVT_WordRange» » » » » GetArabicWordsRange(cons
t CPVT_WordPlace & place) const; | 154 CPVT_WordRange GetLatinWordsRange(const CPVT_WordPlace& place) const; |
| 126 » CPVT_WordRange» » » » » GetSameWordsRange(const
CPVT_WordPlace & place, FX_BOOL bLatin, FX_BOOL bArabic) const; | 155 CPVT_WordRange GetArabicWordsRange(const CPVT_WordPlace& place) const; |
| 156 CPVT_WordRange GetSameWordsRange(const CPVT_WordPlace& place, |
| 157 FX_BOOL bLatin, |
| 158 FX_BOOL bArabic) const; |
| 127 | 159 |
| 128 » void» » » » » » » AjustArabicWords
(const CPVT_WordRange& wr); | 160 void AjustArabicWords(const CPVT_WordRange& wr); |
| 129 public: | 161 |
| 130 » FX_BOOL»» » » » » » IsProceedtoOnCha
r(FX_WORD nKeyCode, FX_DWORD nFlag); | 162 public: |
| 131 private: | 163 FX_BOOL IsProceedtoOnChar(FX_WORD nKeyCode, FX_DWORD nFlag); |
| 132 » IPWL_Filler_Notify*» » » » m_pFillerNotify; | 164 |
| 133 » IPWL_SpellCheck*» » » » m_pSpellCheck; | 165 private: |
| 134 » FX_BOOL»» » » » » » m_bFocus; | 166 IPWL_Filler_Notify* m_pFillerNotify; |
| 135 » CPDF_Rect» » » » » » m_rcOldWindow; | 167 IPWL_SpellCheck* m_pSpellCheck; |
| 136 public: | 168 FX_BOOL m_bFocus; |
| 137 » void» » » » » » » AttachFFLData(vo
id* pData) {m_pFormFiller = pData;} | 169 CPDF_Rect m_rcOldWindow; |
| 138 private: | 170 |
| 139 » void*» » » » » » » m_pFormFiller; | 171 public: |
| 172 void AttachFFLData(void* pData) { m_pFormFiller = pData; } |
| 173 |
| 174 private: |
| 175 void* m_pFormFiller; |
| 140 }; | 176 }; |
| 141 | 177 |
| 142 #endif // FPDFSDK_INCLUDE_PDFWINDOW_PWL_EDIT_H_ | 178 #endif // FPDFSDK_INCLUDE_PDFWINDOW_PWL_EDIT_H_ |
| OLD | NEW |