1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Copyright 2014 PDFium Authors. All rights reserved. 2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Use of this source code is governed by a BSD-style license that can be 3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// found in the LICENSE file. 4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/javascript/JavaScript.h" 8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/javascript/IJavaScript.h" 9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov//#include "../../include/javascript/JS_ResMgr.h" 10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/javascript/JS_Context.h" 11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/javascript/JS_EventHandler.h" 12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/javascript/JS_Runtime.h" 13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/javascript/resource.h" 14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* -------------------------- CJS_Context -------------------------- */ 16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 17ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCJS_Context::CJS_Context(CJS_Runtime* pRuntime) : 18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pRuntime(pRuntime), 19ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_bBusy(FALSE), 20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_bMsgBoxEnable(TRUE) 21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler = new CJS_EventHandler(this); 23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 25ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCJS_Context::~CJS_Context(void) 26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (m_pEventHandler) 28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov delete m_pEventHandler; 30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler = NULL; 31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 34ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCPDFSDK_Document* CJS_Context::GetReaderDocument() 35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pRuntime != NULL); 37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return m_pRuntime->GetReaderDocument(); 39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 41ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCPDFDoc_Environment* CJS_Context::GetReaderApp() 42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 43ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pRuntime != NULL); 44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 45ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return m_pRuntime->GetReaderApp(); 46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 48ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFX_BOOL CJS_Context::DoJob(int nMode, const CFX_WideString& script, CFX_WideString& info) 49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (m_bBusy) 51ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov info = JSGetStringFromID(this, IDS_STRING_JSBUSY); 53ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return FALSE; 54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_bBusy = TRUE; 57ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 58ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pRuntime != NULL); 59ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 60ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler->IsValid()); 61ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 62ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (!m_pRuntime->AddEventToLoop(m_pEventHandler->TargetName(), m_pEventHandler->EventType())) 63ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 64ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov info = JSGetStringFromID(this, IDS_STRING_JSEVENT); 65ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return FALSE; 66ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 67ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 68ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FXJSErr error ={NULL,NULL, 0}; 69ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov int nRet = 0; 70ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 71ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov try 72ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 73ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (script.GetLength() > 0) 74ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 75ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (nMode == 0) 76ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 77ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov nRet = JS_Execute(*m_pRuntime, this, script, script.GetLength(), &error); 78ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 79ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov else 80ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 81ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov nRet = JS_Parse(*m_pRuntime, this, script, script.GetLength(), &error); 82ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 83ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 84ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 85ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (nRet < 0) 86ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 87ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CFX_WideString sLine; 88ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov sLine.Format((FX_LPCWSTR)L"[ Line: %05d { %s } ] : %s",error.linnum-1,error.srcline,error.message); 89ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 90ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// TRACE(L"/* -------------- JS Error -------------- */\n"); 91ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// TRACE(sLine); 92ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// TRACE(L"\n"); 93ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov //CFX_ByteString sTemp = CFX_ByteString::FromUnicode(error.message); 94ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov info += sLine; 95ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 96ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov else 97ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 98ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov info = JSGetStringFromID(this, IDS_STRING_RUN); 99ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 100ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 101ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 102ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov catch (...) 103ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 104ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov info = JSGetStringFromID(this, IDS_STRING_UNHANDLED); 105ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov nRet = -1; 106ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 107ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 108ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pRuntime->RemoveEventInLoop(m_pEventHandler->TargetName(), m_pEventHandler->EventType()); 109ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 110ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->Destroy(); 111ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_bBusy = FALSE; 112ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 113ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return nRet >= 0; 114ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 115ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 116ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFX_BOOL CJS_Context::RunScript(const CFX_WideString& script, CFX_WideString& info) 117ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 118ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov v8::Isolate::Scope isolate_scope(m_pRuntime->GetIsolate()); 119ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov v8::HandleScope handle_scope(m_pRuntime->GetIsolate()); 120ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov v8::Local<v8::Context> context = m_pRuntime->NewJSContext(); 121ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov v8::Context::Scope context_scope(context); 122ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 123ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return DoJob(0, script, info); 124ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 125ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 126ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFX_BOOL CJS_Context::Compile(const CFX_WideString& script, CFX_WideString& info) 127ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 128ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov v8::Isolate::Scope isolate_scope(m_pRuntime->GetIsolate()); 129ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov v8::HandleScope handle_scope(m_pRuntime->GetIsolate()); 130ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov v8::Local<v8::Context> context = m_pRuntime->NewJSContext(); 131ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov v8::Context::Scope context_scope(context); 132ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 133ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return DoJob(1, script, info); 134ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 135ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 136ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnApp_Init() 137ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 138ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 139ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnApp_Init(); 140ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 141ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 142ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnDoc_Open(CPDFSDK_Document* pDoc, const CFX_WideString &strTargetName) 143ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 144ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 145ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnDoc_Open(pDoc,strTargetName); 146ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 147ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 148ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnDoc_WillPrint(CPDFSDK_Document* pDoc) 149ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 150ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 151ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnDoc_WillPrint(pDoc); 152ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 153ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 154ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnDoc_DidPrint(CPDFSDK_Document* pDoc) 155ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 156ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 157ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnDoc_DidPrint(pDoc); 158ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 159ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 160ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnDoc_WillSave(CPDFSDK_Document* pDoc) 161ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 162ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 163ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnDoc_WillSave(pDoc); 164ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 165ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 166ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnDoc_DidSave(CPDFSDK_Document* pDoc) 167ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 168ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 169ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnDoc_DidSave(pDoc); 170ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 171ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 172ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnDoc_WillClose(CPDFSDK_Document* pDoc) 173ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 174ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 175ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnDoc_WillClose(pDoc); 176ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 177ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 178ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnPage_Open(CPDFSDK_Document* pTarget) 179ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 180ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 181ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnPage_Open(pTarget); 182ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 183ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 184ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnPage_Close(CPDFSDK_Document* pTarget) 185ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 186ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 187ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnPage_Close(pTarget); 188ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 189ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 190ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnPage_InView(CPDFSDK_Document* pTarget) 191ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 192ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 193ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnPage_InView(pTarget); 194ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 195ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 196ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnPage_OutView(CPDFSDK_Document* pTarget) 197ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 198ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 199ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnPage_OutView(pTarget); 200ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 201ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 202ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnField_MouseDown(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField *pTarget) 203ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 204ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 205ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnField_MouseDown(bModifier, bShift, pTarget); 206ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 207ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 208ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnField_MouseEnter(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField *pTarget) 209ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 210ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 211ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnField_MouseEnter(bModifier, bShift, pTarget); 212ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 213ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 214ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnField_MouseExit(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField *pTarget) 215ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 216ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 217ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnField_MouseExit(bModifier, bShift, pTarget); 218ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 219ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 220ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnField_MouseUp(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField *pTarget) 221ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 222ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 223ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnField_MouseUp(bModifier, bShift, pTarget); 224ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 225ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 226ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnField_Focus(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget, const CFX_WideString& Value) 227ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 228ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 229ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnField_Focus(bModifier, bShift, pTarget, Value); 230ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 231ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 232ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnField_Blur(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget, const CFX_WideString& Value) 233ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 234ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 235ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnField_Blur(bModifier, bShift, pTarget, Value); 236ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 237ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 238ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnField_Calculate(CPDF_FormField* pSource, CPDF_FormField* pTarget, CFX_WideString& Value, FX_BOOL& bRc) 239ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 240ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 241ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnField_Calculate(pSource, pTarget, Value, bRc); 242ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 243ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 244ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnField_Format(int nCommitKey, CPDF_FormField* pTarget, CFX_WideString& Value, FX_BOOL bWillCommit) 245ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 246ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 247ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnField_Format(nCommitKey, pTarget, Value, bWillCommit); 248ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 249ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 250ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 251ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnField_Keystroke(int nCommitKey, CFX_WideString& strChange, const CFX_WideString& strChangeEx, 252ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FX_BOOL bKeyDown, FX_BOOL bModifier, int &nSelEnd,int &nSelStart, 253ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FX_BOOL bShift, CPDF_FormField* pTarget, CFX_WideString& Value, 254ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FX_BOOL bWillCommit, FX_BOOL bFieldFull, FX_BOOL& bRc) 255ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 256ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 257ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnField_Keystroke(nCommitKey, strChange, strChangeEx, bKeyDown, 258ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov bModifier, nSelEnd, nSelStart, bShift, pTarget, Value, bWillCommit, bFieldFull, bRc); 259ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 260ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 261ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnField_Validate(CFX_WideString& strChange,const CFX_WideString& strChangeEx, 262ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FX_BOOL bKeyDown, FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget, 263ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CFX_WideString& Value, FX_BOOL& bRc) 264ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 265ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 266ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnField_Validate(strChange, strChangeEx, bKeyDown, bModifier, bShift, pTarget, Value, bRc); 267ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 268ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 269ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnScreen_Focus(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) 270ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 271ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 272ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnScreen_Focus(bModifier, bShift, pScreen); 273ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 274ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 275ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnScreen_Blur(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) 276ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 277ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 278ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnScreen_Blur(bModifier, bShift, pScreen); 279ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 280ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 281ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnScreen_Open(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) 282ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 283ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 284ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnScreen_Open(bModifier, bShift, pScreen); 285ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 286ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 287ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnScreen_Close(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) 288ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 289ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 290ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnScreen_Close(bModifier, bShift, pScreen); 291ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 292ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 293ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnScreen_MouseDown(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) 294ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 295ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 296ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnScreen_MouseDown(bModifier, bShift, pScreen); 297ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 298ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 299ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnScreen_MouseUp(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) 300ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 301ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 302ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnScreen_MouseUp(bModifier, bShift, pScreen); 303ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 304ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 305ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnScreen_MouseEnter(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) 306ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 307ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 308ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnScreen_MouseEnter(bModifier, bShift, pScreen); 309ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 310ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 311ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnScreen_MouseExit(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) 312ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 313ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 314ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnScreen_MouseExit(bModifier, bShift, pScreen); 315ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 316ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 317ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnScreen_InView(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) 318ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 319ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 320ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnScreen_InView(bModifier, bShift, pScreen); 321ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 322ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 323ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnScreen_OutView(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) 324ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 325ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 326ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnScreen_OutView(bModifier, bShift, pScreen); 327ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 328ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 329ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnBookmark_MouseUp(CPDF_Bookmark* pBookMark) 330ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 331ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 332ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnBookmark_MouseUp(pBookMark); 333ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 334ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 335ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnLink_MouseUp(CPDFSDK_Document* pTarget) 336ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 337ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 338ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnLink_MouseUp(pTarget); 339ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 340ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 341ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnConsole_Exec() 342ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 343ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 344ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnConsole_Exec(); 345ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 346ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 347ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnExternal_Exec() 348ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 349ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 350ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnExternal_Exec(); 351ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 352ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 353ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnBatchExec(CPDFSDK_Document* pTarget) 354ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 355ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 356ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnBatchExec(pTarget); 357ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 358ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 359ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CJS_Context::OnMenu_Exec(CPDFSDK_Document* pTarget,const CFX_WideString& strTargetName) 360ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 361ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ASSERT(m_pEventHandler != NULL); 362ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pEventHandler->OnMenu_Exec(pTarget, strTargetName); 363ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 364ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 365