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