Merge to XFA: Use stdint.h types throughout PDFium.
[pdfium.git] / xfa / src / fxfa / src / app / xfa_fftextedit.h
1 // Copyright 2014 PDFium Authors. All rights reserved.\r
2 // Use of this source code is governed by a BSD-style license that can be\r
3 // found in the LICENSE file.\r
4 \r
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com\r
6 \r
7 #ifndef _FXFA_FORMFILLER_TEXTEDIT_IMP_H\r
8 #define _FXFA_FORMFILLER_TEXTEDIT_IMP_H\r
9 class CXFA_FFTextEdit : public CXFA_FFField\r
10 {\r
11 public:\r
12     CXFA_FFTextEdit(CXFA_FFPageView* pPageView, CXFA_WidgetAcc* pDataAcc);\r
13     virtual ~CXFA_FFTextEdit();\r
14     virtual     FX_BOOL LoadWidget();\r
15     virtual void        UpdateWidgetProperty();\r
16     virtual FX_BOOL     OnLButtonDown(FX_DWORD dwFlags, FX_FLOAT fx, FX_FLOAT fy);\r
17     virtual FX_BOOL     OnRButtonDown(FX_DWORD dwFlags, FX_FLOAT fx, FX_FLOAT fy);\r
18     virtual FX_BOOL     OnRButtonUp(FX_DWORD dwFlags, FX_FLOAT fx, FX_FLOAT fy);\r
19     virtual FX_BOOL     OnSetFocus(CXFA_FFWidget* pOldWidget);\r
20     virtual FX_BOOL     OnKillFocus(CXFA_FFWidget* pNewWidget);\r
21     virtual FX_BOOL             CanUndo();\r
22     virtual FX_BOOL             CanRedo();\r
23     virtual FX_BOOL             Undo();\r
24     virtual FX_BOOL             Redo();\r
25     virtual FX_BOOL             CanCopy();\r
26     virtual FX_BOOL             CanCut();\r
27     virtual FX_BOOL             CanPaste();\r
28     virtual FX_BOOL             CanSelectAll();\r
29     virtual FX_BOOL             Copy(CFX_WideString &wsCopy);\r
30     virtual FX_BOOL             Cut(CFX_WideString &wsCut);\r
31     virtual FX_BOOL             Paste(const CFX_WideString &wsPaste);\r
32     virtual FX_BOOL             SelectAll();\r
33     virtual FX_BOOL             Delete();\r
34     virtual FX_BOOL             DeSelect();\r
35     FX_BOOL             GetSuggestWords(CFX_PointF pointf, CFX_ByteStringArray &sSuggest);\r
36     FX_BOOL             ReplaceSpellCheckWord(CFX_PointF pointf, FX_BSTR bsReplace);\r
37 protected:\r
38     FX_DWORD    GetAlignment();\r
39     virtual FX_BOOL     CommitData();\r
40     virtual FX_BOOL     UpdateFWLData();\r
41     virtual FX_BOOL IsDataChanged();\r
42     void                        ValidateNumberField(const CFX_WideString& wsText);\r
43     IFWL_WidgetDelegate*        m_pOldDelegate;\r
44 public:\r
45     void        OnTextChanged(IFWL_Widget *pWidget, const CFX_WideString &wsChanged, const CFX_WideString &wsPrevText);\r
46     void        OnTextFull(IFWL_Widget *pWidget);\r
47     void        OnAddDoRecord(IFWL_Widget *pWidget);\r
48     FX_BOOL             CheckWord(FX_BSTR sWord);\r
49     FX_BOOL             GetSuggestWords(FX_BSTR sWord, CFX_ByteStringArray &sSuggest);\r
50     virtual int32_t     OnProcessMessage(CFWL_Message *pMessage);\r
51     virtual FWL_ERR             OnProcessEvent(CFWL_Event *pEvent);\r
52     virtual FWL_ERR             OnDrawWidget(CFX_Graphics *pGraphics, const CFX_Matrix *pMatrix = NULL);\r
53 };\r
54 class CXFA_FFNumericEdit : public CXFA_FFTextEdit\r
55 {\r
56 public:\r
57     CXFA_FFNumericEdit(CXFA_FFPageView* pPageView, CXFA_WidgetAcc* pDataAcc);\r
58     virtual ~CXFA_FFNumericEdit();\r
59     virtual     FX_BOOL LoadWidget();\r
60     virtual void        UpdateWidgetProperty();\r
61     virtual FWL_ERR             OnProcessEvent(CFWL_Event *pEvent);\r
62 public:\r
63     FX_BOOL     OnValidate(IFWL_Widget *pWidget, CFX_WideString &wsText);\r
64 };\r
65 class CXFA_FFPasswordEdit : public CXFA_FFTextEdit\r
66 {\r
67 public:\r
68     CXFA_FFPasswordEdit(CXFA_FFPageView* pPageView, CXFA_WidgetAcc* pDataAcc);\r
69     virtual ~CXFA_FFPasswordEdit();\r
70     virtual FX_BOOL LoadWidget();\r
71     virtual void        UpdateWidgetProperty();\r
72 protected:\r
73 };\r
74 enum XFA_DATETIMETYPE {\r
75     XFA_DATETIMETYPE_Date = 0,\r
76     XFA_DATETIMETYPE_Time,\r
77     XFA_DATETIMETYPE_DateAndTime\r
78 };\r
79 class CXFA_FFDateTimeEdit : public CXFA_FFTextEdit\r
80 {\r
81 public:\r
82     CXFA_FFDateTimeEdit(CXFA_FFPageView* pPageView, CXFA_WidgetAcc* pDataAcc);\r
83     virtual ~CXFA_FFDateTimeEdit();\r
84 \r
85     virtual FX_BOOL     GetBBox(CFX_RectF &rtBox, FX_DWORD dwStatus, FX_BOOL bDrawFocus = FALSE);\r
86     virtual FX_BOOL LoadWidget();\r
87     virtual void        UpdateWidgetProperty();\r
88 \r
89 \r
90     virtual FX_BOOL             CanUndo();\r
91     virtual FX_BOOL             CanRedo();\r
92     virtual FX_BOOL             Undo();\r
93     virtual FX_BOOL             Redo();\r
94 \r
95     virtual FX_BOOL             CanCopy();\r
96     virtual FX_BOOL             CanCut();\r
97     virtual FX_BOOL             CanPaste();\r
98     virtual FX_BOOL             CanSelectAll();\r
99     virtual FX_BOOL             Copy(CFX_WideString &wsCopy);\r
100     virtual FX_BOOL             Cut(CFX_WideString &wsCut);\r
101     virtual FX_BOOL             Paste(const CFX_WideString &wsPaste);\r
102     virtual FX_BOOL             SelectAll();\r
103     virtual FX_BOOL             Delete();\r
104     virtual FX_BOOL             DeSelect();\r
105 \r
106 protected:\r
107     FX_DWORD            GetAlignment();\r
108 \r
109     virtual     FX_BOOL PtInActiveRect(FX_FLOAT fx, FX_FLOAT fy);\r
110     virtual FX_BOOL     CommitData();\r
111     virtual FX_BOOL     UpdateFWLData();\r
112     virtual FX_BOOL IsDataChanged();\r
113 public:\r
114     void        OnSelectChanged(IFWL_Widget *pWidget, int32_t iYear, int32_t iMonth, int32_t iDay);\r
115     virtual FWL_ERR             OnProcessEvent(CFWL_Event *pEvent);\r
116 };\r
117 #endif\r