OLD | NEW |
| (Empty) |
1 // Copyright 2014 PDFium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | |
6 | |
7 #ifndef FPDFSDK_INCLUDE_FSDK_ACTIONHANDLER_H_ | |
8 #define FPDFSDK_INCLUDE_FSDK_ACTIONHANDLER_H_ | |
9 | |
10 #include <memory> | |
11 #include <set> | |
12 | |
13 #include "core/fpdfdoc/cpdf_aaction.h" | |
14 #include "core/fpdfdoc/cpdf_action.h" | |
15 #include "core/fxcrt/fx_string.h" | |
16 #include "fpdfsdk/include/pdfsdk_fieldaction.h" | |
17 | |
18 class CPDFSDK_Annot; | |
19 class CPDFSDK_Document; | |
20 class CPDF_Bookmark; | |
21 class CPDF_Dictionary; | |
22 class CPDF_FormField; | |
23 | |
24 class CPDFSDK_ActionHandler { | |
25 public: | |
26 FX_BOOL DoAction_DocOpen(const CPDF_Action& action, | |
27 CPDFSDK_Document* pDocument); | |
28 FX_BOOL DoAction_JavaScript(const CPDF_Action& JsAction, | |
29 CFX_WideString csJSName, | |
30 CPDFSDK_Document* pDocument); | |
31 FX_BOOL DoAction_Page(const CPDF_Action& action, | |
32 enum CPDF_AAction::AActionType eType, | |
33 CPDFSDK_Document* pDocument); | |
34 FX_BOOL DoAction_Document(const CPDF_Action& action, | |
35 enum CPDF_AAction::AActionType eType, | |
36 CPDFSDK_Document* pDocument); | |
37 FX_BOOL DoAction_BookMark(CPDF_Bookmark* pBookMark, | |
38 const CPDF_Action& action, | |
39 CPDF_AAction::AActionType type, | |
40 CPDFSDK_Document* pDocument); | |
41 FX_BOOL DoAction_Screen(const CPDF_Action& action, | |
42 CPDF_AAction::AActionType type, | |
43 CPDFSDK_Document* pDocument, | |
44 CPDFSDK_Annot* pScreen); | |
45 FX_BOOL DoAction_Link(const CPDF_Action& action, CPDFSDK_Document* pDocument); | |
46 FX_BOOL DoAction_Field(const CPDF_Action& action, | |
47 CPDF_AAction::AActionType type, | |
48 CPDFSDK_Document* pDocument, | |
49 CPDF_FormField* pFormField, | |
50 PDFSDK_FieldAction& data); | |
51 FX_BOOL DoAction_FieldJavaScript(const CPDF_Action& JsAction, | |
52 CPDF_AAction::AActionType type, | |
53 CPDFSDK_Document* pDocument, | |
54 CPDF_FormField* pFormField, | |
55 PDFSDK_FieldAction& data); | |
56 | |
57 private: | |
58 FX_BOOL ExecuteDocumentOpenAction(const CPDF_Action& action, | |
59 CPDFSDK_Document* pDocument, | |
60 std::set<CPDF_Dictionary*>* visited); | |
61 FX_BOOL ExecuteDocumentPageAction(const CPDF_Action& action, | |
62 CPDF_AAction::AActionType type, | |
63 CPDFSDK_Document* pDocument, | |
64 std::set<CPDF_Dictionary*>* visited); | |
65 FX_BOOL ExecuteFieldAction(const CPDF_Action& action, | |
66 CPDF_AAction::AActionType type, | |
67 CPDFSDK_Document* pDocument, | |
68 CPDF_FormField* pFormField, | |
69 PDFSDK_FieldAction& data, | |
70 std::set<CPDF_Dictionary*>* visited); | |
71 FX_BOOL ExecuteScreenAction(const CPDF_Action& action, | |
72 CPDF_AAction::AActionType type, | |
73 CPDFSDK_Document* pDocument, | |
74 CPDFSDK_Annot* pScreen, | |
75 std::set<CPDF_Dictionary*>* visited); | |
76 FX_BOOL ExecuteBookMark(const CPDF_Action& action, | |
77 CPDFSDK_Document* pDocument, | |
78 CPDF_Bookmark* pBookmark, | |
79 std::set<CPDF_Dictionary*>* visited); | |
80 FX_BOOL ExecuteLinkAction(const CPDF_Action& action, | |
81 CPDFSDK_Document* pDocument, | |
82 std::set<CPDF_Dictionary*>* visited); | |
83 | |
84 void DoAction_NoJs(const CPDF_Action& action, CPDFSDK_Document* pDocument); | |
85 void RunDocumentPageJavaScript(CPDFSDK_Document* pDocument, | |
86 CPDF_AAction::AActionType type, | |
87 const CFX_WideString& script); | |
88 void RunDocumentOpenJavaScript(CPDFSDK_Document* pDocument, | |
89 const CFX_WideString& sScriptName, | |
90 const CFX_WideString& script); | |
91 void RunFieldJavaScript(CPDFSDK_Document* pDocument, | |
92 CPDF_FormField* pFormField, | |
93 CPDF_AAction::AActionType type, | |
94 PDFSDK_FieldAction& data, | |
95 const CFX_WideString& script); | |
96 | |
97 FX_BOOL IsValidField(CPDFSDK_Document* pDocument, | |
98 CPDF_Dictionary* pFieldDict); | |
99 FX_BOOL IsValidDocView(CPDFSDK_Document* pDocument); | |
100 | |
101 void DoAction_GoTo(CPDFSDK_Document* pDocument, const CPDF_Action& action); | |
102 void DoAction_GoToR(CPDFSDK_Document* pDocument, const CPDF_Action& action); | |
103 void DoAction_Launch(CPDFSDK_Document* pDocument, const CPDF_Action& action); | |
104 void DoAction_URI(CPDFSDK_Document* pDocument, const CPDF_Action& action); | |
105 void DoAction_Named(CPDFSDK_Document* pDocument, const CPDF_Action& action); | |
106 void DoAction_SetOCGState(CPDFSDK_Document* pDocument, | |
107 const CPDF_Action& action); | |
108 | |
109 FX_BOOL DoAction_Hide(const CPDF_Action& action, CPDFSDK_Document* pDocument); | |
110 FX_BOOL DoAction_SubmitForm(const CPDF_Action& action, | |
111 CPDFSDK_Document* pDocument); | |
112 FX_BOOL DoAction_ResetForm(const CPDF_Action& action, | |
113 CPDFSDK_Document* pDocument); | |
114 FX_BOOL DoAction_ImportData(const CPDF_Action& action, | |
115 CPDFSDK_Document* pDocument); | |
116 }; | |
117 | |
118 #endif // FPDFSDK_INCLUDE_FSDK_ACTIONHANDLER_H_ | |
OLD | NEW |