diff options
author | John Abd-El-Malek <jabdelmalek@google.com> | 2014-05-17 22:33:34 -0700 |
---|---|---|
committer | John Abd-El-Malek <jabdelmalek@google.com> | 2014-05-17 22:33:34 -0700 |
commit | 5110c4743751145c4ae1934cd1d83bc6c55bb43f (patch) | |
tree | b141608096b73163182764c25b895d3df4b2c182 /fpdfsdk/include/pdfwindow/PWL_EditCtrl.h | |
parent | 76b563d2feed92ed328afb1f15e3466a9536b11b (diff) | |
download | pdfium-5110c4743751145c4ae1934cd1d83bc6c55bb43f.tar.xz |
Initial commit.
Diffstat (limited to 'fpdfsdk/include/pdfwindow/PWL_EditCtrl.h')
-rw-r--r-- | fpdfsdk/include/pdfwindow/PWL_EditCtrl.h | 171 |
1 files changed, 171 insertions, 0 deletions
diff --git a/fpdfsdk/include/pdfwindow/PWL_EditCtrl.h b/fpdfsdk/include/pdfwindow/PWL_EditCtrl.h new file mode 100644 index 0000000000..3df0f4c23f --- /dev/null +++ b/fpdfsdk/include/pdfwindow/PWL_EditCtrl.h @@ -0,0 +1,171 @@ +// Copyright 2014 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef _PWL_EDITCTRL_H_
+#define _PWL_EDITCTRL_H_
+
+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;
+class CPWL_EditCtrl;
+class CPWL_Caret;
+class IFX_Edit;
+class CPWL_Edit;
+
+class IPWL_Edit_Notify
+{
+public:
+ //when the position of caret is changed in edit
+ virtual void OnCaretMove(FX_INT32 x1, FX_INT32 y1, FX_INT32 x2, FX_INT32 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 PWL_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, FX_INTPTR wParam = 0, FX_INTPTR 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(FX_LPCWSTR csText);
+
+ virtual void CopyText();
+ virtual void PasteText();
+ virtual void CutText();
+
+ CPDF_Rect GetContentRect() const;
+ void GetCaretPos(FX_INT32& x, FX_INT32& y) const;
+ FX_BOOL IsModified() const;
+
+ CFX_WideString GetText() const;
+ void SetSel(FX_INT32 nStartChar,FX_INT32 nEndChar);
+ void GetSel(FX_INT32 & nStartChar, FX_INT32 & nEndChar ) const;
+ void GetTextRange(const CPDF_Rect& rect, FX_INT32 & nStartChar, FX_INT32 & nEndChar) const;
+ CFX_WideString GetText(FX_INT32 & nStartChar, FX_INT32 & nEndChar) const;
+ void Clear();
+ void SelectAll();
+
+ FX_INT32 GetCaret() const;
+ void SetCaret(FX_INT32 nPos);
+ FX_INT32 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(FX_BYTE nCharSet){m_nCharSet = nCharSet;}
+ FX_INT32 GetCharSet() const;
+
+ void SetCodePage(FX_INT32 nCodePage){m_nCodePage = nCodePage;}
+ FX_INT32 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, FX_INT32 nCharset);
+ virtual void InsertReturn();
+ virtual void InsertText(FX_LPCWSTR 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:
+ FX_INT32 m_nCharSet;
+ FX_INT32 m_nCodePage;
+};
+
+#endif
+
|