Index: fpdfsdk/include/pdfwindow/PWL_EditCtrl.h |
diff --git a/fpdfsdk/include/pdfwindow/PWL_EditCtrl.h b/fpdfsdk/include/pdfwindow/PWL_EditCtrl.h |
index 273b3842c867eed2f4e8440e325bee5ccef355d9..784ec61140029dea5e87015b79d3bc2d40e5e98b 100644 |
--- a/fpdfsdk/include/pdfwindow/PWL_EditCtrl.h |
+++ b/fpdfsdk/include/pdfwindow/PWL_EditCtrl.h |
@@ -18,159 +18,172 @@ class IFX_Edit; |
class IPWL_Edit_Notify; |
struct CPVT_WordPlace; |
-enum PWL_EDIT_ALIGNFORMAT_H |
-{ |
- PEAH_LEFT = 0, |
- PEAH_MIDDLE, |
- PEAH_RIGHT |
+enum PWL_EDIT_ALIGNFORMAT_H { PEAH_LEFT = 0, PEAH_MIDDLE, PEAH_RIGHT }; |
+ |
+enum PWL_EDIT_ALIGNFORMAT_V { PEAV_TOP = 0, PEAV_CENTER, PEAV_BOTTOM }; |
+ |
+class IPWL_Edit_Notify { |
+ public: |
+ virtual ~IPWL_Edit_Notify() {} |
+ // when the position of caret is changed in edit |
+ virtual void OnCaretMove(int32_t x1, int32_t y1, int32_t x2, int32_t y2) {} |
+ virtual void OnContentChange(const CPDF_Rect& rcContent) {} |
+ // OprType: 0 InsertWord |
+ // 1 InsertReturn |
+ // 2 BackSpace |
+ // 3 Delete |
+ // 4 Clear |
+ // 5 InsertText |
+ // 6 SetText |
+ virtual void OnInsertWord(const CPVT_WordPlace& place, |
+ const CPVT_WordPlace& oldplace) {} |
+ virtual void OnInsertReturn(const CPVT_WordPlace& place, |
+ const CPVT_WordPlace& oldplace) {} |
+ virtual void OnBackSpace(const CPVT_WordPlace& place, |
+ const CPVT_WordPlace& oldplace) {} |
+ virtual void OnDelete(const CPVT_WordPlace& place, |
+ const CPVT_WordPlace& oldplace) {} |
+ virtual void OnClear(const CPVT_WordPlace& place, |
+ const CPVT_WordPlace& oldplace) {} |
+ virtual void OnInsertText(const CPVT_WordPlace& place, |
+ const CPVT_WordPlace& oldplace) {} |
+ virtual void OnSetText(const CPVT_WordPlace& place, |
+ const CPVT_WordPlace& oldplace) {} |
+ virtual void OnAddUndo(CPWL_Edit* pEdit) {} |
}; |
-enum PWL_EDIT_ALIGNFORMAT_V |
-{ |
- PEAV_TOP = 0, |
- PEAV_CENTER, |
- PEAV_BOTTOM |
-}; |
- |
-class IPWL_Edit_Notify |
-{ |
-public: |
- virtual ~IPWL_Edit_Notify() { } |
- //when the position of caret is changed in edit |
- virtual void OnCaretMove(int32_t x1, int32_t y1, int32_t x2, int32_t y2) {} |
- virtual void OnContentChange(const CPDF_Rect& rcContent){} |
- //OprType: 0 InsertWord |
- //1 InsertReturn |
- //2 BackSpace |
- //3 Delete |
- //4 Clear |
- //5 InsertText |
- //6 SetText |
- virtual void OnInsertWord(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace){} |
- virtual void OnInsertReturn(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace){} |
- virtual void OnBackSpace(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace){} |
- virtual void OnDelete(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace){} |
- virtual void OnClear(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace){} |
- virtual void OnInsertText(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace){} |
- virtual void OnSetText(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace){} |
- virtual void OnAddUndo(CPWL_Edit* pEdit) {} |
-}; |
- |
-class CPWL_EditCtrl : public CPWL_Wnd, public IFX_Edit_Notify |
-{ |
- friend class CPWL_Edit_Notify; |
- |
-public: |
- CPWL_EditCtrl(); |
- virtual ~CPWL_EditCtrl(); |
- |
-public: |
- virtual void OnCreate(PWL_CREATEPARAM & cp); |
- virtual void OnCreated(); |
- |
- virtual FX_BOOL OnKeyDown(FX_WORD nChar, FX_DWORD nFlag); |
- virtual FX_BOOL OnChar(FX_WORD nChar, FX_DWORD nFlag); |
- virtual FX_BOOL OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag); |
- virtual FX_BOOL OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag); |
- virtual FX_BOOL OnMouseMove(const CPDF_Point & point, FX_DWORD nFlag); |
- virtual void OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, intptr_t wParam = 0, intptr_t lParam = 0); |
- |
- virtual void CreateChildWnd(const PWL_CREATEPARAM & cp); |
- virtual void RePosChildWnd(); |
- virtual void SetFontSize(FX_FLOAT fFontSize); |
- virtual FX_FLOAT GetFontSize() const; |
- |
-public: |
- virtual void SetText(const FX_WCHAR* csText); |
- |
- virtual void CopyText(); |
- virtual void PasteText(); |
- virtual void CutText(); |
- |
- CPDF_Rect GetContentRect() const; |
- void GetCaretPos(int32_t& x, int32_t& y) const; |
- FX_BOOL IsModified() const; |
- |
- CFX_WideString GetText() const; |
- void SetSel(int32_t nStartChar,int32_t nEndChar); |
- void GetSel(int32_t & nStartChar, int32_t & nEndChar ) const; |
- void GetTextRange(const CPDF_Rect& rect, int32_t & nStartChar, int32_t & nEndChar) const; |
- CFX_WideString GetText(int32_t & nStartChar, int32_t & nEndChar) const; |
- void Clear(); |
- void SelectAll(); |
- |
- int32_t GetCaret() const; |
- void SetCaret(int32_t nPos); |
- int32_t GetTotalWords() const; |
- |
- void Paint(); |
- |
- void EnableRefresh(FX_BOOL bRefresh); |
- CPDF_Point GetScrollPos() const; |
- void SetScrollPos(const CPDF_Point& point); |
- |
- void SetEditNotify(IPWL_Edit_Notify* pNotify) {m_pEditNotify = pNotify;} |
- |
- void SetCharSet(uint8_t nCharSet){m_nCharSet = nCharSet;} |
- int32_t GetCharSet() const; |
- |
- void SetCodePage(int32_t nCodePage){m_nCodePage = nCodePage;} |
- int32_t GetCodePage() const {return m_nCodePage;} |
- |
- CPDF_Font * GetCaretFont() const; |
- FX_FLOAT GetCaretFontSize() const; |
- |
- FX_BOOL CanUndo() const; |
- FX_BOOL CanRedo() const; |
- void Redo(); |
- void Undo(); |
- |
- void SetReadyToInput(); |
-protected: |
- virtual void ShowVScrollBar(FX_BOOL bShow); |
- |
- virtual void InsertWord(FX_WORD word, int32_t nCharset); |
- virtual void InsertReturn(); |
- virtual void InsertText(const FX_WCHAR* csText); |
- |
- virtual void SetCursor(); |
- FX_BOOL IsWndHorV(); |
- |
- void Delete(); |
- void Backspace(); |
- |
-protected: |
- void GetCaretInfo(CPDF_Point & ptHead, CPDF_Point & ptFoot) const; |
- void SetCaret(FX_BOOL bVisible, const CPDF_Point & ptHead, const CPDF_Point & ptFoot); |
- |
- void SetEditCaret(FX_BOOL bVisible); |
- |
-protected: |
- virtual void IOnSetScrollInfoX(FX_FLOAT fPlateMin, FX_FLOAT fPlateMax, |
- FX_FLOAT fContentMin, FX_FLOAT fContentMax, |
- FX_FLOAT fSmallStep, FX_FLOAT fBigStep){} |
- virtual void IOnSetScrollInfoY(FX_FLOAT fPlateMin, FX_FLOAT fPlateMax, |
- FX_FLOAT fContentMin, FX_FLOAT fContentMax, |
- FX_FLOAT fSmallStep, FX_FLOAT fBigStep); |
- virtual void IOnSetScrollPosX(FX_FLOAT fx){} |
- virtual void IOnSetScrollPosY(FX_FLOAT fy); |
- virtual void IOnSetCaret(FX_BOOL bVisible,const CPDF_Point & ptHead,const CPDF_Point & ptFoot, const CPVT_WordPlace& place); |
- virtual void IOnCaretChange(const CPVT_SecProps & secProps, const CPVT_WordProps & wordProps); |
- virtual void IOnContentChange(const CPDF_Rect& rcContent); |
- virtual void IOnInvalidateRect(CPDF_Rect * pRect); |
- |
-private: |
- void CreateEditCaret(const PWL_CREATEPARAM & cp); |
- |
-protected: |
- IFX_Edit* m_pEdit; |
- CPWL_Caret* m_pEditCaret; |
- FX_BOOL m_bMouseDown; |
- IPWL_Edit_Notify* m_pEditNotify; |
- |
-private: |
- int32_t m_nCharSet; |
- int32_t m_nCodePage; |
+class CPWL_EditCtrl : public CPWL_Wnd, public IFX_Edit_Notify { |
+ friend class CPWL_Edit_Notify; |
+ |
+ public: |
+ CPWL_EditCtrl(); |
+ virtual ~CPWL_EditCtrl(); |
+ |
+ public: |
+ virtual void OnCreate(PWL_CREATEPARAM& cp); |
+ virtual void OnCreated(); |
+ |
+ virtual FX_BOOL OnKeyDown(FX_WORD nChar, FX_DWORD nFlag); |
+ virtual FX_BOOL OnChar(FX_WORD nChar, FX_DWORD nFlag); |
+ virtual FX_BOOL OnLButtonDown(const CPDF_Point& point, FX_DWORD nFlag); |
+ virtual FX_BOOL OnLButtonUp(const CPDF_Point& point, FX_DWORD nFlag); |
+ virtual FX_BOOL OnMouseMove(const CPDF_Point& point, FX_DWORD nFlag); |
+ virtual void OnNotify(CPWL_Wnd* pWnd, |
+ FX_DWORD msg, |
+ intptr_t wParam = 0, |
+ intptr_t lParam = 0); |
+ |
+ virtual void CreateChildWnd(const PWL_CREATEPARAM& cp); |
+ virtual void RePosChildWnd(); |
+ virtual void SetFontSize(FX_FLOAT fFontSize); |
+ virtual FX_FLOAT GetFontSize() const; |
+ |
+ public: |
+ virtual void SetText(const FX_WCHAR* csText); |
+ |
+ virtual void CopyText(); |
+ virtual void PasteText(); |
+ virtual void CutText(); |
+ |
+ CPDF_Rect GetContentRect() const; |
+ void GetCaretPos(int32_t& x, int32_t& y) const; |
+ FX_BOOL IsModified() const; |
+ |
+ CFX_WideString GetText() const; |
+ void SetSel(int32_t nStartChar, int32_t nEndChar); |
+ void GetSel(int32_t& nStartChar, int32_t& nEndChar) const; |
+ void GetTextRange(const CPDF_Rect& rect, |
+ int32_t& nStartChar, |
+ int32_t& nEndChar) const; |
+ CFX_WideString GetText(int32_t& nStartChar, int32_t& nEndChar) const; |
+ void Clear(); |
+ void SelectAll(); |
+ |
+ int32_t GetCaret() const; |
+ void SetCaret(int32_t nPos); |
+ int32_t GetTotalWords() const; |
+ |
+ void Paint(); |
+ |
+ void EnableRefresh(FX_BOOL bRefresh); |
+ CPDF_Point GetScrollPos() const; |
+ void SetScrollPos(const CPDF_Point& point); |
+ |
+ void SetEditNotify(IPWL_Edit_Notify* pNotify) { m_pEditNotify = pNotify; } |
+ |
+ void SetCharSet(uint8_t nCharSet) { m_nCharSet = nCharSet; } |
+ int32_t GetCharSet() const; |
+ |
+ void SetCodePage(int32_t nCodePage) { m_nCodePage = nCodePage; } |
+ int32_t GetCodePage() const { return m_nCodePage; } |
+ |
+ CPDF_Font* GetCaretFont() const; |
+ FX_FLOAT GetCaretFontSize() const; |
+ |
+ FX_BOOL CanUndo() const; |
+ FX_BOOL CanRedo() const; |
+ void Redo(); |
+ void Undo(); |
+ |
+ void SetReadyToInput(); |
+ |
+ protected: |
+ virtual void ShowVScrollBar(FX_BOOL bShow); |
+ |
+ virtual void InsertWord(FX_WORD word, int32_t nCharset); |
+ virtual void InsertReturn(); |
+ virtual void InsertText(const FX_WCHAR* csText); |
+ |
+ virtual void SetCursor(); |
+ FX_BOOL IsWndHorV(); |
+ |
+ void Delete(); |
+ void Backspace(); |
+ |
+ protected: |
+ void GetCaretInfo(CPDF_Point& ptHead, CPDF_Point& ptFoot) const; |
+ void SetCaret(FX_BOOL bVisible, |
+ const CPDF_Point& ptHead, |
+ const CPDF_Point& ptFoot); |
+ |
+ void SetEditCaret(FX_BOOL bVisible); |
+ |
+ protected: |
+ virtual void IOnSetScrollInfoX(FX_FLOAT fPlateMin, |
+ FX_FLOAT fPlateMax, |
+ FX_FLOAT fContentMin, |
+ FX_FLOAT fContentMax, |
+ FX_FLOAT fSmallStep, |
+ FX_FLOAT fBigStep) {} |
+ virtual void IOnSetScrollInfoY(FX_FLOAT fPlateMin, |
+ FX_FLOAT fPlateMax, |
+ FX_FLOAT fContentMin, |
+ FX_FLOAT fContentMax, |
+ FX_FLOAT fSmallStep, |
+ FX_FLOAT fBigStep); |
+ virtual void IOnSetScrollPosX(FX_FLOAT fx) {} |
+ virtual void IOnSetScrollPosY(FX_FLOAT fy); |
+ virtual void IOnSetCaret(FX_BOOL bVisible, |
+ const CPDF_Point& ptHead, |
+ const CPDF_Point& ptFoot, |
+ const CPVT_WordPlace& place); |
+ virtual void IOnCaretChange(const CPVT_SecProps& secProps, |
+ const CPVT_WordProps& wordProps); |
+ virtual void IOnContentChange(const CPDF_Rect& rcContent); |
+ virtual void IOnInvalidateRect(CPDF_Rect* pRect); |
+ |
+ private: |
+ void CreateEditCaret(const PWL_CREATEPARAM& cp); |
+ |
+ protected: |
+ IFX_Edit* m_pEdit; |
+ CPWL_Caret* m_pEditCaret; |
+ FX_BOOL m_bMouseDown; |
+ IPWL_Edit_Notify* m_pEditNotify; |
+ |
+ private: |
+ int32_t m_nCharSet; |
+ int32_t m_nCodePage; |
}; |
#endif // FPDFSDK_INCLUDE_PDFWINDOW_PWL_EDITCTRL_H_ |