| 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_EDITCTRL_H_ | 7 #ifndef _PWL_EDITCTRL_H_ |
| 8 #define _PWL_EDITCTRL_H_ | 8 #define _PWL_EDITCTRL_H_ |
| 9 | 9 |
| 10 enum PWL_EDIT_ALIGNFORMAT_H | 10 enum PWL_EDIT_ALIGNFORMAT_H { PEAH_LEFT = 0, PEAH_MIDDLE, PEAH_RIGHT }; |
| 11 { | |
| 12 » PEAH_LEFT = 0, | |
| 13 » PEAH_MIDDLE, | |
| 14 » PEAH_RIGHT | |
| 15 }; | |
| 16 | 11 |
| 17 enum PWL_EDIT_ALIGNFORMAT_V | 12 enum PWL_EDIT_ALIGNFORMAT_V { PEAV_TOP = 0, PEAV_CENTER, PEAV_BOTTOM }; |
| 18 { | |
| 19 » PEAV_TOP = 0,» | |
| 20 » PEAV_CENTER, | |
| 21 » PEAV_BOTTOM | |
| 22 }; | |
| 23 | 13 |
| 24 class IPWL_Edit_Notify; | 14 class IPWL_Edit_Notify; |
| 25 class CPWL_EditCtrl; | 15 class CPWL_EditCtrl; |
| 26 class CPWL_Caret; | 16 class CPWL_Caret; |
| 27 class IFX_Edit; | 17 class IFX_Edit; |
| 28 class CPWL_Edit; | 18 class CPWL_Edit; |
| 29 | 19 |
| 30 class IPWL_Edit_Notify | 20 class IPWL_Edit_Notify { |
| 31 { | 21 public: |
| 32 public: | 22 // when the position of caret is changed in edit |
| 33 » //when the position of caret is changed in edit | 23 virtual void OnCaretMove(FX_INT32 x1, FX_INT32 y1, FX_INT32 x2, FX_INT32 y2) { |
| 34 » virtual void» » » » » OnCaretMove(FX_INT32 x1,
FX_INT32 y1, FX_INT32 x2, FX_INT32 y2) {} | 24 } |
| 35 » virtual void» » » » » OnContentChange(const CP
DF_Rect& rcContent){} | 25 virtual void OnContentChange(const CPDF_Rect& rcContent) {} |
| 36 » //OprType: 0 InsertWord | 26 // OprType: 0 InsertWord |
| 37 » //1 InsertReturn | 27 // 1 InsertReturn |
| 38 » //2 BackSpace | 28 // 2 BackSpace |
| 39 » //3 Delete | 29 // 3 Delete |
| 40 » //4 Clear | 30 // 4 Clear |
| 41 » //5 InsertText | 31 // 5 InsertText |
| 42 » //6 SetText | 32 // 6 SetText |
| 43 » virtual void» » » » » OnInsertWord(const CPVT_
WordPlace& place, const CPVT_WordPlace& oldplace){} | 33 virtual void OnInsertWord(const CPVT_WordPlace& place, |
| 44 » virtual void» » » » » OnInsertReturn(const CPV
T_WordPlace& place, const CPVT_WordPlace& oldplace){} | 34 const CPVT_WordPlace& oldplace) {} |
| 45 » virtual void» » » » » OnBackSpace(const CPVT_W
ordPlace& place, const CPVT_WordPlace& oldplace){} | 35 virtual void OnInsertReturn(const CPVT_WordPlace& place, |
| 46 » virtual void» » » » » OnDelete(const CPVT_Word
Place& place, const CPVT_WordPlace& oldplace){} | 36 const CPVT_WordPlace& oldplace) {} |
| 47 » virtual void» » » » » OnClear(const CPVT_WordP
lace& place, const CPVT_WordPlace& oldplace){} | 37 virtual void OnBackSpace(const CPVT_WordPlace& place, |
| 48 » virtual void» » » » » OnInsertText(const CPVT_
WordPlace& place, const CPVT_WordPlace& oldplace){} | 38 const CPVT_WordPlace& oldplace) {} |
| 49 » virtual void» » » » » OnSetText(const CPVT_Wor
dPlace& place, const CPVT_WordPlace& oldplace){} | 39 virtual void OnDelete(const CPVT_WordPlace& place, |
| 50 » virtual void» » » » » OnAddUndo(CPWL_Edit* pEd
it) {} | 40 const CPVT_WordPlace& oldplace) {} |
| 41 virtual void OnClear(const CPVT_WordPlace& place, |
| 42 const CPVT_WordPlace& oldplace) {} |
| 43 virtual void OnInsertText(const CPVT_WordPlace& place, |
| 44 const CPVT_WordPlace& oldplace) {} |
| 45 virtual void OnSetText(const CPVT_WordPlace& place, |
| 46 const CPVT_WordPlace& oldplace) {} |
| 47 virtual void OnAddUndo(CPWL_Edit* pEdit) {} |
| 51 }; | 48 }; |
| 52 | 49 |
| 53 class PWL_CLASS CPWL_EditCtrl : public CPWL_Wnd, public IFX_Edit_Notify | 50 class PWL_CLASS CPWL_EditCtrl : public CPWL_Wnd, public IFX_Edit_Notify { |
| 54 { | 51 friend class CPWL_Edit_Notify; |
| 55 » friend class CPWL_Edit_Notify; | |
| 56 | 52 |
| 57 public: | 53 public: |
| 58 » CPWL_EditCtrl(); | 54 CPWL_EditCtrl(); |
| 59 » virtual ~CPWL_EditCtrl(); | 55 virtual ~CPWL_EditCtrl(); |
| 60 | 56 |
| 61 public: | 57 public: |
| 62 » virtual void» » » » » OnCreate(PWL_CREATEPARAM
& cp); | 58 virtual void OnCreate(PWL_CREATEPARAM& cp); |
| 63 » virtual void» » » » » OnCreated(); | 59 virtual void OnCreated(); |
| 64 | 60 |
| 65 » virtual FX_BOOL»» » » » OnKeyDown(FX_WORD nChar,
FX_DWORD nFlag); | 61 virtual FX_BOOL OnKeyDown(FX_WORD nChar, FX_DWORD nFlag); |
| 66 » virtual FX_BOOL»» » » » OnChar(FX_WORD nChar, FX
_DWORD nFlag); | 62 virtual FX_BOOL OnChar(FX_WORD nChar, FX_DWORD nFlag); |
| 67 » virtual FX_BOOL»» » » » OnLButtonDown(const CPDF
_Point & point, FX_DWORD nFlag);» | 63 virtual FX_BOOL OnLButtonDown(const CPDF_Point& point, FX_DWORD nFlag); |
| 68 » virtual FX_BOOL»» » » » OnLButtonUp(const CPDF_P
oint & point, FX_DWORD nFlag);» | 64 virtual FX_BOOL OnLButtonUp(const CPDF_Point& point, FX_DWORD nFlag); |
| 69 » virtual FX_BOOL»» » » » OnMouseMove(const CPDF_P
oint & point, FX_DWORD nFlag); | 65 virtual FX_BOOL OnMouseMove(const CPDF_Point& point, FX_DWORD nFlag); |
| 70 » virtual void» » » » » OnNotify(CPWL_Wnd* pWnd,
FX_DWORD msg, FX_INTPTR wParam = 0, FX_INTPTR lParam = 0); | 66 virtual void OnNotify(CPWL_Wnd* pWnd, |
| 67 FX_DWORD msg, |
| 68 FX_INTPTR wParam = 0, |
| 69 FX_INTPTR lParam = 0); |
| 71 | 70 |
| 72 » virtual void» » » » » CreateChildWnd(const PWL
_CREATEPARAM & cp); | 71 virtual void CreateChildWnd(const PWL_CREATEPARAM& cp); |
| 73 » virtual void» » » » » RePosChildWnd();» | 72 virtual void RePosChildWnd(); |
| 74 » virtual void» » » » » SetFontSize(FX_FLOAT fFo
ntSize); | 73 virtual void SetFontSize(FX_FLOAT fFontSize); |
| 75 » virtual FX_FLOAT» » » » GetFontSize() const; | 74 virtual FX_FLOAT GetFontSize() const; |
| 76 » | |
| 77 public: | |
| 78 » virtual void» » » » » SetText(FX_LPCWSTR csTex
t); | |
| 79 | 75 |
| 80 » virtual void» » » » » CopyText(); | 76 public: |
| 81 » virtual void» » » » » PasteText(); | 77 virtual void SetText(FX_LPCWSTR csText); |
| 82 » virtual void » » » » » CutText(); | |
| 83 | 78 |
| 84 » CPDF_Rect» » » » » » GetContentRect()
const; | 79 virtual void CopyText(); |
| 85 » void» » » » » » » GetCaretPos(FX_I
NT32& x, FX_INT32& y) const; | 80 virtual void PasteText(); |
| 86 » FX_BOOL»» » » » » » IsModified() con
st; | 81 virtual void CutText(); |
| 87 | 82 |
| 88 » CFX_WideString» » » » » GetText() const; | 83 CPDF_Rect GetContentRect() const; |
| 89 » void» » » » » » » SetSel(FX_INT32
nStartChar,FX_INT32 nEndChar); | 84 void GetCaretPos(FX_INT32& x, FX_INT32& y) const; |
| 90 » void» » » » » » » GetSel(FX_INT32
& nStartChar, FX_INT32 & nEndChar ) const; | 85 FX_BOOL IsModified() const; |
| 91 » void» » » » » » » GetTextRange(con
st CPDF_Rect& rect, FX_INT32 & nStartChar, FX_INT32 & nEndChar) const; | |
| 92 » CFX_WideString» » » » » GetText(FX_INT32 & nStar
tChar, FX_INT32 & nEndChar) const; | |
| 93 » void» » » » » » » Clear(); | |
| 94 » void» » » » » » » SelectAll(); | |
| 95 | 86 |
| 96 » FX_INT32» » » » » » GetCaret() const
; | 87 CFX_WideString GetText() const; |
| 97 » void» » » » » » » SetCaret(FX_INT3
2 nPos); | 88 void SetSel(FX_INT32 nStartChar, FX_INT32 nEndChar); |
| 98 » FX_INT32» » » » » » GetTotalWords()
const; | 89 void GetSel(FX_INT32& nStartChar, FX_INT32& nEndChar) const; |
| 90 void GetTextRange(const CPDF_Rect& rect, |
| 91 FX_INT32& nStartChar, |
| 92 FX_INT32& nEndChar) const; |
| 93 CFX_WideString GetText(FX_INT32& nStartChar, FX_INT32& nEndChar) const; |
| 94 void Clear(); |
| 95 void SelectAll(); |
| 99 | 96 |
| 100 » void» » » » » » » Paint(); | 97 FX_INT32 GetCaret() const; |
| 98 void SetCaret(FX_INT32 nPos); |
| 99 FX_INT32 GetTotalWords() const; |
| 101 | 100 |
| 102 » void» » » » » » » EnableRefresh(FX
_BOOL bRefresh);» | 101 void Paint(); |
| 103 » CPDF_Point» » » » » » GetScrollPos() c
onst; | |
| 104 » void» » » » » » » SetScrollPos(con
st CPDF_Point& point); | |
| 105 | 102 |
| 106 » void» » » » » » » SetEditNotify(IP
WL_Edit_Notify* pNotify) {m_pEditNotify = pNotify;}» | 103 void EnableRefresh(FX_BOOL bRefresh); |
| 104 CPDF_Point GetScrollPos() const; |
| 105 void SetScrollPos(const CPDF_Point& point); |
| 107 | 106 |
| 108 » void» » » » » » » SetCharSet(FX_BY
TE nCharSet){m_nCharSet = nCharSet;} | 107 void SetEditNotify(IPWL_Edit_Notify* pNotify) { m_pEditNotify = pNotify; } |
| 109 » FX_INT32» » » » » » GetCharSet() con
st; | |
| 110 | 108 |
| 111 » void» » » » » » » SetCodePage(FX_I
NT32 nCodePage){m_nCodePage = nCodePage;} | 109 void SetCharSet(FX_BYTE nCharSet) { m_nCharSet = nCharSet; } |
| 112 » FX_INT32» » » » » » GetCodePage() co
nst {return m_nCodePage;} | 110 FX_INT32 GetCharSet() const; |
| 113 | 111 |
| 114 » CPDF_Font *» » » » » » GetCaretFont() c
onst; | 112 void SetCodePage(FX_INT32 nCodePage) { m_nCodePage = nCodePage; } |
| 115 » FX_FLOAT» » » » » » GetCaretFontSize
() const; | 113 FX_INT32 GetCodePage() const { return m_nCodePage; } |
| 116 | 114 |
| 117 » FX_BOOL»» » » » » » CanUndo() const; | 115 CPDF_Font* GetCaretFont() const; |
| 118 » FX_BOOL»» » » » » » CanRedo() const; | 116 FX_FLOAT GetCaretFontSize() const; |
| 119 » void» » » » » » » Redo(); | |
| 120 » void» » » » » » » Undo(); | |
| 121 | 117 |
| 122 » void» » » » » » » SetReadyToInput(
); | 118 FX_BOOL CanUndo() const; |
| 123 protected: | 119 FX_BOOL CanRedo() const; |
| 124 » virtual void» » » » » ShowVScrollBar(FX_BOOL b
Show); | 120 void Redo(); |
| 121 void Undo(); |
| 125 | 122 |
| 126 » virtual void» » » » » InsertWord(FX_WORD word,
FX_INT32 nCharset); | 123 void SetReadyToInput(); |
| 127 » virtual void» » » » » InsertReturn(); | |
| 128 » virtual void» » » » » InsertText(FX_LPCWSTR cs
Text); | |
| 129 | 124 |
| 130 » virtual void» » » » » SetCursor(); | 125 protected: |
| 131 » FX_BOOL»» » » » » » IsWndHorV(); | 126 virtual void ShowVScrollBar(FX_BOOL bShow); |
| 132 | 127 |
| 133 » void» » » » » » » Delete(); | 128 virtual void InsertWord(FX_WORD word, FX_INT32 nCharset); |
| 134 » void» » » » » » » Backspace(); | 129 virtual void InsertReturn(); |
| 130 virtual void InsertText(FX_LPCWSTR csText); |
| 135 | 131 |
| 136 protected: | 132 virtual void SetCursor(); |
| 137 » void» » » » » » » GetCaretInfo(CPD
F_Point & ptHead, CPDF_Point & ptFoot) const; | 133 FX_BOOL IsWndHorV(); |
| 138 » void» » » » » » » SetCaret(FX_BOOL
bVisible, const CPDF_Point & ptHead, const CPDF_Point & ptFoot); | |
| 139 » | |
| 140 » void» » » » » » » SetEditCaret(FX_
BOOL bVisible); | |
| 141 | 134 |
| 142 protected: | 135 void Delete(); |
| 143 » virtual void» » » » » IOnSetScrollInfoX(FX_FLO
AT fPlateMin, FX_FLOAT fPlateMax, | 136 void Backspace(); |
| 144 » » » » » » » » » »
» » FX_FLOAT fContentMin, FX_FLOAT fContentMax, | |
| 145 » » » » » » » » » »
» » FX_FLOAT fSmallStep, FX_FLOAT fBigStep){} | |
| 146 » virtual void» » » » » IOnSetScrollInfoY(FX_FLO
AT fPlateMin, FX_FLOAT fPlateMax, | |
| 147 » » » » » » » » » »
» » FX_FLOAT fContentMin, FX_FLOAT fContentMax, | |
| 148 » » » » » » » » » »
» » FX_FLOAT fSmallStep, FX_FLOAT fBigStep); | |
| 149 » virtual void» » » » » IOnSetScrollPosX(FX_FLOA
T fx){} | |
| 150 » virtual void» » » » » IOnSetScrollPosY(FX_FLOA
T fy); | |
| 151 » virtual void» » » » » IOnSetCaret(FX_BOOL bVis
ible,const CPDF_Point & ptHead,const CPDF_Point & ptFoot, const CPVT_WordPlace&
place); | |
| 152 » virtual void» » » » » IOnCaretChange(const CPV
T_SecProps & secProps, const CPVT_WordProps & wordProps); | |
| 153 » virtual void» » » » » IOnContentChange(const C
PDF_Rect& rcContent); | |
| 154 » virtual void» » » » » IOnInvalidateRect(CPDF_R
ect * pRect); | |
| 155 | 137 |
| 156 private: | 138 protected: |
| 157 » void» » » » » » » CreateEditCaret(
const PWL_CREATEPARAM & cp); | 139 void GetCaretInfo(CPDF_Point& ptHead, CPDF_Point& ptFoot) const; |
| 140 void SetCaret(FX_BOOL bVisible, |
| 141 const CPDF_Point& ptHead, |
| 142 const CPDF_Point& ptFoot); |
| 158 | 143 |
| 159 protected: | 144 void SetEditCaret(FX_BOOL bVisible); |
| 160 » IFX_Edit*» » » » » » m_pEdit; | |
| 161 » CPWL_Caret*» » » » » » m_pEditCaret; | |
| 162 » FX_BOOL»» » » » » » m_bMouseDown; | |
| 163 » IPWL_Edit_Notify*» » » » m_pEditNotify;» | |
| 164 | 145 |
| 165 private: | 146 protected: |
| 166 » FX_INT32» » » » » » m_nCharSet; | 147 virtual void IOnSetScrollInfoX(FX_FLOAT fPlateMin, |
| 167 » FX_INT32» » » » » » m_nCodePage; | 148 FX_FLOAT fPlateMax, |
| 149 FX_FLOAT fContentMin, |
| 150 FX_FLOAT fContentMax, |
| 151 FX_FLOAT fSmallStep, |
| 152 FX_FLOAT fBigStep) {} |
| 153 virtual void IOnSetScrollInfoY(FX_FLOAT fPlateMin, |
| 154 FX_FLOAT fPlateMax, |
| 155 FX_FLOAT fContentMin, |
| 156 FX_FLOAT fContentMax, |
| 157 FX_FLOAT fSmallStep, |
| 158 FX_FLOAT fBigStep); |
| 159 virtual void IOnSetScrollPosX(FX_FLOAT fx) {} |
| 160 virtual void IOnSetScrollPosY(FX_FLOAT fy); |
| 161 virtual void IOnSetCaret(FX_BOOL bVisible, |
| 162 const CPDF_Point& ptHead, |
| 163 const CPDF_Point& ptFoot, |
| 164 const CPVT_WordPlace& place); |
| 165 virtual void IOnCaretChange(const CPVT_SecProps& secProps, |
| 166 const CPVT_WordProps& wordProps); |
| 167 virtual void IOnContentChange(const CPDF_Rect& rcContent); |
| 168 virtual void IOnInvalidateRect(CPDF_Rect* pRect); |
| 169 |
| 170 private: |
| 171 void CreateEditCaret(const PWL_CREATEPARAM& cp); |
| 172 |
| 173 protected: |
| 174 IFX_Edit* m_pEdit; |
| 175 CPWL_Caret* m_pEditCaret; |
| 176 FX_BOOL m_bMouseDown; |
| 177 IPWL_Edit_Notify* m_pEditNotify; |
| 178 |
| 179 private: |
| 180 FX_INT32 m_nCharSet; |
| 181 FX_INT32 m_nCodePage; |
| 168 }; | 182 }; |
| 169 | 183 |
| 170 #endif | 184 #endif |
| 171 | |
| OLD | NEW |