OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #ifndef FPDFSDK_INCLUDE_FORMFILLER_FFL_FORMFILLER_H_ | 7 #ifndef FPDFSDK_INCLUDE_FORMFILLER_FFL_FORMFILLER_H_ |
8 #define FPDFSDK_INCLUDE_FORMFILLER_FFL_FORMFILLER_H_ | 8 #define FPDFSDK_INCLUDE_FORMFILLER_FFL_FORMFILLER_H_ |
9 | 9 |
10 #include "FFL_IFormFiller.h" | 10 #include "FFL_IFormFiller.h" |
11 #include "FFL_CBA_Fontmap.h" | 11 #include "FFL_CBA_Fontmap.h" |
12 | 12 |
13 class CPDFSDK_Annot; | 13 class CPDFSDK_Annot; |
14 class CFFL_FormFiller; | 14 class CFFL_FormFiller; |
15 class CFFL_Notify; | 15 class CFFL_Notify; |
16 class CPDFDoc_Environment; | 16 class CPDFDoc_Environment; |
17 class CPDFSDK_PageView; | 17 class CPDFSDK_PageView; |
18 class CPDFSDK_Document; | 18 class CPDFSDK_Document; |
19 class CPDFSDK_Widget; | 19 class CPDFSDK_Widget; |
20 | 20 |
21 struct FFL_KeyStrokeData | 21 struct FFL_KeyStrokeData |
22 { | 22 { |
23 CFX_WideString swValue; | 23 CFX_WideString swValue; |
24 » FX_BOOL»» » » bFull; | 24 » bool» » » » bFull; |
25 int nSelStart; | 25 int nSelStart; |
26 int nSelEnd; | 26 int nSelEnd; |
27 }; | 27 }; |
28 | 28 |
29 class CFFL_FormFiller : public IPWL_Provider, public CPWL_TimerHandler | 29 class CFFL_FormFiller : public IPWL_Provider, public CPWL_TimerHandler |
30 { | 30 { |
31 public: | 31 public: |
32 CFFL_FormFiller(CPDFDoc_Environment* pApp, CPDFSDK_Annot* pAnnot); | 32 CFFL_FormFiller(CPDFDoc_Environment* pApp, CPDFSDK_Annot* pAnnot); |
33 virtual ~CFFL_FormFiller(); | 33 virtual ~CFFL_FormFiller(); |
34 | 34 |
35 virtual FX_RECT GetViewBBox(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot); | 35 virtual FX_RECT GetViewBBox(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot); |
36 virtual void OnDraw(CPDFSDK_PageView *pPageVi
ew, CPDFSDK_Annot* pAnnot, | 36 virtual void OnDraw(CPDFSDK_PageView *pPageVi
ew, CPDFSDK_Annot* pAnnot, |
37 CFX_Rend
erDevice* pDevice, CPDF_Matrix* pUser2Device, | 37 CFX_Rend
erDevice* pDevice, CPDF_Matrix* pUser2Device, |
38 FX_DWORD
dwFlags); | 38 FX_DWORD
dwFlags); |
39 virtual void OnDrawDeactive(CPDFSDK_PageView
*pPageView, CPDFSDK_Annot* pAnnot, | 39 virtual void OnDrawDeactive(CPDFSDK_PageView
*pPageView, CPDFSDK_Annot* pAnnot, |
40 CFX_Rend
erDevice* pDevice, CPDF_Matrix* pUser2Device, | 40 CFX_Rend
erDevice* pDevice, CPDF_Matrix* pUser2Device, |
41 FX_DWORD
dwFlags); | 41 FX_DWORD
dwFlags); |
42 | 42 |
43 virtual void OnCreate(CPDFSDK_Annot* pAnnot); | 43 virtual void OnCreate(CPDFSDK_Annot* pAnnot); |
44 virtual void OnLoad(CPDFSDK_Annot* pAnnot); | 44 virtual void OnLoad(CPDFSDK_Annot* pAnnot); |
45 virtual void OnDelete(CPDFSDK_Annot* pAnnot); | 45 virtual void OnDelete(CPDFSDK_Annot* pAnnot); |
46 | 46 |
47 virtual void OnMouseEnter(CPDFSDK_PageView *p
PageView, CPDFSDK_Annot* pAnnot); | 47 virtual void OnMouseEnter(CPDFSDK_PageView *p
PageView, CPDFSDK_Annot* pAnnot); |
48 virtual void OnMouseExit(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot); | 48 virtual void OnMouseExit(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot); |
49 | 49 |
50 » virtual FX_BOOL»» » » OnLButtonDown(CPDFSDK_PageView *
pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point); | 50 » virtual bool» » » » OnLButtonDown(CPDFSDK_PageView *
pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point); |
51 » virtual FX_BOOL»» » » OnLButtonUp(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point); | 51 » virtual bool» » » » OnLButtonUp(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point); |
52 » virtual FX_BOOL»» » » OnLButtonDblClk(CPDFSDK_PageView
*pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point); | 52 » virtual bool» » » » OnLButtonDblClk(CPDFSDK_PageView
*pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point); |
53 » virtual FX_BOOL»» » » OnMouseMove(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point); | 53 » virtual bool» » » » OnMouseMove(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point); |
54 » virtual FX_BOOL»» » » OnMouseWheel(CPDFSDK_PageView *p
PageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, short zDelta, const CPDF_Point&
point); | 54 » virtual bool» » » » OnMouseWheel(CPDFSDK_PageView *p
PageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, short zDelta, const CPDF_Point&
point); |
55 » virtual FX_BOOL»» » » OnRButtonDown(CPDFSDK_PageView *
pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point); | 55 » virtual bool» » » » OnRButtonDown(CPDFSDK_PageView *
pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point); |
56 » virtual FX_BOOL»» » » OnRButtonUp(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point); | 56 » virtual bool» » » » OnRButtonUp(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point); |
57 | 57 |
58 » virtual FX_BOOL»» » » OnKeyDown(CPDFSDK_Annot* pAnnot,
FX_UINT nKeyCode, FX_UINT nFlags); | 58 » virtual bool» » » » OnKeyDown(CPDFSDK_Annot* pAnnot,
FX_UINT nKeyCode, FX_UINT nFlags); |
59 » virtual FX_BOOL»» » » OnChar(CPDFSDK_Annot* pAnnot, FX
_UINT nChar, FX_UINT nFlags); | 59 » virtual bool» » » » OnChar(CPDFSDK_Annot* pAnnot, FX
_UINT nChar, FX_UINT nFlags); |
60 | 60 |
61 » virtual FX_BOOL»» » » OnSetFocus(CPDFSDK_Annot* pAnnot
, FX_UINT nFlag); | 61 » virtual bool» » » » OnSetFocus(CPDFSDK_Annot* pAnnot
, FX_UINT nFlag); |
62 » virtual FX_BOOL»» » » OnKillFocus(CPDFSDK_Annot* pAnno
t, FX_UINT nFlag); | 62 » virtual bool» » » » OnKillFocus(CPDFSDK_Annot* pAnno
t, FX_UINT nFlag); |
63 | 63 |
64 » virtual FX_BOOL»» » » CanCopy(CPDFSDK_Document* pDocum
ent); | 64 » virtual bool» » » » CanCopy(CPDFSDK_Document* pDocum
ent); |
65 » virtual FX_BOOL»» » » CanCut(CPDFSDK_Document* pDocume
nt); | 65 » virtual bool» » » » CanCut(CPDFSDK_Document* pDocume
nt); |
66 » virtual FX_BOOL»» » » CanPaste(CPDFSDK_Document* pDocu
ment); | 66 » virtual bool» » » » CanPaste(CPDFSDK_Document* pDocu
ment); |
67 | 67 |
68 virtual void DoCopy(CPDFSDK_Document* pDocume
nt); | 68 virtual void DoCopy(CPDFSDK_Document* pDocume
nt); |
69 virtual void DoCut(CPDFSDK_Document* pDocumen
t); | 69 virtual void DoCut(CPDFSDK_Document* pDocumen
t); |
70 virtual void DoPaste(CPDFSDK_Document* pDocum
ent); | 70 virtual void DoPaste(CPDFSDK_Document* pDocum
ent); |
71 | 71 |
72 // CPWL_TimerHandler | 72 // CPWL_TimerHandler |
73 virtual void TimerProc(); | 73 virtual void TimerProc(); |
74 virtual IFX_SystemHandler* GetSystemHandler() const; | 74 virtual IFX_SystemHandler* GetSystemHandler() const; |
75 | 75 |
76 virtual CPDF_Matrix GetWindowMatrix(void* pAttachedD
ata); | 76 virtual CPDF_Matrix GetWindowMatrix(void* pAttachedD
ata); |
77 virtual CFX_WideString LoadPopupMenuString(int nIndex); | 77 virtual CFX_WideString LoadPopupMenuString(int nIndex); |
78 | 78 |
79 virtual void GetActionData(CPDFSDK_PageView*
pPageView, CPDF_AAction::AActionType type, | 79 virtual void GetActionData(CPDFSDK_PageView*
pPageView, CPDF_AAction::AActionType type, |
80 PDFSDK_F
ieldAction& fa); | 80 PDFSDK_F
ieldAction& fa); |
81 virtual void SetActionData(CPDFSDK_PageView*
pPageView, CPDF_AAction::AActionType type, | 81 virtual void SetActionData(CPDFSDK_PageView*
pPageView, CPDF_AAction::AActionType type, |
82 const PD
FSDK_FieldAction& fa); | 82 const PD
FSDK_FieldAction& fa); |
83 » virtual FX_BOOL»» » » IsActionDataChanged(CPDF_AAction
::AActionType type, const PDFSDK_FieldAction& faOld, | 83 » virtual bool» » » » IsActionDataChanged(CPDF_AAction
::AActionType type, const PDFSDK_FieldAction& faOld, |
84 const PD
FSDK_FieldAction& faNew); | 84 const PD
FSDK_FieldAction& faNew); |
85 | 85 |
86 virtual void SaveState(CPDFSDK_PageView* pPag
eView); | 86 virtual void SaveState(CPDFSDK_PageView* pPag
eView); |
87 virtual void RestoreState(CPDFSDK_PageView* p
PageView); | 87 virtual void RestoreState(CPDFSDK_PageView* p
PageView); |
88 | 88 |
89 » virtual CPWL_Wnd* » » » ResetPDFWindow(CPDFSDK_PageView*
pPageView, FX_BOOL bRestoreValue); | 89 » virtual CPWL_Wnd* » » » ResetPDFWindow(CPDFSDK_PageView*
pPageView, bool bRestoreValue); |
90 | 90 |
91 » virtual void» » » » OnKeyStroke(FX_BOOL bKeyDown); | 91 » virtual void» » » » OnKeyStroke(bool bKeyDown); |
92 | 92 |
93 CPDF_Matrix GetCurMatrix(); | 93 CPDF_Matrix GetCurMatrix(); |
94 | 94 |
95 CPDF_Rect FFLtoPWL(const CPDF_Rect
& rect); | 95 CPDF_Rect FFLtoPWL(const CPDF_Rect
& rect); |
96 CPDF_Rect PWLtoFFL(const CPDF_Rect
& rect); | 96 CPDF_Rect PWLtoFFL(const CPDF_Rect
& rect); |
97 CPDF_Point FFLtoPWL(const CPDF_Poin
t& point); | 97 CPDF_Point FFLtoPWL(const CPDF_Poin
t& point); |
98 CPDF_Point PWLtoFFL(const CPDF_Poin
t& point); | 98 CPDF_Point PWLtoFFL(const CPDF_Poin
t& point); |
99 | 99 |
100 CPDF_Point WndtoPWL(CPDFSDK_PageVie
w* pPageView, const CPDF_Point& pt); | 100 CPDF_Point WndtoPWL(CPDFSDK_PageVie
w* pPageView, const CPDF_Point& pt); |
101 CPDF_Rect FFLtoWnd(CPDFSDK_PageVie
w* pPageView, const CPDF_Rect& rect); | 101 CPDF_Rect FFLtoWnd(CPDFSDK_PageVie
w* pPageView, const CPDF_Rect& rect); |
102 | 102 |
103 void SetWindowRect(CPDFSDK_Pa
geView* pPageView, const CPDF_Rect& rcWindow); | 103 void SetWindowRect(CPDFSDK_Pa
geView* pPageView, const CPDF_Rect& rcWindow); |
104 CPDF_Rect GetWindowRect(CPDFSDK_Pa
geView* pPageView); | 104 CPDF_Rect GetWindowRect(CPDFSDK_Pa
geView* pPageView); |
105 | 105 |
106 » FX_BOOL»» » » » » CommitData(CPDFSDK_PageV
iew* pPageView, FX_UINT nFlag); | 106 » bool» » » » » » CommitData(CPDFSDK_PageV
iew* pPageView, FX_UINT nFlag); |
107 » virtual FX_BOOL»» » » IsDataChanged(CPDFSDK_PageView*
pPageView); | 107 » virtual bool» » » » IsDataChanged(CPDFSDK_PageView*
pPageView); |
108 virtual void SaveData(CPDFSDK_PageView* pPage
View); | 108 virtual void SaveData(CPDFSDK_PageView* pPage
View); |
109 | 109 |
110 virtual void GetKeyStrokeData(CPDFSDK_PageVie
w* pPageView, FFL_KeyStrokeData& data); | 110 virtual void GetKeyStrokeData(CPDFSDK_PageVie
w* pPageView, FFL_KeyStrokeData& data); |
111 | 111 |
112 » CPWL_Wnd*» » » » » GetPDFWindow(CPDFSDK_Pag
eView* pPageView, FX_BOOL bNew); | 112 » CPWL_Wnd*» » » » » GetPDFWindow(CPDFSDK_Pag
eView* pPageView, bool bNew); |
113 void DestroyPDFWindow(CPDFSDK
_PageView* pPageView); | 113 void DestroyPDFWindow(CPDFSDK
_PageView* pPageView); |
114 » void» » » » » » EscapeFiller(CPDFSDK_Pag
eView* pPageView, FX_BOOL bDestroyPDFWindow); | 114 » void» » » » » » EscapeFiller(CPDFSDK_Pag
eView* pPageView, bool bDestroyPDFWindow); |
115 | 115 |
116 virtual PWL_CREATEPARAM GetCreateParam(); | 116 virtual PWL_CREATEPARAM GetCreateParam(); |
117 virtual CPWL_Wnd* NewPDFWindow(const PWL_CREATEPAR
AM& cp, CPDFSDK_PageView* pPageView) = 0; | 117 virtual CPWL_Wnd* NewPDFWindow(const PWL_CREATEPAR
AM& cp, CPDFSDK_PageView* pPageView) = 0; |
118 virtual CPDF_Rect GetFocusBox(CPDFSDK_PageView* pP
ageView); | 118 virtual CPDF_Rect GetFocusBox(CPDFSDK_PageView* pP
ageView); |
119 | 119 |
120 » FX_BOOL»» » » » » IsValid() const; | 120 » bool» » » » » » IsValid() const; |
121 CPDF_Rect GetPDFWindowRect() const
; | 121 CPDF_Rect GetPDFWindowRect() const
; |
122 | 122 |
123 CPDFSDK_PageView* GetCurPageView(); | 123 CPDFSDK_PageView* GetCurPageView(); |
124 void SetChangeMark(); | 124 void SetChangeMark(); |
125 | 125 |
126 virtual void InvalidateRect(double left, doub
le top, double right, double bottom); | 126 virtual void InvalidateRect(double left, doub
le top, double right, double bottom); |
127 CPDFDoc_Environment* GetApp(){return m_pApp;} | 127 CPDFDoc_Environment* GetApp(){return m_pApp;} |
128 CPDFSDK_Annot* GetSDKAnnot() {return m_pAnnot;} | 128 CPDFSDK_Annot* GetSDKAnnot() {return m_pAnnot;} |
129 | 129 |
130 protected: | 130 protected: |
131 using CFFL_PageView2PDFWindow = std::map<CPDFSDK_PageView*, CPWL_Wnd*>; | 131 using CFFL_PageView2PDFWindow = std::map<CPDFSDK_PageView*, CPWL_Wnd*>; |
132 | 132 |
133 CPDFDoc_Environment* m_pApp; | 133 CPDFDoc_Environment* m_pApp; |
134 CPDFSDK_Widget* m_pWidget; | 134 CPDFSDK_Widget* m_pWidget; |
135 CPDFSDK_Annot* m_pAnnot; | 135 CPDFSDK_Annot* m_pAnnot; |
136 | 136 |
137 FX_BOOL m_bValid; | 137 bool m_bValid; |
138 CFFL_PageView2PDFWindow m_Maps; | 138 CFFL_PageView2PDFWindow m_Maps; |
139 CPDF_Point m_ptOldPos; | 139 CPDF_Point m_ptOldPos; |
140 }; | 140 }; |
141 | 141 |
142 class CFFL_Button : public CFFL_FormFiller | 142 class CFFL_Button : public CFFL_FormFiller |
143 { | 143 { |
144 public: | 144 public: |
145 CFFL_Button(CPDFDoc_Environment* pApp, CPDFSDK_Annot* pWidget); | 145 CFFL_Button(CPDFDoc_Environment* pApp, CPDFSDK_Annot* pWidget); |
146 virtual ~CFFL_Button(); | 146 virtual ~CFFL_Button(); |
147 | 147 |
148 virtual void OnMouseEnter(CPDFSDK_PageView *p
PageView, CPDFSDK_Annot* pAnnot); | 148 virtual void OnMouseEnter(CPDFSDK_PageView *p
PageView, CPDFSDK_Annot* pAnnot); |
149 virtual void OnMouseExit(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot); | 149 virtual void OnMouseExit(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot); |
150 » virtual FX_BOOL»» » » OnLButtonDown(CPDFSDK_PageView *
pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point); | 150 » virtual bool» » » » OnLButtonDown(CPDFSDK_PageView *
pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point); |
151 » virtual FX_BOOL»» » » OnLButtonUp(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point); | 151 » virtual bool» » » » OnLButtonUp(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point); |
152 » virtual FX_BOOL»» » » OnMouseMove(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point); | 152 » virtual bool» » » » OnMouseMove(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point); |
153 virtual void OnDraw(CPDFSDK_PageView *pPageVi
ew, CPDFSDK_Annot* pAnnot, | 153 virtual void OnDraw(CPDFSDK_PageView *pPageVi
ew, CPDFSDK_Annot* pAnnot, |
154 CFX_Rend
erDevice* pDevice, CPDF_Matrix* pUser2Device, | 154 CFX_Rend
erDevice* pDevice, CPDF_Matrix* pUser2Device, |
155 FX_DWORD
dwFlags); | 155 FX_DWORD
dwFlags); |
156 | 156 |
157 virtual void OnDrawDeactive(CPDFSDK_PageView
*pPageView, CPDFSDK_Annot* pAnnot, | 157 virtual void OnDrawDeactive(CPDFSDK_PageView
*pPageView, CPDFSDK_Annot* pAnnot, |
158 CFX_Rend
erDevice* pDevice, CPDF_Matrix* pUser2Device, | 158 CFX_Rend
erDevice* pDevice, CPDF_Matrix* pUser2Device, |
159 FX_DWORD
dwFlags); | 159 FX_DWORD
dwFlags); |
160 protected: | 160 protected: |
161 » FX_BOOL»» » » » » m_bMouseIn; | 161 » bool» » » » » » m_bMouseIn; |
162 » FX_BOOL»» » » » » m_bMouseDown; | 162 » bool» » » » » » m_bMouseDown; |
163 }; | 163 }; |
164 | 164 |
165 #endif // FPDFSDK_INCLUDE_FORMFILLER_FFL_FORMFILLER_H_ | 165 #endif // FPDFSDK_INCLUDE_FORMFILLER_FFL_FORMFILLER_H_ |
OLD | NEW |