Allow compiling PDFium without V8.
[pdfium.git] / fpdfsdk / include / javascript / IJavaScript.h
index 567ee82..bf90210 100644 (file)
-// Copyright 2014 PDFium Authors. All rights reserved.\r
-// Use of this source code is governed by a BSD-style license that can be\r
-// found in the LICENSE file.\r
\r
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com\r
-\r
-#ifndef _IJAVASCRIPT_H_\r
-#define _IJAVASCRIPT_H_\r
-\r
-class IFXJS_Context  \r
-{\r
-public:\r
-       virtual FX_BOOL                         Compile(const CFX_WideString& script, CFX_WideString& info) = 0;\r
-       virtual FX_BOOL                         RunScript(const CFX_WideString& script, CFX_WideString& info) = 0;\r
-\r
-public:\r
-       virtual void                            OnApp_Init() = 0;\r
-\r
-       virtual void                            OnDoc_Open(CPDFSDK_Document* pDoc, const CFX_WideString& strTargetName) = 0;\r
-       virtual void                            OnDoc_WillPrint(CPDFSDK_Document* pDoc) = 0;\r
-       virtual void                            OnDoc_DidPrint(CPDFSDK_Document* pDoc) = 0;\r
-       virtual void                            OnDoc_WillSave(CPDFSDK_Document* pDoc) = 0;\r
-       virtual void                            OnDoc_DidSave(CPDFSDK_Document* pDoc) = 0;\r
-       virtual void                            OnDoc_WillClose(CPDFSDK_Document* pDoc) = 0;\r
-\r
-       virtual void                            OnPage_Open(CPDFSDK_Document* pTarget) = 0;\r
-       virtual void                            OnPage_Close(CPDFSDK_Document* pTarget) = 0;\r
-       virtual void                            OnPage_InView(CPDFSDK_Document* pTarget) = 0;\r
-       virtual void                            OnPage_OutView(CPDFSDK_Document* pTarget) = 0;\r
-       \r
-       virtual void                            OnField_MouseDown(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget) = 0;\r
-       virtual void                            OnField_MouseEnter(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget) = 0;\r
-       virtual void                            OnField_MouseExit(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget) = 0;\r
-       virtual void                            OnField_MouseUp(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget) = 0;\r
-       virtual void                            OnField_Focus(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget, const CFX_WideString& Value) = 0;\r
-       virtual void                            OnField_Blur(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget, const CFX_WideString& Value) = 0;\r
-\r
-       virtual void                            OnField_Calculate(CPDF_FormField* pSource, CPDF_FormField* pTarget, CFX_WideString& Value, FX_BOOL& bRc) = 0;\r
-       virtual void                            OnField_Format(int nCommitKey, CPDF_FormField* pTarget, CFX_WideString& Value, FX_BOOL bWillCommit) = 0;\r
-       virtual void                            OnField_Keystroke(int nCommitKey, CFX_WideString& strChange, const CFX_WideString& strChangeEx,\r
-                                                                       FX_BOOL KeyDown, FX_BOOL bModifier, int &nSelEnd,int &nSelStart, FX_BOOL bShift,\r
-                                                                       CPDF_FormField* pTarget, CFX_WideString& Value, FX_BOOL bWillCommit, \r
-                                                                       FX_BOOL bFieldFull, FX_BOOL &bRc) = 0;\r
-       virtual void                            OnField_Validate(CFX_WideString& strChange, const CFX_WideString& strChangeEx, FX_BOOL bKeyDown,\r
-                                                                       FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget, CFX_WideString& Value, FX_BOOL& bRc) = 0;\r
-\r
-       virtual void                            OnScreen_Focus(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) = 0;\r
-       virtual void                            OnScreen_Blur(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) = 0;\r
-       virtual void                            OnScreen_Open(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) = 0;\r
-       virtual void                            OnScreen_Close(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) = 0;\r
-       virtual void                            OnScreen_MouseDown(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) = 0;\r
-       virtual void                            OnScreen_MouseUp(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) = 0;\r
-       virtual void                            OnScreen_MouseEnter(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) = 0;\r
-       virtual void                            OnScreen_MouseExit(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) = 0;\r
-       virtual void                            OnScreen_InView(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) = 0;\r
-       virtual void                            OnScreen_OutView(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) = 0;\r
-\r
-       virtual void                            OnBookmark_MouseUp(CPDF_Bookmark* pBookMark) = 0;\r
-       virtual void                            OnLink_MouseUp(CPDFSDK_Document* pTarget) = 0;\r
-\r
-       virtual void                            OnMenu_Exec(CPDFSDK_Document* pTarget, const CFX_WideString &) = 0;\r
-       virtual void                            OnBatchExec(CPDFSDK_Document* pTarget) = 0;\r
-       virtual void                            OnConsole_Exec() = 0;\r
-       virtual void                            OnExternal_Exec() = 0;\r
-\r
-       virtual void                            EnableMessageBox(FX_BOOL bEnable) = 0;\r
-};\r
-\r
-class IFXJS_Runtime\r
-{\r
-public:\r
-       virtual IFXJS_Context*          NewContext() = 0;\r
-       virtual void                            ReleaseContext(IFXJS_Context * pContext) = 0;\r
-       virtual IFXJS_Context*          GetCurrentContext() = 0;\r
-\r
-       virtual void                            SetReaderDocument(CPDFSDK_Document* pReaderDoc) = 0;\r
-       virtual CPDFSDK_Document*       GetReaderDocument() = 0;        \r
-\r
-       virtual void                            GetObjectNames(CFX_WideStringArray& array) = 0;\r
-       virtual void                            GetObjectConsts(const CFX_WideString& swObjName, CFX_WideStringArray& array) = 0;\r
-       virtual void                            GetObjectProps(const CFX_WideString& swObjName, CFX_WideStringArray& array) = 0;\r
-       virtual void                            GetObjectMethods(const CFX_WideString& swObjName, CFX_WideStringArray& array) = 0;\r
-\r
-       virtual void                            Exit() = 0;\r
-       virtual void                            Enter() = 0;\r
-       virtual FX_BOOL                         IsEntered() = 0;\r
-};\r
-\r
-class CPDFDoc_Environment;\r
-class CJS_GlobalData;\r
-\r
-class CJS_RuntimeFactory\r
-{\r
-public:\r
-       CJS_RuntimeFactory():m_bInit(FALSE),m_nRef(0),m_pGlobalData(NULL),m_nGlobalDataCount(0) {}\r
-       ~CJS_RuntimeFactory();\r
-       IFXJS_Runtime*                                  NewJSRuntime(CPDFDoc_Environment* pApp);\r
-       void                                                    DeleteJSRuntime(IFXJS_Runtime* pRuntime);\r
-       void                                                    AddRef();\r
-       void                                                    Release();\r
-\r
-       CJS_GlobalData*                                 NewGlobalData(CPDFDoc_Environment* pApp);\r
-       void                                                    ReleaseGlobalData();\r
-private:\r
-       FX_BOOL m_bInit;\r
-       int m_nRef;\r
-       CJS_GlobalData*                                 m_pGlobalData;\r
-       FX_INT32                                                m_nGlobalDataCount;\r
-};\r
-\r
-#endif //_IJAVASCRIPT_H_\r
-\r
+// 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_INCLUDE_JAVASCRIPT_IJAVASCRIPT_H_
+#define FPDFSDK_INCLUDE_JAVASCRIPT_IJAVASCRIPT_H_
+
+#include "../../../core/include/fxcrt/fx_string.h"
+#include "../../../core/include/fxcrt/fx_system.h"
+
+class CPDFDoc_Environment;
+class CPDFSDK_Annot;
+class CPDFSDK_Document;
+class CPDF_Bookmark;
+class CPDF_FormField;
+
+class IJS_Context {
+ public:
+  virtual FX_BOOL RunScript(const CFX_WideString& script,
+                            CFX_WideString& info) = 0;
+
+  virtual void OnApp_Init() = 0;
+
+  virtual void OnDoc_Open(CPDFSDK_Document* pDoc,
+                          const CFX_WideString& strTargetName) = 0;
+  virtual void OnDoc_WillPrint(CPDFSDK_Document* pDoc) = 0;
+  virtual void OnDoc_DidPrint(CPDFSDK_Document* pDoc) = 0;
+  virtual void OnDoc_WillSave(CPDFSDK_Document* pDoc) = 0;
+  virtual void OnDoc_DidSave(CPDFSDK_Document* pDoc) = 0;
+  virtual void OnDoc_WillClose(CPDFSDK_Document* pDoc) = 0;
+
+  virtual void OnPage_Open(CPDFSDK_Document* pTarget) = 0;
+  virtual void OnPage_Close(CPDFSDK_Document* pTarget) = 0;
+  virtual void OnPage_InView(CPDFSDK_Document* pTarget) = 0;
+  virtual void OnPage_OutView(CPDFSDK_Document* pTarget) = 0;
+
+  virtual void OnField_MouseDown(FX_BOOL bModifier,
+                                 FX_BOOL bShift,
+                                 CPDF_FormField* pTarget) = 0;
+  virtual void OnField_MouseEnter(FX_BOOL bModifier,
+                                  FX_BOOL bShift,
+                                  CPDF_FormField* pTarget) = 0;
+  virtual void OnField_MouseExit(FX_BOOL bModifier,
+                                 FX_BOOL bShift,
+                                 CPDF_FormField* pTarget) = 0;
+  virtual void OnField_MouseUp(FX_BOOL bModifier,
+                               FX_BOOL bShift,
+                               CPDF_FormField* pTarget) = 0;
+  virtual void OnField_Focus(FX_BOOL bModifier,
+                             FX_BOOL bShift,
+                             CPDF_FormField* pTarget,
+                             const CFX_WideString& Value) = 0;
+  virtual void OnField_Blur(FX_BOOL bModifier,
+                            FX_BOOL bShift,
+                            CPDF_FormField* pTarget,
+                            const CFX_WideString& Value) = 0;
+
+  virtual void OnField_Calculate(CPDF_FormField* pSource,
+                                 CPDF_FormField* pTarget,
+                                 CFX_WideString& Value,
+                                 FX_BOOL& bRc) = 0;
+  virtual void OnField_Format(CPDF_FormField* pTarget,
+                              CFX_WideString& Value,
+                              FX_BOOL bWillCommit) = 0;
+  virtual void OnField_Keystroke(CFX_WideString& strChange,
+                                 const CFX_WideString& strChangeEx,
+                                 FX_BOOL KeyDown,
+                                 FX_BOOL bModifier,
+                                 int& nSelEnd,
+                                 int& nSelStart,
+                                 FX_BOOL bShift,
+                                 CPDF_FormField* pTarget,
+                                 CFX_WideString& Value,
+                                 FX_BOOL bWillCommit,
+                                 FX_BOOL bFieldFull,
+                                 FX_BOOL& bRc) = 0;
+  virtual void OnField_Validate(CFX_WideString& strChange,
+                                const CFX_WideString& strChangeEx,
+                                FX_BOOL bKeyDown,
+                                FX_BOOL bModifier,
+                                FX_BOOL bShift,
+                                CPDF_FormField* pTarget,
+                                CFX_WideString& Value,
+                                FX_BOOL& bRc) = 0;
+
+  virtual void OnScreen_Focus(FX_BOOL bModifier,
+                              FX_BOOL bShift,
+                              CPDFSDK_Annot* pScreen) = 0;
+  virtual void OnScreen_Blur(FX_BOOL bModifier,
+                             FX_BOOL bShift,
+                             CPDFSDK_Annot* pScreen) = 0;
+  virtual void OnScreen_Open(FX_BOOL bModifier,
+                             FX_BOOL bShift,
+                             CPDFSDK_Annot* pScreen) = 0;
+  virtual void OnScreen_Close(FX_BOOL bModifier,
+                              FX_BOOL bShift,
+                              CPDFSDK_Annot* pScreen) = 0;
+  virtual void OnScreen_MouseDown(FX_BOOL bModifier,
+                                  FX_BOOL bShift,
+                                  CPDFSDK_Annot* pScreen) = 0;
+  virtual void OnScreen_MouseUp(FX_BOOL bModifier,
+                                FX_BOOL bShift,
+                                CPDFSDK_Annot* pScreen) = 0;
+  virtual void OnScreen_MouseEnter(FX_BOOL bModifier,
+                                   FX_BOOL bShift,
+                                   CPDFSDK_Annot* pScreen) = 0;
+  virtual void OnScreen_MouseExit(FX_BOOL bModifier,
+                                  FX_BOOL bShift,
+                                  CPDFSDK_Annot* pScreen) = 0;
+  virtual void OnScreen_InView(FX_BOOL bModifier,
+                               FX_BOOL bShift,
+                               CPDFSDK_Annot* pScreen) = 0;
+  virtual void OnScreen_OutView(FX_BOOL bModifier,
+                                FX_BOOL bShift,
+                                CPDFSDK_Annot* pScreen) = 0;
+
+  virtual void OnBookmark_MouseUp(CPDF_Bookmark* pBookMark) = 0;
+  virtual void OnLink_MouseUp(CPDFSDK_Document* pTarget) = 0;
+
+  virtual void OnMenu_Exec(CPDFSDK_Document* pTarget,
+                           const CFX_WideString&) = 0;
+  virtual void OnBatchExec(CPDFSDK_Document* pTarget) = 0;
+  virtual void OnConsole_Exec() = 0;
+  virtual void OnExternal_Exec() = 0;
+
+  virtual void EnableMessageBox(FX_BOOL bEnable) = 0;
+
+ protected:
+  virtual ~IJS_Context() {}
+};
+
+class IJS_Runtime {
+ public:
+  static void Initialize(unsigned int slot, void* isolate);
+  static IJS_Runtime* Create(CPDFDoc_Environment* pEnv);
+  virtual ~IJS_Runtime() {}
+
+  virtual IJS_Context* NewContext() = 0;
+  virtual void ReleaseContext(IJS_Context* pContext) = 0;
+  virtual IJS_Context* GetCurrentContext() = 0;
+  virtual void SetReaderDocument(CPDFSDK_Document* pReaderDoc) = 0;
+  virtual CPDFSDK_Document* GetReaderDocument() = 0;
+
+ protected:
+  IJS_Runtime() {}
+};
+
+#endif  // FPDFSDK_INCLUDE_JAVASCRIPT_IJAVASCRIPT_H_