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 |