merge to XFA: Fix -Wnon-virtual-dtor compiler warnings.
[pdfium.git] / fpdfsdk / include / pdfwindow / PWL_EditCtrl.h
index 3df0f4c..c9d87b2 100644 (file)
-// Copyright 2014 PDFium Authors. All rights reserved.\r
-// Use of this source code is governed by a BSD-style license that can be\r
-// found in the LICENSE file.\r
\r
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com\r
-\r
-#ifndef _PWL_EDITCTRL_H_\r
-#define _PWL_EDITCTRL_H_\r
-\r
-enum PWL_EDIT_ALIGNFORMAT_H\r
-{\r
-       PEAH_LEFT = 0,\r
-       PEAH_MIDDLE,\r
-       PEAH_RIGHT\r
-};\r
-\r
-enum PWL_EDIT_ALIGNFORMAT_V\r
-{\r
-       PEAV_TOP = 0,   \r
-       PEAV_CENTER,\r
-       PEAV_BOTTOM\r
-};\r
-\r
-class IPWL_Edit_Notify;\r
-class CPWL_EditCtrl;\r
-class CPWL_Caret;\r
-class IFX_Edit;\r
-class CPWL_Edit;\r
-\r
-class IPWL_Edit_Notify\r
-{\r
-public:\r
-       //when the position of caret is changed in edit\r
-       virtual void                                    OnCaretMove(FX_INT32 x1, FX_INT32 y1, FX_INT32 x2, FX_INT32 y2) {}\r
-       virtual void                                    OnContentChange(const CPDF_Rect& rcContent){}\r
-       //OprType: 0 InsertWord\r
-       //1 InsertReturn\r
-       //2 BackSpace\r
-       //3 Delete\r
-       //4 Clear\r
-       //5 InsertText\r
-       //6 SetText\r
-       virtual void                                    OnInsertWord(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace){}\r
-       virtual void                                    OnInsertReturn(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace){}\r
-       virtual void                                    OnBackSpace(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace){}\r
-       virtual void                                    OnDelete(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace){}\r
-       virtual void                                    OnClear(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace){}\r
-       virtual void                                    OnInsertText(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace){}\r
-       virtual void                                    OnSetText(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace){}\r
-       virtual void                                    OnAddUndo(CPWL_Edit* pEdit) {}\r
-};\r
-\r
-class PWL_CLASS CPWL_EditCtrl : public CPWL_Wnd, public IFX_Edit_Notify\r
-{\r
-       friend class CPWL_Edit_Notify;\r
-\r
-public:\r
-       CPWL_EditCtrl();\r
-       virtual ~CPWL_EditCtrl();\r
-\r
-public:\r
-       virtual void                                    OnCreate(PWL_CREATEPARAM & cp);\r
-       virtual void                                    OnCreated();\r
-\r
-       virtual FX_BOOL                                 OnKeyDown(FX_WORD nChar, FX_DWORD nFlag);\r
-       virtual FX_BOOL                                 OnChar(FX_WORD nChar, FX_DWORD nFlag);\r
-       virtual FX_BOOL                                 OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag);        \r
-       virtual FX_BOOL                                 OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag);  \r
-       virtual FX_BOOL                                 OnMouseMove(const CPDF_Point & point, FX_DWORD nFlag);\r
-       virtual void                                    OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, FX_INTPTR wParam = 0, FX_INTPTR lParam = 0);\r
-\r
-       virtual void                                    CreateChildWnd(const PWL_CREATEPARAM & cp);\r
-       virtual void                                    RePosChildWnd();        \r
-       virtual void                                    SetFontSize(FX_FLOAT fFontSize);\r
-       virtual FX_FLOAT                                GetFontSize() const;\r
-       \r
-public:\r
-       virtual void                                    SetText(FX_LPCWSTR csText);\r
-\r
-       virtual void                                    CopyText();\r
-       virtual void                                    PasteText();\r
-       virtual void                                    CutText();\r
-\r
-       CPDF_Rect                                               GetContentRect() const;\r
-       void                                                    GetCaretPos(FX_INT32& x, FX_INT32& y) const;\r
-       FX_BOOL                                                 IsModified() const;\r
-\r
-       CFX_WideString                                  GetText() const;\r
-       void                                                    SetSel(FX_INT32 nStartChar,FX_INT32 nEndChar);\r
-       void                                                    GetSel(FX_INT32 & nStartChar, FX_INT32 & nEndChar ) const;\r
-       void                                                    GetTextRange(const CPDF_Rect& rect, FX_INT32 & nStartChar, FX_INT32 & nEndChar) const;\r
-       CFX_WideString                                  GetText(FX_INT32 & nStartChar, FX_INT32 & nEndChar) const;\r
-       void                                                    Clear();\r
-       void                                                    SelectAll();\r
-\r
-       FX_INT32                                                GetCaret() const;\r
-       void                                                    SetCaret(FX_INT32 nPos);\r
-       FX_INT32                                                GetTotalWords() const;\r
-\r
-       void                                                    Paint();\r
-\r
-       void                                                    EnableRefresh(FX_BOOL bRefresh);        \r
-       CPDF_Point                                              GetScrollPos() const;\r
-       void                                                    SetScrollPos(const CPDF_Point& point);\r
-\r
-       void                                                    SetEditNotify(IPWL_Edit_Notify* pNotify) {m_pEditNotify = pNotify;}     \r
-\r
-       void                                                    SetCharSet(FX_BYTE nCharSet){m_nCharSet = nCharSet;}\r
-       FX_INT32                                                GetCharSet() const;\r
-\r
-       void                                                    SetCodePage(FX_INT32 nCodePage){m_nCodePage = nCodePage;}\r
-       FX_INT32                                                GetCodePage() const {return m_nCodePage;}\r
-\r
-       CPDF_Font *                                             GetCaretFont() const;\r
-       FX_FLOAT                                                GetCaretFontSize() const;\r
-\r
-       FX_BOOL                                                 CanUndo() const;\r
-       FX_BOOL                                                 CanRedo() const;\r
-       void                                                    Redo();\r
-       void                                                    Undo();\r
-\r
-       void                                                    SetReadyToInput();\r
-protected:\r
-       virtual void                                    ShowVScrollBar(FX_BOOL bShow);\r
-\r
-       virtual void                                    InsertWord(FX_WORD word, FX_INT32 nCharset);\r
-       virtual void                                    InsertReturn();\r
-       virtual void                                    InsertText(FX_LPCWSTR csText);\r
-\r
-       virtual void                                    SetCursor();\r
-       FX_BOOL                                                 IsWndHorV();\r
-\r
-       void                                                    Delete();\r
-       void                                                    Backspace();\r
-\r
-protected:\r
-       void                                                    GetCaretInfo(CPDF_Point & ptHead, CPDF_Point & ptFoot) const;\r
-       void                                                    SetCaret(FX_BOOL bVisible, const CPDF_Point & ptHead, const CPDF_Point & ptFoot);\r
-       \r
-       void                                                    SetEditCaret(FX_BOOL bVisible);\r
-\r
-protected:\r
-       virtual void                                    IOnSetScrollInfoX(FX_FLOAT fPlateMin, FX_FLOAT fPlateMax, \r
-                                                                                               FX_FLOAT fContentMin, FX_FLOAT fContentMax, \r
-                                                                                               FX_FLOAT fSmallStep, FX_FLOAT fBigStep){}\r
-       virtual void                                    IOnSetScrollInfoY(FX_FLOAT fPlateMin, FX_FLOAT fPlateMax, \r
-                                                                                               FX_FLOAT fContentMin, FX_FLOAT fContentMax, \r
-                                                                                               FX_FLOAT fSmallStep, FX_FLOAT fBigStep);\r
-       virtual void                                    IOnSetScrollPosX(FX_FLOAT fx){}\r
-       virtual void                                    IOnSetScrollPosY(FX_FLOAT fy);\r
-       virtual void                                    IOnSetCaret(FX_BOOL bVisible,const CPDF_Point & ptHead,const CPDF_Point & ptFoot, const CPVT_WordPlace& place);\r
-       virtual void                                    IOnCaretChange(const CPVT_SecProps & secProps, const CPVT_WordProps & wordProps);\r
-       virtual void                                    IOnContentChange(const CPDF_Rect& rcContent);\r
-       virtual void                                    IOnInvalidateRect(CPDF_Rect * pRect);\r
-\r
-private:\r
-       void                                                    CreateEditCaret(const PWL_CREATEPARAM & cp);\r
-\r
-protected:\r
-       IFX_Edit*                                               m_pEdit;\r
-       CPWL_Caret*                                             m_pEditCaret;\r
-       FX_BOOL                                                 m_bMouseDown;\r
-       IPWL_Edit_Notify*                               m_pEditNotify;  \r
-\r
-private:\r
-       FX_INT32                                                m_nCharSet;\r
-       FX_INT32                                                m_nCodePage;\r
-};\r
-\r
-#endif\r
-\r
+// 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:
+        virtual ~IPWL_Edit_Notify() { }
+       //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
+