• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2016 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_JAVASCRIPT_IJS_EVENT_CONTEXT_H_
8 #define FPDFSDK_JAVASCRIPT_IJS_EVENT_CONTEXT_H_
9 
10 #include "core/fxcrt/fx_string.h"
11 #include "core/fxcrt/fx_system.h"
12 
13 class CPDF_Bookmark;
14 class CPDF_FormField;
15 class CPDFSDK_Annot;
16 class CPDFSDK_FormFillEnvironment;
17 
18 // Records the details of an event and triggers JS execution for it. There
19 // can be more than one of these at any given time, as JS callbacks to C++
20 // may trigger new events on top of one another.
21 class IJS_EventContext {
22  public:
23   virtual bool RunScript(const CFX_WideString& script,
24                          CFX_WideString* info) = 0;
25 
26   virtual void OnApp_Init() = 0;
27 
28   virtual void OnDoc_Open(CPDFSDK_FormFillEnvironment* pFormFillEnv,
29                           const CFX_WideString& strTargetName) = 0;
30   virtual void OnDoc_WillPrint(CPDFSDK_FormFillEnvironment* pFormFillEnv) = 0;
31   virtual void OnDoc_DidPrint(CPDFSDK_FormFillEnvironment* pFormFillEnv) = 0;
32   virtual void OnDoc_WillSave(CPDFSDK_FormFillEnvironment* pFormFillEnv) = 0;
33   virtual void OnDoc_DidSave(CPDFSDK_FormFillEnvironment* pFormFillEnv) = 0;
34   virtual void OnDoc_WillClose(CPDFSDK_FormFillEnvironment* pFormFillEnv) = 0;
35 
36   virtual void OnPage_Open(CPDFSDK_FormFillEnvironment* pFormFillEnv) = 0;
37   virtual void OnPage_Close(CPDFSDK_FormFillEnvironment* pFormFillEnv) = 0;
38   virtual void OnPage_InView(CPDFSDK_FormFillEnvironment* pFormFillEnv) = 0;
39   virtual void OnPage_OutView(CPDFSDK_FormFillEnvironment* pFormFillEnv) = 0;
40 
41   virtual void OnField_MouseDown(bool bModifier,
42                                  bool bShift,
43                                  CPDF_FormField* pTarget) = 0;
44   virtual void OnField_MouseEnter(bool bModifier,
45                                   bool bShift,
46                                   CPDF_FormField* pTarget) = 0;
47   virtual void OnField_MouseExit(bool bModifier,
48                                  bool bShift,
49                                  CPDF_FormField* pTarget) = 0;
50   virtual void OnField_MouseUp(bool bModifier,
51                                bool bShift,
52                                CPDF_FormField* pTarget) = 0;
53   virtual void OnField_Focus(bool bModifier,
54                              bool bShift,
55                              CPDF_FormField* pTarget,
56                              const CFX_WideString& Value) = 0;
57   virtual void OnField_Blur(bool bModifier,
58                             bool bShift,
59                             CPDF_FormField* pTarget,
60                             const CFX_WideString& Value) = 0;
61 
62   virtual void OnField_Calculate(CPDF_FormField* pSource,
63                                  CPDF_FormField* pTarget,
64                                  CFX_WideString& Value,
65                                  bool& bRc) = 0;
66   virtual void OnField_Format(CPDF_FormField* pTarget,
67                               CFX_WideString& Value,
68                               bool bWillCommit) = 0;
69   virtual void OnField_Keystroke(CFX_WideString& strChange,
70                                  const CFX_WideString& strChangeEx,
71                                  bool KeyDown,
72                                  bool bModifier,
73                                  int& nSelEnd,
74                                  int& nSelStart,
75                                  bool bShift,
76                                  CPDF_FormField* pTarget,
77                                  CFX_WideString& Value,
78                                  bool bWillCommit,
79                                  bool bFieldFull,
80                                  bool& bRc) = 0;
81   virtual void OnField_Validate(CFX_WideString& strChange,
82                                 const CFX_WideString& strChangeEx,
83                                 bool bKeyDown,
84                                 bool bModifier,
85                                 bool bShift,
86                                 CPDF_FormField* pTarget,
87                                 CFX_WideString& Value,
88                                 bool& bRc) = 0;
89 
90   virtual void OnScreen_Focus(bool bModifier,
91                               bool bShift,
92                               CPDFSDK_Annot* pScreen) = 0;
93   virtual void OnScreen_Blur(bool bModifier,
94                              bool bShift,
95                              CPDFSDK_Annot* pScreen) = 0;
96   virtual void OnScreen_Open(bool bModifier,
97                              bool bShift,
98                              CPDFSDK_Annot* pScreen) = 0;
99   virtual void OnScreen_Close(bool bModifier,
100                               bool bShift,
101                               CPDFSDK_Annot* pScreen) = 0;
102   virtual void OnScreen_MouseDown(bool bModifier,
103                                   bool bShift,
104                                   CPDFSDK_Annot* pScreen) = 0;
105   virtual void OnScreen_MouseUp(bool bModifier,
106                                 bool bShift,
107                                 CPDFSDK_Annot* pScreen) = 0;
108   virtual void OnScreen_MouseEnter(bool bModifier,
109                                    bool bShift,
110                                    CPDFSDK_Annot* pScreen) = 0;
111   virtual void OnScreen_MouseExit(bool bModifier,
112                                   bool bShift,
113                                   CPDFSDK_Annot* pScreen) = 0;
114   virtual void OnScreen_InView(bool bModifier,
115                                bool bShift,
116                                CPDFSDK_Annot* pScreen) = 0;
117   virtual void OnScreen_OutView(bool bModifier,
118                                 bool bShift,
119                                 CPDFSDK_Annot* pScreen) = 0;
120 
121   virtual void OnBookmark_MouseUp(CPDF_Bookmark* pBookMark) = 0;
122   virtual void OnLink_MouseUp(CPDFSDK_FormFillEnvironment* pFormFillEnv) = 0;
123 
124   virtual void OnMenu_Exec(CPDFSDK_FormFillEnvironment* pFormFillEnv,
125                            const CFX_WideString&) = 0;
126   virtual void OnBatchExec(CPDFSDK_FormFillEnvironment* pFormFillEnv) = 0;
127   virtual void OnConsole_Exec() = 0;
128   virtual void OnExternal_Exec() = 0;
129 
130  protected:
~IJS_EventContext()131   virtual ~IJS_EventContext() {}
132 };
133 
134 #endif  // FPDFSDK_JAVASCRIPT_IJS_EVENT_CONTEXT_H_
135