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 #include "../../public/fpdf_formfill.h" | 7 #include "../../public/fpdf_formfill.h" |
8 #include "../../public/fpdfview.h" | 8 #include "../../public/fpdfview.h" |
9 #include "../../third_party/base/nonstd_unique_ptr.h" | 9 #include "../../third_party/base/nonstd_unique_ptr.h" |
10 #include "../include/fsdk_define.h" | 10 #include "../include/fsdk_define.h" |
(...skipping 10 matching lines...) Expand all Loading... |
21 | 21 |
22 CPDFSDK_InterForm* FormHandleToInterForm(FPDF_FORMHANDLE hHandle) | 22 CPDFSDK_InterForm* FormHandleToInterForm(FPDF_FORMHANDLE hHandle) |
23 { | 23 { |
24 CPDFSDK_Document* pSDKDoc = FormHandleToSDKDoc(hHandle); | 24 CPDFSDK_Document* pSDKDoc = FormHandleToSDKDoc(hHandle); |
25 return pSDKDoc ? pSDKDoc->GetInterForm() : nullptr; | 25 return pSDKDoc ? pSDKDoc->GetInterForm() : nullptr; |
26 } | 26 } |
27 | 27 |
28 CPDFSDK_PageView* FormHandleToPageView(FPDF_FORMHANDLE hHandle, FPDF_PAGE page) | 28 CPDFSDK_PageView* FormHandleToPageView(FPDF_FORMHANDLE hHandle, FPDF_PAGE page) |
29 { | 29 { |
30 CPDFSDK_Document* pSDKDoc = FormHandleToSDKDoc(hHandle); | 30 CPDFSDK_Document* pSDKDoc = FormHandleToSDKDoc(hHandle); |
31 return pSDKDoc ? pSDKDoc->GetPageView((CPDF_Page*)page, TRUE) : nullptr; | 31 return pSDKDoc ? pSDKDoc->GetPageView((CPDF_Page*)page, true) : nullptr; |
32 } | 32 } |
33 | 33 |
34 } // namespace | 34 } // namespace |
35 | 35 |
36 DLLEXPORT int STDCALL FPDPage_HasFormFieldAtPoint( | 36 DLLEXPORT int STDCALL FPDPage_HasFormFieldAtPoint( |
37 FPDF_FORMHANDLE hHandle, FPDF_PAGE page, double page_x, double page_y) | 37 FPDF_FORMHANDLE hHandle, FPDF_PAGE page, double page_x, double page_y) |
38 { | 38 { |
39 if (!page || !hHandle) | 39 if (!page || !hHandle) |
40 return -1; | 40 return -1; |
41 CPDF_Page* pPage = (CPDF_Page*) page; | 41 CPDF_Page* pPage = (CPDF_Page*) page; |
42 | 42 |
43 nonstd::unique_ptr<CPDF_InterForm> pInterForm( | 43 nonstd::unique_ptr<CPDF_InterForm> pInterForm( |
44 new CPDF_InterForm(pPage->m_pDocument, FALSE)); | 44 new CPDF_InterForm(pPage->m_pDocument, false)); |
45 CPDF_FormControl* pFormCtrl = pInterForm->GetControlAtPoint( | 45 CPDF_FormControl* pFormCtrl = pInterForm->GetControlAtPoint( |
46 pPage, (FX_FLOAT)page_x, (FX_FLOAT)page_y); | 46 pPage, (FX_FLOAT)page_x, (FX_FLOAT)page_y); |
47 if (!pFormCtrl) | 47 if (!pFormCtrl) |
48 return -1; | 48 return -1; |
49 | 49 |
50 CPDF_FormField* pFormField = pFormCtrl->GetField(); | 50 CPDF_FormField* pFormField = pFormCtrl->GetField(); |
51 if(!pFormField) | 51 if(!pFormField) |
52 return -1; | 52 return -1; |
53 | 53 |
54 return pFormField->GetFieldType(); | 54 return pFormField->GetFieldType(); |
(...skipping 22 matching lines...) Expand all Loading... |
77 pEnv->SetSDKDocument(NULL); | 77 pEnv->SetSDKDocument(NULL); |
78 delete pSDKDoc; | 78 delete pSDKDoc; |
79 } | 79 } |
80 delete pEnv; | 80 delete pEnv; |
81 } | 81 } |
82 | 82 |
83 DLLEXPORT FPDF_BOOL STDCALL FORM_OnMouseMove(FPDF_FORMHANDLE hHandle, FPDF_PAGE
page, int modifier, double page_x, double page_y) | 83 DLLEXPORT FPDF_BOOL STDCALL FORM_OnMouseMove(FPDF_FORMHANDLE hHandle, FPDF_PAGE
page, int modifier, double page_x, double page_y) |
84 { | 84 { |
85 CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page); | 85 CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page); |
86 if (!pPageView) | 86 if (!pPageView) |
87 return FALSE; | 87 return false; |
88 | 88 |
89 CPDF_Point pt((FX_FLOAT)page_x, (FX_FLOAT)page_y); | 89 CPDF_Point pt((FX_FLOAT)page_x, (FX_FLOAT)page_y); |
90 return pPageView->OnMouseMove(pt, modifier); | 90 return pPageView->OnMouseMove(pt, modifier); |
91 } | 91 } |
92 | 92 |
93 DLLEXPORT FPDF_BOOL STDCALL FORM_OnLButtonDown(FPDF_FORMHANDLE hHandle, FPDF_PAG
E page, int modifier, double page_x, double page_y) | 93 DLLEXPORT FPDF_BOOL STDCALL FORM_OnLButtonDown(FPDF_FORMHANDLE hHandle, FPDF_PAG
E page, int modifier, double page_x, double page_y) |
94 { | 94 { |
95 CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page); | 95 CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page); |
96 if (!pPageView) | 96 if (!pPageView) |
97 return FALSE; | 97 return false; |
98 | 98 |
99 CPDF_Point pt((FX_FLOAT)page_x, (FX_FLOAT)page_y); | 99 CPDF_Point pt((FX_FLOAT)page_x, (FX_FLOAT)page_y); |
100 return pPageView->OnLButtonDown(pt, modifier); | 100 return pPageView->OnLButtonDown(pt, modifier); |
101 } | 101 } |
102 | 102 |
103 DLLEXPORT FPDF_BOOL STDCALL FORM_OnLButtonUp(FPDF_FORMHANDLE hHandle, FPDF_PAGE
page, int modifier, double page_x, double page_y) | 103 DLLEXPORT FPDF_BOOL STDCALL FORM_OnLButtonUp(FPDF_FORMHANDLE hHandle, FPDF_PAGE
page, int modifier, double page_x, double page_y) |
104 { | 104 { |
105 CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page); | 105 CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page); |
106 if (!pPageView) | 106 if (!pPageView) |
107 return FALSE; | 107 return false; |
108 | 108 |
109 CPDF_Point pt((FX_FLOAT)page_x, (FX_FLOAT)page_y); | 109 CPDF_Point pt((FX_FLOAT)page_x, (FX_FLOAT)page_y); |
110 return pPageView->OnLButtonUp(pt, modifier); | 110 return pPageView->OnLButtonUp(pt, modifier); |
111 } | 111 } |
112 | 112 |
113 DLLEXPORT FPDF_BOOL STDCALL FORM_OnKeyDown(FPDF_FORMHANDLE hHandle, FPDF_PAGE pa
ge, int nKeyCode, int modifier) | 113 DLLEXPORT FPDF_BOOL STDCALL FORM_OnKeyDown(FPDF_FORMHANDLE hHandle, FPDF_PAGE pa
ge, int nKeyCode, int modifier) |
114 { | 114 { |
115 CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page); | 115 CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page); |
116 if (!pPageView) | 116 if (!pPageView) |
117 return FALSE; | 117 return false; |
118 | 118 |
119 return pPageView->OnKeyDown(nKeyCode, modifier); | 119 return pPageView->OnKeyDown(nKeyCode, modifier); |
120 } | 120 } |
121 | 121 |
122 DLLEXPORT FPDF_BOOL STDCALL FORM_OnKeyUp(FPDF_FORMHANDLE hHandle, FPDF_PAGE page
, int nKeyCode, int modifier) | 122 DLLEXPORT FPDF_BOOL STDCALL FORM_OnKeyUp(FPDF_FORMHANDLE hHandle, FPDF_PAGE page
, int nKeyCode, int modifier) |
123 { | 123 { |
124 CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page); | 124 CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page); |
125 if (!pPageView) | 125 if (!pPageView) |
126 return FALSE; | 126 return false; |
127 | 127 |
128 return pPageView->OnKeyUp(nKeyCode, modifier); | 128 return pPageView->OnKeyUp(nKeyCode, modifier); |
129 } | 129 } |
130 | 130 |
131 DLLEXPORT FPDF_BOOL STDCALL FORM_OnChar(FPDF_FORMHANDLE hHandle, FPDF_PAGE page,
int nChar, int modifier) | 131 DLLEXPORT FPDF_BOOL STDCALL FORM_OnChar(FPDF_FORMHANDLE hHandle, FPDF_PAGE page,
int nChar, int modifier) |
132 { | 132 { |
133 CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page); | 133 CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page); |
134 if (!pPageView) | 134 if (!pPageView) |
135 return FALSE; | 135 return false; |
136 | 136 |
137 return pPageView->OnChar(nChar, modifier); | 137 return pPageView->OnChar(nChar, modifier); |
138 } | 138 } |
139 | 139 |
140 DLLEXPORT FPDF_BOOL STDCALL FORM_ForceToKillFocus(FPDF_FORMHANDLE hHandle) | 140 DLLEXPORT FPDF_BOOL STDCALL FORM_ForceToKillFocus(FPDF_FORMHANDLE hHandle) |
141 { | 141 { |
142 CPDFSDK_Document* pSDKDoc = FormHandleToSDKDoc(hHandle); | 142 CPDFSDK_Document* pSDKDoc = FormHandleToSDKDoc(hHandle); |
143 if (!pSDKDoc) | 143 if (!pSDKDoc) |
144 return FALSE; | 144 return false; |
145 | 145 |
146 return pSDKDoc->KillFocusAnnot(0); | 146 return pSDKDoc->KillFocusAnnot(0); |
147 } | 147 } |
148 | 148 |
149 DLLEXPORT void STDCALL FPDF_FFLDraw(FPDF_FORMHANDLE hHandle, FPDF_BITMAP bitmap,
FPDF_PAGE page, | 149 DLLEXPORT void STDCALL FPDF_FFLDraw(FPDF_FORMHANDLE hHandle, FPDF_BITMAP bitmap,
FPDF_PAGE page, |
150 int start_x, int start_y, int size_x, int si
ze_y, int rotate, int flags) | 150 int start_x, int start_y, int size_x, int si
ze_y, int rotate, int flags) |
151 { | 151 { |
152 if (!hHandle || !page) | 152 if (!hHandle || !page) |
153 return; | 153 return; |
154 | 154 |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 | 209 |
210 DLLEXPORT void STDCALL FPDF_RemoveFormFieldHighlight(FPDF_FORMHANDLE hHandle) | 210 DLLEXPORT void STDCALL FPDF_RemoveFormFieldHighlight(FPDF_FORMHANDLE hHandle) |
211 { | 211 { |
212 if (CPDFSDK_InterForm* pInterForm = FormHandleToInterForm(hHandle)) | 212 if (CPDFSDK_InterForm* pInterForm = FormHandleToInterForm(hHandle)) |
213 pInterForm->RemoveAllHighLight(); | 213 pInterForm->RemoveAllHighLight(); |
214 } | 214 } |
215 | 215 |
216 DLLEXPORT void STDCALL FORM_OnAfterLoadPage(FPDF_PAGE page, FPDF_FORMHANDLE hHan
dle) | 216 DLLEXPORT void STDCALL FORM_OnAfterLoadPage(FPDF_PAGE page, FPDF_FORMHANDLE hHan
dle) |
217 { | 217 { |
218 if (CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page)) | 218 if (CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page)) |
219 pPageView->SetValid(TRUE); | 219 pPageView->SetValid(true); |
220 } | 220 } |
221 | 221 |
222 DLLEXPORT void STDCALL FORM_OnBeforeClosePage(FPDF_PAGE page, FPDF_FORMHANDLE hH
andle) | 222 DLLEXPORT void STDCALL FORM_OnBeforeClosePage(FPDF_PAGE page, FPDF_FORMHANDLE hH
andle) |
223 { | 223 { |
224 if (!hHandle || !page) | 224 if (!hHandle || !page) |
225 return; | 225 return; |
226 | 226 |
227 CPDFSDK_Document* pSDKDoc = ((CPDFDoc_Environment*)hHandle)->GetSDKDocument(
); | 227 CPDFSDK_Document* pSDKDoc = ((CPDFDoc_Environment*)hHandle)->GetSDKDocument(
); |
228 if (!pSDKDoc) | 228 if (!pSDKDoc) |
229 return; | 229 return; |
230 | 230 |
231 CPDF_Page* pPage = (CPDF_Page*)page; | 231 CPDF_Page* pPage = (CPDF_Page*)page; |
232 CPDFSDK_PageView* pPageView = pSDKDoc->GetPageView(pPage, FALSE); | 232 CPDFSDK_PageView* pPageView = pSDKDoc->GetPageView(pPage, false); |
233 if (pPageView) | 233 if (pPageView) |
234 { | 234 { |
235 pPageView->SetValid(FALSE); | 235 pPageView->SetValid(false); |
236 // ReMovePageView() takes care of the delete for us. | 236 // ReMovePageView() takes care of the delete for us. |
237 pSDKDoc->ReMovePageView(pPage); | 237 pSDKDoc->ReMovePageView(pPage); |
238 } | 238 } |
239 } | 239 } |
240 | 240 |
241 DLLEXPORT void STDCALL FORM_DoDocumentJSAction(FPDF_FORMHANDLE hHandle) | 241 DLLEXPORT void STDCALL FORM_DoDocumentJSAction(FPDF_FORMHANDLE hHandle) |
242 { | 242 { |
243 CPDFSDK_Document* pSDKDoc = FormHandleToSDKDoc(hHandle); | 243 CPDFSDK_Document* pSDKDoc = FormHandleToSDKDoc(hHandle); |
244 if (pSDKDoc && ((CPDFDoc_Environment*)hHandle)->IsJSInitiated()) | 244 if (pSDKDoc && ((CPDFDoc_Environment*)hHandle)->IsJSInitiated()) |
245 pSDKDoc->ProcJavascriptFun(); | 245 pSDKDoc->ProcJavascriptFun(); |
(...skipping 26 matching lines...) Expand all Loading... |
272 pActionHandler->DoAction_Document(action, (CPDF_AAction::AActionType)aaT
ype, pSDKDoc); | 272 pActionHandler->DoAction_Document(action, (CPDF_AAction::AActionType)aaT
ype, pSDKDoc); |
273 } | 273 } |
274 } | 274 } |
275 | 275 |
276 DLLEXPORT void STDCALL FORM_DoPageAAction(FPDF_PAGE page, FPDF_FORMHANDLE hHandl
e, int aaType) | 276 DLLEXPORT void STDCALL FORM_DoPageAAction(FPDF_PAGE page, FPDF_FORMHANDLE hHandl
e, int aaType) |
277 { | 277 { |
278 if(!hHandle || !page) | 278 if(!hHandle || !page) |
279 return; | 279 return; |
280 CPDFSDK_Document* pSDKDoc = ((CPDFDoc_Environment*)hHandle)->GetSDKDocument(
); | 280 CPDFSDK_Document* pSDKDoc = ((CPDFDoc_Environment*)hHandle)->GetSDKDocument(
); |
281 CPDF_Page* pPage = (CPDF_Page*)page; | 281 CPDF_Page* pPage = (CPDF_Page*)page; |
282 CPDFSDK_PageView* pPageView = pSDKDoc->GetPageView(pPage, FALSE); | 282 CPDFSDK_PageView* pPageView = pSDKDoc->GetPageView(pPage, false); |
283 if(pPageView) | 283 if(pPageView) |
284 { | 284 { |
285 CPDFDoc_Environment *pEnv = pSDKDoc->GetEnv(); | 285 CPDFDoc_Environment *pEnv = pSDKDoc->GetEnv(); |
286 ASSERT(pEnv != NULL); | 286 ASSERT(pEnv != NULL); |
287 | 287 |
288 CPDFSDK_ActionHandler *pActionHandler = pEnv->GetActionHander(); | 288 CPDFSDK_ActionHandler *pActionHandler = pEnv->GetActionHander(); |
289 ASSERT(pActionHandler != NULL); | 289 ASSERT(pActionHandler != NULL); |
290 | 290 |
291 CPDF_Dictionary *pPageDict = pPage->m_pFormDict; | 291 CPDF_Dictionary *pPageDict = pPage->m_pFormDict; |
292 ASSERT(pPageDict != NULL); | 292 ASSERT(pPageDict != NULL); |
293 | 293 |
294 CPDF_AAction aa = pPageDict->GetDict(FX_BSTRC("AA")); | 294 CPDF_AAction aa = pPageDict->GetDict(FX_BSTRC("AA")); |
295 | 295 |
296 FX_BOOL bExistOAAction = FALSE; | 296 bool bExistOAAction = false; |
297 FX_BOOL bExistCAAction = FALSE; | 297 bool bExistCAAction = false; |
298 if (FPDFPAGE_AACTION_OPEN == aaType) | 298 if (FPDFPAGE_AACTION_OPEN == aaType) |
299 { | 299 { |
300 bExistOAAction = aa.ActionExist(CPDF_AAction::OpenPage); | 300 bExistOAAction = aa.ActionExist(CPDF_AAction::OpenPage); |
301 if (bExistOAAction) | 301 if (bExistOAAction) |
302 { | 302 { |
303 CPDF_Action action = aa.GetAction(CPDF_AAction::OpenPage); | 303 CPDF_Action action = aa.GetAction(CPDF_AAction::OpenPage); |
304 pActionHandler->DoAction_Page(action, CPDF_AAction::OpenPage, pS
DKDoc); | 304 pActionHandler->DoAction_Page(action, CPDF_AAction::OpenPage, pS
DKDoc); |
305 } | 305 } |
306 } | 306 } |
307 else | 307 else |
308 { | 308 { |
309 bExistCAAction = aa.ActionExist(CPDF_AAction::ClosePage); | 309 bExistCAAction = aa.ActionExist(CPDF_AAction::ClosePage); |
310 if (bExistCAAction) | 310 if (bExistCAAction) |
311 { | 311 { |
312 CPDF_Action action = aa.GetAction(CPDF_AAction::ClosePage); | 312 CPDF_Action action = aa.GetAction(CPDF_AAction::ClosePage); |
313 pActionHandler->DoAction_Page(action, CPDF_AAction::ClosePage, p
SDKDoc); | 313 pActionHandler->DoAction_Page(action, CPDF_AAction::ClosePage, p
SDKDoc); |
314 } | 314 } |
315 } | 315 } |
316 } | 316 } |
317 } | 317 } |
OLD | NEW |