diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2018-03-28 18:49:34 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-03-28 18:49:34 +0000 |
commit | 7d12532362545273e0ceac93fae2154661323fd1 (patch) | |
tree | b58002c530a10c6a1e084d0aba0ad9972cd17fc1 /fpdfsdk/cpdfsdk_actionhandler.h | |
parent | 00d47a60e4cd0974771692a9d3fdd3ca28bf6eb2 (diff) | |
download | pdfium-7d12532362545273e0ceac93fae2154661323fd1.tar.xz |
More fpdfsdk filename cleanup
This CL moves more of the fpdfsdk/ code around to better match the
naming of other files.
Change-Id: I203d91e3e345b2b4767df7a69dd5bd981d61f1d2
Reviewed-on: https://pdfium-review.googlesource.com/29372
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'fpdfsdk/cpdfsdk_actionhandler.h')
-rw-r--r-- | fpdfsdk/cpdfsdk_actionhandler.h | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/fpdfsdk/cpdfsdk_actionhandler.h b/fpdfsdk/cpdfsdk_actionhandler.h new file mode 100644 index 0000000000..78d3e22e4f --- /dev/null +++ b/fpdfsdk/cpdfsdk_actionhandler.h @@ -0,0 +1,129 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef FPDFSDK_CPDFSDK_ACTIONHANDLER_H_ +#define FPDFSDK_CPDFSDK_ACTIONHANDLER_H_ + +#include <memory> +#include <set> + +#include "core/fpdfdoc/cpdf_aaction.h" +#include "core/fpdfdoc/cpdf_action.h" +#include "core/fxcrt/fx_string.h" +#include "fpdfsdk/cpdfsdk_fieldaction.h" + +class CPDFSDK_Annot; +class CPDFSDK_FormFillEnvironment; +class CPDF_Bookmark; +class CPDF_Dictionary; +class CPDF_FormField; +class IJS_EventContext; + +class CPDFSDK_ActionHandler { + public: + bool DoAction_DocOpen(const CPDF_Action& action, + CPDFSDK_FormFillEnvironment* pFormFillEnv); + bool DoAction_JavaScript(const CPDF_Action& JsAction, + WideString csJSName, + CPDFSDK_FormFillEnvironment* pFormFillEnv); + bool DoAction_Page(const CPDF_Action& action, + enum CPDF_AAction::AActionType eType, + CPDFSDK_FormFillEnvironment* pFormFillEnv); + bool DoAction_Document(const CPDF_Action& action, + enum CPDF_AAction::AActionType eType, + CPDFSDK_FormFillEnvironment* pFormFillEnv); + bool DoAction_BookMark(CPDF_Bookmark* pBookMark, + const CPDF_Action& action, + CPDF_AAction::AActionType type, + CPDFSDK_FormFillEnvironment* pFormFillEnv); + bool DoAction_Screen(const CPDF_Action& action, + CPDF_AAction::AActionType type, + CPDFSDK_FormFillEnvironment* pFormFillEnv, + CPDFSDK_Annot* pScreen); + bool DoAction_Link(const CPDF_Action& action, + CPDFSDK_FormFillEnvironment* pFormFillEnv); + bool DoAction_Field(const CPDF_Action& action, + CPDF_AAction::AActionType type, + CPDFSDK_FormFillEnvironment* pFormFillEnv, + CPDF_FormField* pFormField, + CPDFSDK_FieldAction* data); + bool DoAction_FieldJavaScript(const CPDF_Action& JsAction, + CPDF_AAction::AActionType type, + CPDFSDK_FormFillEnvironment* pFormFillEnv, + CPDF_FormField* pFormField, + CPDFSDK_FieldAction* data); + + private: + using RunScriptCallback = std::function<void(IJS_EventContext* context)>; + + void RunScriptForAction(const CPDF_Action& action, + CPDFSDK_FormFillEnvironment* pFormFillEnv, + const RunScriptCallback& cb); + void RunScript(CPDFSDK_FormFillEnvironment* pFormFillEnv, + const WideString& script, + const RunScriptCallback& cb); + + bool ExecuteDocumentOpenAction(const CPDF_Action& action, + CPDFSDK_FormFillEnvironment* pFormFillEnv, + std::set<CPDF_Dictionary*>* visited); + bool ExecuteDocumentPageAction(const CPDF_Action& action, + CPDF_AAction::AActionType type, + CPDFSDK_FormFillEnvironment* pFormFillEnv, + std::set<CPDF_Dictionary*>* visited); + bool ExecuteFieldAction(const CPDF_Action& action, + CPDF_AAction::AActionType type, + CPDFSDK_FormFillEnvironment* pFormFillEnv, + CPDF_FormField* pFormField, + CPDFSDK_FieldAction* data, + std::set<CPDF_Dictionary*>* visited); + bool ExecuteScreenAction(const CPDF_Action& action, + CPDF_AAction::AActionType type, + CPDFSDK_FormFillEnvironment* pFormFillEnv, + CPDFSDK_Annot* pScreen, + std::set<CPDF_Dictionary*>* visited); + bool ExecuteBookMark(const CPDF_Action& action, + CPDFSDK_FormFillEnvironment* pFormFillEnv, + CPDF_Bookmark* pBookmark, + std::set<CPDF_Dictionary*>* visited); + bool ExecuteLinkAction(const CPDF_Action& action, + CPDFSDK_FormFillEnvironment* pFormFillEnv, + std::set<CPDF_Dictionary*>* visited); + + void DoAction_NoJs(const CPDF_Action& action, + CPDFSDK_FormFillEnvironment* pFormFillEnv); + void RunDocumentPageJavaScript(CPDFSDK_FormFillEnvironment* pFormFillEnv, + CPDF_AAction::AActionType type, + const WideString& script); + void RunDocumentOpenJavaScript(CPDFSDK_FormFillEnvironment* pFormFillEnv, + const WideString& sScriptName, + const WideString& script); + void RunFieldJavaScript(CPDFSDK_FormFillEnvironment* pFormFillEnv, + CPDF_FormField* pFormField, + CPDF_AAction::AActionType type, + CPDFSDK_FieldAction* data, + const WideString& script); + + bool IsValidField(CPDFSDK_FormFillEnvironment* pFormFillEnv, + CPDF_Dictionary* pFieldDict); + + void DoAction_GoTo(CPDFSDK_FormFillEnvironment* pFormFillEnv, + const CPDF_Action& action); + void DoAction_Launch(CPDFSDK_FormFillEnvironment* pFormFillEnv, + const CPDF_Action& action); + void DoAction_URI(CPDFSDK_FormFillEnvironment* pFormFillEnv, + const CPDF_Action& action); + void DoAction_Named(CPDFSDK_FormFillEnvironment* pFormFillEnv, + const CPDF_Action& action); + + bool DoAction_Hide(const CPDF_Action& action, + CPDFSDK_FormFillEnvironment* pFormFillEnv); + bool DoAction_SubmitForm(const CPDF_Action& action, + CPDFSDK_FormFillEnvironment* pFormFillEnv); + void DoAction_ResetForm(const CPDF_Action& action, + CPDFSDK_FormFillEnvironment* pFormFillEnv); +}; + +#endif // FPDFSDK_CPDFSDK_ACTIONHANDLER_H_ |