| 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_FSDK_ACTIONHANDLER_H_ | 7 #ifndef FPDFSDK_FSDK_ACTIONHANDLER_H_ |
| 8 #define FPDFSDK_FSDK_ACTIONHANDLER_H_ | 8 #define FPDFSDK_FSDK_ACTIONHANDLER_H_ |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| 11 #include <set> | 11 #include <set> |
| 12 | 12 |
| 13 #include "core/fpdfdoc/cpdf_aaction.h" | 13 #include "core/fpdfdoc/cpdf_aaction.h" |
| 14 #include "core/fpdfdoc/cpdf_action.h" | 14 #include "core/fpdfdoc/cpdf_action.h" |
| 15 #include "core/fxcrt/fx_string.h" | 15 #include "core/fxcrt/fx_string.h" |
| 16 #include "fpdfsdk/pdfsdk_fieldaction.h" | 16 #include "fpdfsdk/pdfsdk_fieldaction.h" |
| 17 | 17 |
| 18 class CPDFSDK_Annot; | 18 class CPDFSDK_Annot; |
| 19 class CPDFSDK_Document; | 19 class CPDFSDK_FormFillEnvironment; |
| 20 class CPDF_Bookmark; | 20 class CPDF_Bookmark; |
| 21 class CPDF_Dictionary; | 21 class CPDF_Dictionary; |
| 22 class CPDF_FormField; | 22 class CPDF_FormField; |
| 23 | 23 |
| 24 class CPDFSDK_ActionHandler { | 24 class CPDFSDK_ActionHandler { |
| 25 public: | 25 public: |
| 26 FX_BOOL DoAction_DocOpen(const CPDF_Action& action, | 26 FX_BOOL DoAction_DocOpen(const CPDF_Action& action, |
| 27 CPDFSDK_Document* pDocument); | 27 CPDFSDK_FormFillEnvironment* pFormFillEnv); |
| 28 FX_BOOL DoAction_JavaScript(const CPDF_Action& JsAction, | 28 FX_BOOL DoAction_JavaScript(const CPDF_Action& JsAction, |
| 29 CFX_WideString csJSName, | 29 CFX_WideString csJSName, |
| 30 CPDFSDK_Document* pDocument); | 30 CPDFSDK_FormFillEnvironment* pFormFillEnv); |
| 31 FX_BOOL DoAction_Page(const CPDF_Action& action, | 31 FX_BOOL DoAction_Page(const CPDF_Action& action, |
| 32 enum CPDF_AAction::AActionType eType, | 32 enum CPDF_AAction::AActionType eType, |
| 33 CPDFSDK_Document* pDocument); | 33 CPDFSDK_FormFillEnvironment* pFormFillEnv); |
| 34 FX_BOOL DoAction_Document(const CPDF_Action& action, | 34 FX_BOOL DoAction_Document(const CPDF_Action& action, |
| 35 enum CPDF_AAction::AActionType eType, | 35 enum CPDF_AAction::AActionType eType, |
| 36 CPDFSDK_Document* pDocument); | 36 CPDFSDK_FormFillEnvironment* pFormFillEnv); |
| 37 FX_BOOL DoAction_BookMark(CPDF_Bookmark* pBookMark, | 37 FX_BOOL DoAction_BookMark(CPDF_Bookmark* pBookMark, |
| 38 const CPDF_Action& action, | 38 const CPDF_Action& action, |
| 39 CPDF_AAction::AActionType type, | 39 CPDF_AAction::AActionType type, |
| 40 CPDFSDK_Document* pDocument); | 40 CPDFSDK_FormFillEnvironment* pFormFillEnv); |
| 41 FX_BOOL DoAction_Screen(const CPDF_Action& action, | 41 FX_BOOL DoAction_Screen(const CPDF_Action& action, |
| 42 CPDF_AAction::AActionType type, | 42 CPDF_AAction::AActionType type, |
| 43 CPDFSDK_Document* pDocument, | 43 CPDFSDK_FormFillEnvironment* pFormFillEnv, |
| 44 CPDFSDK_Annot* pScreen); | 44 CPDFSDK_Annot* pScreen); |
| 45 FX_BOOL DoAction_Link(const CPDF_Action& action, CPDFSDK_Document* pDocument); | 45 FX_BOOL DoAction_Link(const CPDF_Action& action, |
| 46 CPDFSDK_FormFillEnvironment* pFormFillEnv); |
| 46 FX_BOOL DoAction_Field(const CPDF_Action& action, | 47 FX_BOOL DoAction_Field(const CPDF_Action& action, |
| 47 CPDF_AAction::AActionType type, | 48 CPDF_AAction::AActionType type, |
| 48 CPDFSDK_Document* pDocument, | 49 CPDFSDK_FormFillEnvironment* pFormFillEnv, |
| 49 CPDF_FormField* pFormField, | 50 CPDF_FormField* pFormField, |
| 50 PDFSDK_FieldAction& data); | 51 PDFSDK_FieldAction& data); |
| 51 FX_BOOL DoAction_FieldJavaScript(const CPDF_Action& JsAction, | 52 FX_BOOL DoAction_FieldJavaScript(const CPDF_Action& JsAction, |
| 52 CPDF_AAction::AActionType type, | 53 CPDF_AAction::AActionType type, |
| 53 CPDFSDK_Document* pDocument, | 54 CPDFSDK_FormFillEnvironment* pFormFillEnv, |
| 54 CPDF_FormField* pFormField, | 55 CPDF_FormField* pFormField, |
| 55 PDFSDK_FieldAction& data); | 56 PDFSDK_FieldAction& data); |
| 56 | 57 |
| 57 private: | 58 private: |
| 58 FX_BOOL ExecuteDocumentOpenAction(const CPDF_Action& action, | 59 FX_BOOL ExecuteDocumentOpenAction(const CPDF_Action& action, |
| 59 CPDFSDK_Document* pDocument, | 60 CPDFSDK_FormFillEnvironment* pFormFillEnv, |
| 60 std::set<CPDF_Dictionary*>* visited); | 61 std::set<CPDF_Dictionary*>* visited); |
| 61 FX_BOOL ExecuteDocumentPageAction(const CPDF_Action& action, | 62 FX_BOOL ExecuteDocumentPageAction(const CPDF_Action& action, |
| 62 CPDF_AAction::AActionType type, | 63 CPDF_AAction::AActionType type, |
| 63 CPDFSDK_Document* pDocument, | 64 CPDFSDK_FormFillEnvironment* pFormFillEnv, |
| 64 std::set<CPDF_Dictionary*>* visited); | 65 std::set<CPDF_Dictionary*>* visited); |
| 65 FX_BOOL ExecuteFieldAction(const CPDF_Action& action, | 66 FX_BOOL ExecuteFieldAction(const CPDF_Action& action, |
| 66 CPDF_AAction::AActionType type, | 67 CPDF_AAction::AActionType type, |
| 67 CPDFSDK_Document* pDocument, | 68 CPDFSDK_FormFillEnvironment* pFormFillEnv, |
| 68 CPDF_FormField* pFormField, | 69 CPDF_FormField* pFormField, |
| 69 PDFSDK_FieldAction& data, | 70 PDFSDK_FieldAction& data, |
| 70 std::set<CPDF_Dictionary*>* visited); | 71 std::set<CPDF_Dictionary*>* visited); |
| 71 FX_BOOL ExecuteScreenAction(const CPDF_Action& action, | 72 FX_BOOL ExecuteScreenAction(const CPDF_Action& action, |
| 72 CPDF_AAction::AActionType type, | 73 CPDF_AAction::AActionType type, |
| 73 CPDFSDK_Document* pDocument, | 74 CPDFSDK_FormFillEnvironment* pFormFillEnv, |
| 74 CPDFSDK_Annot* pScreen, | 75 CPDFSDK_Annot* pScreen, |
| 75 std::set<CPDF_Dictionary*>* visited); | 76 std::set<CPDF_Dictionary*>* visited); |
| 76 FX_BOOL ExecuteBookMark(const CPDF_Action& action, | 77 FX_BOOL ExecuteBookMark(const CPDF_Action& action, |
| 77 CPDFSDK_Document* pDocument, | 78 CPDFSDK_FormFillEnvironment* pFormFillEnv, |
| 78 CPDF_Bookmark* pBookmark, | 79 CPDF_Bookmark* pBookmark, |
| 79 std::set<CPDF_Dictionary*>* visited); | 80 std::set<CPDF_Dictionary*>* visited); |
| 80 FX_BOOL ExecuteLinkAction(const CPDF_Action& action, | 81 FX_BOOL ExecuteLinkAction(const CPDF_Action& action, |
| 81 CPDFSDK_Document* pDocument, | 82 CPDFSDK_FormFillEnvironment* pFormFillEnv, |
| 82 std::set<CPDF_Dictionary*>* visited); | 83 std::set<CPDF_Dictionary*>* visited); |
| 83 | 84 |
| 84 void DoAction_NoJs(const CPDF_Action& action, CPDFSDK_Document* pDocument); | 85 void DoAction_NoJs(const CPDF_Action& action, |
| 85 void RunDocumentPageJavaScript(CPDFSDK_Document* pDocument, | 86 CPDFSDK_FormFillEnvironment* pFormFillEnv); |
| 87 void RunDocumentPageJavaScript(CPDFSDK_FormFillEnvironment* pFormFillEnv, |
| 86 CPDF_AAction::AActionType type, | 88 CPDF_AAction::AActionType type, |
| 87 const CFX_WideString& script); | 89 const CFX_WideString& script); |
| 88 void RunDocumentOpenJavaScript(CPDFSDK_Document* pDocument, | 90 void RunDocumentOpenJavaScript(CPDFSDK_FormFillEnvironment* pFormFillEnv, |
| 89 const CFX_WideString& sScriptName, | 91 const CFX_WideString& sScriptName, |
| 90 const CFX_WideString& script); | 92 const CFX_WideString& script); |
| 91 void RunFieldJavaScript(CPDFSDK_Document* pDocument, | 93 void RunFieldJavaScript(CPDFSDK_FormFillEnvironment* pFormFillEnv, |
| 92 CPDF_FormField* pFormField, | 94 CPDF_FormField* pFormField, |
| 93 CPDF_AAction::AActionType type, | 95 CPDF_AAction::AActionType type, |
| 94 PDFSDK_FieldAction& data, | 96 PDFSDK_FieldAction& data, |
| 95 const CFX_WideString& script); | 97 const CFX_WideString& script); |
| 96 | 98 |
| 97 FX_BOOL IsValidField(CPDFSDK_Document* pDocument, | 99 FX_BOOL IsValidField(CPDFSDK_FormFillEnvironment* pFormFillEnv, |
| 98 CPDF_Dictionary* pFieldDict); | 100 CPDF_Dictionary* pFieldDict); |
| 99 FX_BOOL IsValidDocView(CPDFSDK_Document* pDocument); | 101 FX_BOOL IsValidDocView(CPDFSDK_FormFillEnvironment* pFormFillEnv); |
| 100 | 102 |
| 101 void DoAction_GoTo(CPDFSDK_Document* pDocument, const CPDF_Action& action); | 103 void DoAction_GoTo(CPDFSDK_FormFillEnvironment* pFormFillEnv, |
| 102 void DoAction_GoToR(CPDFSDK_Document* pDocument, const CPDF_Action& action); | 104 const CPDF_Action& action); |
| 103 void DoAction_Launch(CPDFSDK_Document* pDocument, const CPDF_Action& action); | 105 void DoAction_GoToR(CPDFSDK_FormFillEnvironment* pFormFillEnv, |
| 104 void DoAction_URI(CPDFSDK_Document* pDocument, const CPDF_Action& action); | 106 const CPDF_Action& action); |
| 105 void DoAction_Named(CPDFSDK_Document* pDocument, const CPDF_Action& action); | 107 void DoAction_Launch(CPDFSDK_FormFillEnvironment* pFormFillEnv, |
| 106 void DoAction_SetOCGState(CPDFSDK_Document* pDocument, | 108 const CPDF_Action& action); |
| 109 void DoAction_URI(CPDFSDK_FormFillEnvironment* pFormFillEnv, |
| 110 const CPDF_Action& action); |
| 111 void DoAction_Named(CPDFSDK_FormFillEnvironment* pFormFillEnv, |
| 112 const CPDF_Action& action); |
| 113 void DoAction_SetOCGState(CPDFSDK_FormFillEnvironment* pFormFillEnv, |
| 107 const CPDF_Action& action); | 114 const CPDF_Action& action); |
| 108 | 115 |
| 109 FX_BOOL DoAction_Hide(const CPDF_Action& action, CPDFSDK_Document* pDocument); | 116 FX_BOOL DoAction_Hide(const CPDF_Action& action, |
| 117 CPDFSDK_FormFillEnvironment* pFormFillEnv); |
| 110 FX_BOOL DoAction_SubmitForm(const CPDF_Action& action, | 118 FX_BOOL DoAction_SubmitForm(const CPDF_Action& action, |
| 111 CPDFSDK_Document* pDocument); | 119 CPDFSDK_FormFillEnvironment* pFormFillEnv); |
| 112 FX_BOOL DoAction_ResetForm(const CPDF_Action& action, | 120 FX_BOOL DoAction_ResetForm(const CPDF_Action& action, |
| 113 CPDFSDK_Document* pDocument); | 121 CPDFSDK_FormFillEnvironment* pFormFillEnv); |
| 114 FX_BOOL DoAction_ImportData(const CPDF_Action& action, | 122 FX_BOOL DoAction_ImportData(const CPDF_Action& action, |
| 115 CPDFSDK_Document* pDocument); | 123 CPDFSDK_FormFillEnvironment* pFormFillEnv); |
| 116 }; | 124 }; |
| 117 | 125 |
| 118 #endif // FPDFSDK_FSDK_ACTIONHANDLER_H_ | 126 #endif // FPDFSDK_FSDK_ACTIONHANDLER_H_ |
| OLD | NEW |