Merge to XFA: Fix ALL the include guards.
[pdfium.git] / fpdfsdk / include / formfiller / FFL_TextField.h
1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4  
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7 #ifndef FPDFSDK_INCLUDE_FORMFILLER_FFL_TEXTFIELD_H_
8 #define FPDFSDK_INCLUDE_FORMFILLER_FFL_TEXTFIELD_H_
9
10 #include "FFL_FormFiller.h"
11
12 #define BF_ALIGN_LEFT                   0
13 #define BF_ALIGN_MIDDLE                 1
14 #define BF_ALIGN_RIGHT                  2
15
16 class CBA_FontMap;
17
18 struct FFL_TextFieldState
19 {
20         int nStart;
21         int nEnd;
22         CFX_WideString sValue;
23 };
24
25 class CFFL_TextField : public CFFL_FormFiller, public IPWL_FocusHandler, public IPWL_Edit_Notify
26 {
27 public:
28         CFFL_TextField(CPDFDoc_Environment* pApp, CPDFSDK_Annot* pAnnot);
29         virtual ~CFFL_TextField();
30         
31         virtual PWL_CREATEPARAM         GetCreateParam();
32         virtual CPWL_Wnd*                       NewPDFWindow(const PWL_CREATEPARAM& cp, CPDFSDK_PageView* pPageView);
33
34         
35         virtual FX_BOOL                         OnChar(CPDFSDK_Annot* pAnnot, FX_UINT nChar, FX_UINT nFlags);
36         
37         virtual FX_BOOL                         IsDataChanged(CPDFSDK_PageView* pPageView);
38         virtual void                            SaveData(CPDFSDK_PageView* pPageView);
39         
40         virtual void                            GetActionData(CPDFSDK_PageView* pPageView, CPDF_AAction::AActionType type,
41                                                                                                 PDFSDK_FieldAction& fa);
42         virtual void                            SetActionData(CPDFSDK_PageView* pPageView, CPDF_AAction::AActionType type, 
43                                                                         const PDFSDK_FieldAction& fa);
44         virtual FX_BOOL                         IsActionDataChanged(CPDF_AAction::AActionType type, const PDFSDK_FieldAction& faOld, 
45                                                                                                 const PDFSDK_FieldAction& faNew);
46         virtual void                            SaveState(CPDFSDK_PageView* pPageView);
47         virtual void                            RestoreState(CPDFSDK_PageView* pPageView);
48         
49         virtual CPWL_Wnd*                       ResetPDFWindow(CPDFSDK_PageView* pPageView, FX_BOOL bRestoreValue);
50         
51         virtual FX_BOOL                         IsFieldFull(CPDFSDK_PageView* pPageView);
52         
53 public:
54         virtual void                            OnSetFocus(CPWL_Wnd* pWnd);
55         virtual void                            OnKillFocus(CPWL_Wnd* pWnd);
56         
57 public:
58         virtual void                            OnAddUndo(CPWL_Edit* pEdit);
59         
60 public:
61         virtual FX_BOOL                         CanCopy(CPDFSDK_Document* pDocument); 
62         virtual FX_BOOL                         CanCut(CPDFSDK_Document* pDocument); 
63         virtual FX_BOOL                         CanPaste(CPDFSDK_Document* pDocument); 
64         
65         virtual void                            DoCopy(CPDFSDK_Document* pDocument); 
66         virtual void                            DoCut(CPDFSDK_Document* pDocument); 
67         virtual void                            DoPaste(CPDFSDK_Document* pDocument); 
68         
69 private:
70         CBA_FontMap*                            m_pFontMap;
71         FFL_TextFieldState                      m_State;
72
73 };
74
75 #endif  // FPDFSDK_INCLUDE_FORMFILLER_FFL_TEXTFIELD_H_