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 | 8 |
9 #include <memory> | 9 #include <memory> |
10 #include <vector> | 10 #include <vector> |
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
246 return nullptr; | 246 return nullptr; |
247 | 247 |
248 UnderlyingDocumentType* pDocument = UnderlyingFromFPDFDocument(document); | 248 UnderlyingDocumentType* pDocument = UnderlyingFromFPDFDocument(document); |
249 if (!pDocument) | 249 if (!pDocument) |
250 return nullptr; | 250 return nullptr; |
251 | 251 |
252 #ifdef PDF_ENABLE_XFA | 252 #ifdef PDF_ENABLE_XFA |
253 // If the CPDFXFA_Document has a SDKDocument already then we've done this | 253 // If the CPDFXFA_Document has a SDKDocument already then we've done this |
254 // and can just return the old Env. Otherwise, we'll end up setting a new | 254 // and can just return the old Env. Otherwise, we'll end up setting a new |
255 // SDKDocument into the XFADocument and, that could get weird. | 255 // SDKDocument into the XFADocument and, that could get weird. |
256 if (pDocument->GetSDKDoc()) | 256 if (pDocument->GetFormFillEnv()) |
257 return pDocument->GetSDKDoc()->GetEnv(); | 257 return pDocument->GetFormFillEnv(); |
258 #endif | 258 #endif |
259 | 259 |
260 CPDFSDK_FormFillEnvironment* pFormFillEnv = | 260 CPDFSDK_FormFillEnvironment* pFormFillEnv = |
261 new CPDFSDK_FormFillEnvironment(pDocument, formInfo); | 261 new CPDFSDK_FormFillEnvironment(pDocument, formInfo); |
262 | 262 |
263 #ifdef PDF_ENABLE_XFA | 263 #ifdef PDF_ENABLE_XFA |
264 pDocument->SetSDKDoc(pFormFillEnv->GetSDKDocument()); | 264 pDocument->SetFormFillEnv(pFormFillEnv); |
265 CPDFXFA_App::GetInstance()->AddFormFillEnv(pFormFillEnv); | 265 CPDFXFA_App::GetInstance()->AddFormFillEnv(pFormFillEnv); |
266 #endif // PDF_ENABLE_XFA | 266 #endif // PDF_ENABLE_XFA |
267 | 267 |
268 return pFormFillEnv; | 268 return pFormFillEnv; |
269 } | 269 } |
270 | 270 |
271 DLLEXPORT void STDCALL | 271 DLLEXPORT void STDCALL |
272 FPDFDOC_ExitFormFillEnvironment(FPDF_FORMHANDLE hHandle) { | 272 FPDFDOC_ExitFormFillEnvironment(FPDF_FORMHANDLE hHandle) { |
273 if (!hHandle) | 273 if (!hHandle) |
274 return; | 274 return; |
275 | 275 |
276 CPDFSDK_FormFillEnvironment* pFormFillEnv = | 276 CPDFSDK_FormFillEnvironment* pFormFillEnv = |
277 HandleToCPDFSDKEnvironment(hHandle); | 277 HandleToCPDFSDKEnvironment(hHandle); |
278 | 278 |
279 #ifdef PDF_ENABLE_XFA | 279 #ifdef PDF_ENABLE_XFA |
280 CPDFXFA_App::GetInstance()->RemoveFormFillEnv(pFormFillEnv); | 280 CPDFXFA_App::GetInstance()->RemoveFormFillEnv(pFormFillEnv); |
281 | 281 |
282 // Reset the focused annotations and remove the SDK document from the | 282 // Reset the focused annotations and remove the SDK document from the |
283 // XFA document. | 283 // XFA document. |
284 pFormFillEnv->GetSDKDocument()->ClearAllFocusedAnnots(); | 284 pFormFillEnv->GetSDKDocument()->ClearAllFocusedAnnots(); |
285 // If the document was closed first, it's possible the XFA document | 285 // If the document was closed first, it's possible the XFA document |
286 // is now a nullptr. | 286 // is now a nullptr. |
287 if (pFormFillEnv->GetSDKDocument()->GetXFADocument()) | 287 if (pFormFillEnv->GetSDKDocument()->GetXFADocument()) |
288 pFormFillEnv->GetSDKDocument()->GetXFADocument()->SetSDKDoc(nullptr); | 288 pFormFillEnv->GetSDKDocument()->GetXFADocument()->SetFormFillEnv(nullptr); |
289 #endif // PDF_ENABLE_XFA | 289 #endif // PDF_ENABLE_XFA |
290 | 290 |
291 delete pFormFillEnv; | 291 delete pFormFillEnv; |
292 } | 292 } |
293 | 293 |
294 DLLEXPORT FPDF_BOOL STDCALL FORM_OnMouseMove(FPDF_FORMHANDLE hHandle, | 294 DLLEXPORT FPDF_BOOL STDCALL FORM_OnMouseMove(FPDF_FORMHANDLE hHandle, |
295 FPDF_PAGE page, | 295 FPDF_PAGE page, |
296 int modifier, | 296 int modifier, |
297 double page_x, | 297 double page_x, |
298 double page_y) { | 298 double page_y) { |
(...skipping 450 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
749 pFormFillEnv); | 749 pFormFillEnv); |
750 } | 750 } |
751 } else { | 751 } else { |
752 if (aa.ActionExist(CPDF_AAction::ClosePage)) { | 752 if (aa.ActionExist(CPDF_AAction::ClosePage)) { |
753 CPDF_Action action = aa.GetAction(CPDF_AAction::ClosePage); | 753 CPDF_Action action = aa.GetAction(CPDF_AAction::ClosePage); |
754 pActionHandler->DoAction_Page(action, CPDF_AAction::ClosePage, | 754 pActionHandler->DoAction_Page(action, CPDF_AAction::ClosePage, |
755 pFormFillEnv); | 755 pFormFillEnv); |
756 } | 756 } |
757 } | 757 } |
758 } | 758 } |
OLD | NEW |