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