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.
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
7 #ifndef FPDFSDK_INCLUDE_JAVASCRIPT_JS_EVENTHANDLER_H_
8 #define FPDFSDK_INCLUDE_JAVASCRIPT_JS_EVENTHANDLER_H_
10 #include "../../../core/include/fxcrt/fx_string.h"
11 #include "../../../core/include/fxcrt/fx_system.h"
15 class CPDFSDK_Document;
49 JET_SCREEN_MOUSEENTER,
61 class CJS_EventHandler {
63 CJS_EventHandler(CJS_Context* pContext);
64 virtual ~CJS_EventHandler();
68 void OnDoc_Open(CPDFSDK_Document* pDoc, const CFX_WideString& strTargetName);
69 void OnDoc_WillPrint(CPDFSDK_Document* pDoc);
70 void OnDoc_DidPrint(CPDFSDK_Document* pDoc);
71 void OnDoc_WillSave(CPDFSDK_Document* pDoc);
72 void OnDoc_DidSave(CPDFSDK_Document* pDoc);
73 void OnDoc_WillClose(CPDFSDK_Document* pDoc);
75 void OnPage_Open(CPDFSDK_Document* pDoc);
76 void OnPage_Close(CPDFSDK_Document* pDoc);
77 void OnPage_InView(CPDFSDK_Document* pTarget);
78 void OnPage_OutView(CPDFSDK_Document* pTarget);
80 void OnField_Calculate(CPDF_FormField* pSource,
81 CPDF_FormField* pTarget,
82 CFX_WideString& Value,
84 void OnField_Format(CPDF_FormField* pTarget,
85 CFX_WideString& Value,
87 void OnField_Keystroke(CFX_WideString& strChange,
88 const CFX_WideString& strChangeEx,
94 CPDF_FormField* pTarget,
95 CFX_WideString& Value,
99 void OnField_Validate(CFX_WideString& strChange,
100 const CFX_WideString& strChangeEx,
104 CPDF_FormField* pTarget,
105 CFX_WideString& Value,
108 void OnField_MouseDown(FX_BOOL bModifier,
110 CPDF_FormField* pTarget);
111 void OnField_MouseEnter(FX_BOOL bModifier,
113 CPDF_FormField* pTarget);
114 void OnField_MouseExit(FX_BOOL bModifier,
116 CPDF_FormField* pTarget);
117 void OnField_MouseUp(FX_BOOL bModifier,
119 CPDF_FormField* pTarget);
120 void OnField_Blur(FX_BOOL bModifier,
122 CPDF_FormField* pTarget,
123 const CFX_WideString& Value);
124 void OnField_Focus(FX_BOOL bModifier,
126 CPDF_FormField* pTarget,
127 const CFX_WideString& Value);
129 void OnScreen_Focus(FX_BOOL bModifier,
131 CPDFSDK_Annot* pScreen);
132 void OnScreen_Blur(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen);
133 void OnScreen_Open(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen);
134 void OnScreen_Close(FX_BOOL bModifier,
136 CPDFSDK_Annot* pScreen);
137 void OnScreen_MouseDown(FX_BOOL bModifier,
139 CPDFSDK_Annot* pScreen);
140 void OnScreen_MouseUp(FX_BOOL bModifier,
142 CPDFSDK_Annot* pScreen);
143 void OnScreen_MouseEnter(FX_BOOL bModifier,
145 CPDFSDK_Annot* pScreen);
146 void OnScreen_MouseExit(FX_BOOL bModifier,
148 CPDFSDK_Annot* pScreen);
149 void OnScreen_InView(FX_BOOL bModifier,
151 CPDFSDK_Annot* pScreen);
152 void OnScreen_OutView(FX_BOOL bModifier,
154 CPDFSDK_Annot* pScreen);
156 void OnBookmark_MouseUp(CPDF_Bookmark* pBookMark);
157 void OnLink_MouseUp(CPDFSDK_Document* pTarget);
159 void OnMenu_Exec(CPDFSDK_Document* pTarget,
160 const CFX_WideString& strTargetName);
161 void OnBatchExec(CPDFSDK_Document* pTarget);
162 void OnConsole_Exec();
163 void OnExternal_Exec();
166 void Initial(JS_EVENT_T type);
170 CFX_WideString& Change();
171 CFX_WideString ChangeEx();
176 const FX_WCHAR* Name();
177 const FX_WCHAR* Type();
183 Field* Target_Field();
184 CFX_WideString& Value();
185 FX_BOOL WillCommit();
186 CFX_WideString TargetName();
188 JS_EVENT_T EventType() { return m_eEventType; }
191 CJS_Context* m_pJSContext;
192 JS_EVENT_T m_eEventType;
195 CFX_WideString m_strTargetName;
196 CFX_WideString m_strSourceName;
197 CFX_WideString* m_pWideStrChange;
198 CFX_WideString m_WideStrChangeDu;
199 CFX_WideString m_WideStrChangeEx;
208 FX_BOOL m_bWillCommit;
209 CFX_WideString* m_pValue;
210 FX_BOOL m_bFieldFull;
214 CPDFSDK_Document* m_pSourceDoc;
215 CPDF_Bookmark* m_pTargetBookMark;
216 CPDFSDK_Document* m_pTargetDoc;
217 CPDFSDK_Annot* m_pTargetAnnot;
220 #endif // FPDFSDK_INCLUDE_JAVASCRIPT_JS_EVENTHANDLER_H_