From 5110c4743751145c4ae1934cd1d83bc6c55bb43f Mon Sep 17 00:00:00 2001 From: John Abd-El-Malek Date: Sat, 17 May 2014 22:33:34 -0700 Subject: Initial commit. --- fpdfsdk/src/javascript/JS_EventHandler.cpp | 676 +++++++++++++++++++++++++++++ 1 file changed, 676 insertions(+) create mode 100644 fpdfsdk/src/javascript/JS_EventHandler.cpp (limited to 'fpdfsdk/src/javascript/JS_EventHandler.cpp') diff --git a/fpdfsdk/src/javascript/JS_EventHandler.cpp b/fpdfsdk/src/javascript/JS_EventHandler.cpp new file mode 100644 index 0000000000..ce69e6b9d2 --- /dev/null +++ b/fpdfsdk/src/javascript/JS_EventHandler.cpp @@ -0,0 +1,676 @@ +// 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 + +#include "../../include/javascript/JavaScript.h" +#include "../../include/javascript/IJavaScript.h" +#include "../../include/javascript/JS_EventHandler.h" +//#include "../../include/javascript/JS_ResMgr.h" +#include "../../include/javascript/JS_Context.h" +#include "../../include/javascript/JS_Runtime.h" +#include "../../include/javascript/JS_Define.h" +#include "../../include/javascript/JS_Object.h" +#include "../../include/javascript/JS_Value.h" +#include "../../include/javascript/Document.h" +#include "../../include/javascript/Field.h" + +/* ---------------------------- CJS_EventHandler ---------------------------- */ + +CJS_EventHandler::CJS_EventHandler(CJS_Context * pContext) : + m_pJSContext(pContext), + m_eEventType(JET_UNKNOWN), + m_bValid(FALSE), + m_pWideStrChange(NULL), + m_nCommitKey(-1), + m_bKeyDown(FALSE), + m_bModifier(FALSE), + m_bShift(FALSE), + m_pISelEnd(NULL), + m_nSelEndDu(0), + m_pISelStart(NULL), + m_nSelStartDu(0), + m_bWillCommit(FALSE), + m_pValue(NULL), + m_bFieldFull(FALSE), + m_pbRc(NULL), + m_bRcDu(FALSE), + m_pSourceDoc(NULL), + m_pTargetBookMark(NULL), + m_pTargetDoc(NULL), + m_pTargetAnnot(NULL) +{ +} + +CJS_EventHandler::~CJS_EventHandler() +{ +} + +void CJS_EventHandler::OnApp_Init() +{ + Initial(JET_APP_INIT); +} + +void CJS_EventHandler::OnDoc_Open(CPDFSDK_Document* pDoc, const CFX_WideString& strTargetName) +{ + Initial(JET_DOC_OPEN); + + m_pTargetDoc = pDoc; + m_strTargetName = strTargetName; +} + +void CJS_EventHandler::OnDoc_WillPrint(CPDFSDK_Document* pDoc) +{ + Initial(JET_DOC_WILLPRINT); + + m_pTargetDoc = pDoc; +} + +void CJS_EventHandler::OnDoc_DidPrint(CPDFSDK_Document* pDoc) +{ + Initial(JET_DOC_DIDPRINT); + + m_pTargetDoc = pDoc; +} + +void CJS_EventHandler::OnDoc_WillSave(CPDFSDK_Document* pDoc) +{ + Initial(JET_DOC_WILLSAVE); + m_pTargetDoc = pDoc; +} + +void CJS_EventHandler::OnDoc_DidSave(CPDFSDK_Document* pDoc) +{ + Initial(JET_DOC_DIDSAVE); + + m_pTargetDoc = pDoc; +} + +void CJS_EventHandler::OnDoc_WillClose(CPDFSDK_Document* pDoc) +{ + Initial(JET_DOC_WILLCLOSE); + + m_pTargetDoc = pDoc; +} + +void CJS_EventHandler::OnPage_Open(CPDFSDK_Document* pDoc) +{ + Initial(JET_PAGE_OPEN); + + m_pTargetDoc = pDoc; +} + +void CJS_EventHandler::OnPage_Close(CPDFSDK_Document* pDoc) +{ + Initial(JET_PAGE_CLOSE); + + m_pTargetDoc = pDoc; +} + +void CJS_EventHandler::OnPage_InView(CPDFSDK_Document* pDoc) +{ + Initial(JET_PAGE_INVIEW); + + m_pTargetDoc = pDoc; +} + +void CJS_EventHandler::OnPage_OutView(CPDFSDK_Document* pDoc) +{ + Initial(JET_PAGE_OUTVIEW); + + m_pTargetDoc = pDoc; +} + +void CJS_EventHandler::OnField_MouseEnter(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget) +{ + Initial(JET_FIELD_MOUSEENTER); + + m_bModifier = bModifier; + m_bShift = bShift; + + ASSERT(pTarget != NULL); + m_strTargetName = pTarget->GetFullName(); +} + +void CJS_EventHandler::OnField_MouseExit(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget) +{ + Initial(JET_FIELD_MOUSEEXIT); + + m_bModifier = bModifier; + m_bShift = bShift; + ASSERT(pTarget != NULL); + m_strTargetName = pTarget->GetFullName(); +} + +void CJS_EventHandler::OnField_MouseDown(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget) +{ + Initial(JET_FIELD_MOUSEDOWN); + m_eEventType = JET_FIELD_MOUSEDOWN; + + m_bModifier = bModifier; + m_bShift = bShift; + ASSERT(pTarget != NULL); + m_strTargetName = pTarget->GetFullName(); +} + +void CJS_EventHandler::OnField_MouseUp(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget) +{ + Initial(JET_FIELD_MOUSEUP); + + m_bModifier = bModifier; + m_bShift = bShift; + ASSERT(pTarget != NULL); + m_strTargetName = pTarget->GetFullName(); +} + +void CJS_EventHandler::OnField_Focus(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget, + const CFX_WideString& Value) +{ + Initial(JET_FIELD_FOCUS); + + m_bModifier = bModifier; + m_bShift = bShift; + ASSERT(pTarget != NULL); + m_strTargetName = pTarget->GetFullName(); + m_pValue = (CFX_WideString*)&Value; +} + +void CJS_EventHandler::OnField_Blur(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget, + const CFX_WideString& Value) +{ + Initial(JET_FIELD_BLUR); + + m_bModifier = bModifier; + m_bShift = bShift; + ASSERT(pTarget != NULL); + m_strTargetName = pTarget->GetFullName(); + m_pValue = (CFX_WideString*)&Value; +} + +void CJS_EventHandler::OnField_Keystroke(int nCommitKey, 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) +{ + Initial(JET_FIELD_KEYSTROKE); + + m_nCommitKey = nCommitKey; + m_pWideStrChange = &strChange; + m_WideStrChangeEx = strChangeEx; + m_bKeyDown = KeyDown; + m_bModifier = bModifier; + m_pISelEnd = &nSelEnd; + m_pISelStart = &nSelStart; + m_bShift = bShift; + ASSERT(pTarget != NULL); + m_strTargetName = pTarget->GetFullName(); + m_pValue = &Value; + m_bWillCommit = bWillCommit; + m_pbRc = &bRc; + m_bFieldFull = bFieldFull; +} + +void CJS_EventHandler::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) +{ + Initial(JET_FIELD_VALIDATE); + + m_pWideStrChange = &strChange; + m_WideStrChangeEx = strChangeEx; + m_bKeyDown = bKeyDown; + m_bModifier = bModifier; + m_bShift = bShift; + ASSERT(pTarget != NULL); + m_strTargetName = pTarget->GetFullName(); + m_pValue = &Value; + m_pbRc = &bRc; +} + +void CJS_EventHandler::OnField_Calculate(CPDF_FormField* pSource, CPDF_FormField* pTarget, + CFX_WideString& Value, FX_BOOL& bRc) +{ + Initial(JET_FIELD_CALCULATE); + + if (pSource) + m_strSourceName = pSource->GetFullName(); + ASSERT(pTarget != NULL); + m_strTargetName = pTarget->GetFullName(); + m_pValue = &Value; + m_pbRc = &bRc; +} + +void CJS_EventHandler::OnField_Format(int nCommitKey, CPDF_FormField* pTarget, + CFX_WideString& Value, FX_BOOL bWillCommit) +{ + Initial(JET_FIELD_FORMAT); + + m_nCommitKey = nCommitKey; + ASSERT(pTarget != NULL); + m_strTargetName = pTarget->GetFullName(); + m_pValue = &Value; + m_bWillCommit = bWillCommit; +} + +void CJS_EventHandler::OnScreen_Focus(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) +{ + Initial(JET_SCREEN_FOCUS); + + m_bModifier = bModifier; + m_bShift = bShift; + m_pTargetAnnot = pScreen; +} + +void CJS_EventHandler::OnScreen_Blur(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) +{ + Initial(JET_SCREEN_BLUR); + + m_bModifier = bModifier; + m_bShift = bShift; + m_pTargetAnnot = pScreen; +} + +void CJS_EventHandler::OnScreen_Open(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) +{ + Initial(JET_SCREEN_OPEN); + + m_bModifier = bModifier; + m_bShift = bShift; + m_pTargetAnnot = pScreen; +} + +void CJS_EventHandler::OnScreen_Close(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) +{ + Initial(JET_SCREEN_CLOSE); + + m_bModifier = bModifier; + m_bShift = bShift; + m_pTargetAnnot = pScreen; +} + +void CJS_EventHandler::OnScreen_MouseDown(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) +{ + Initial(JET_SCREEN_MOUSEDOWN); + + m_bModifier = bModifier; + m_bShift = bShift; + m_pTargetAnnot = pScreen; +} + +void CJS_EventHandler::OnScreen_MouseUp(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) +{ + Initial(JET_SCREEN_MOUSEUP); + + m_bModifier = bModifier; + m_bShift = bShift; + m_pTargetAnnot = pScreen; +} + +void CJS_EventHandler::OnScreen_MouseEnter(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) +{ + Initial(JET_SCREEN_MOUSEENTER); + + m_bModifier = bModifier; + m_bShift = bShift; + m_pTargetAnnot = pScreen; +} + +void CJS_EventHandler::OnScreen_MouseExit(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) +{ + Initial(JET_SCREEN_MOUSEEXIT); + + m_bModifier = bModifier; + m_bShift = bShift; + m_pTargetAnnot = pScreen; +} + +void CJS_EventHandler::OnScreen_InView(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) +{ + Initial(JET_SCREEN_INVIEW); + + m_bModifier = bModifier; + m_bShift = bShift; + m_pTargetAnnot = pScreen; +} + +void CJS_EventHandler::OnScreen_OutView(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen) +{ + Initial(JET_SCREEN_OUTVIEW); + + m_bModifier = bModifier; + m_bShift = bShift; + m_pTargetAnnot = pScreen; +} + +void CJS_EventHandler::OnLink_MouseUp(CPDFSDK_Document* pTarget) +{ + Initial(JET_LINK_MOUSEUP); + + m_pTargetDoc = pTarget; +} + +void CJS_EventHandler::OnBookmark_MouseUp(CPDF_Bookmark* pBookMark) +{ + Initial(JET_BOOKMARK_MOUSEUP); + + m_pTargetBookMark = pBookMark; +} + +void CJS_EventHandler::OnMenu_Exec(CPDFSDK_Document* pTarget, const CFX_WideString& strTargetName) +{ + Initial(JET_MENU_EXEC); + + m_pTargetDoc = pTarget; + m_strTargetName = strTargetName; +} + +void CJS_EventHandler::OnExternal_Exec() +{ + Initial(JET_EXTERNAL_EXEC); +} + +void CJS_EventHandler::OnBatchExec(CPDFSDK_Document* pTarget) +{ + Initial(JET_BATCH_EXEC); + + m_pTargetDoc = pTarget; +} + +void CJS_EventHandler::OnConsole_Exec() +{ + Initial(JET_CONSOLE_EXEC); +} + + +void CJS_EventHandler::Initial(JS_EVENT_T type) +{ + m_eEventType = type; + + m_strTargetName = L""; + m_strSourceName = L""; + m_pWideStrChange = NULL; + m_WideStrChangeDu = L""; + m_WideStrChangeEx = L""; + m_nCommitKey = -1; + m_bKeyDown = FALSE; + m_bModifier = FALSE; + m_bShift = FALSE; + m_pISelEnd = NULL; + m_nSelEndDu = 0; + m_pISelStart = NULL; + m_nSelStartDu = 0; + m_bWillCommit = FALSE; + m_pValue = NULL; + m_bFieldFull = FALSE; + m_pbRc = NULL; + m_bRcDu = FALSE; + + m_pSourceDoc = NULL; + m_pTargetBookMark = NULL; + m_pTargetDoc = NULL; + m_pTargetAnnot = NULL; + + m_bValid = TRUE; +} + +void CJS_EventHandler::Destroy() +{ + m_bValid = FALSE; +} + +FX_BOOL CJS_EventHandler::IsValid() +{ + return m_bValid; +} + +CFX_WideString & CJS_EventHandler::Change() +{ + if (m_pWideStrChange != NULL) + return *m_pWideStrChange; + else + { + return m_WideStrChangeDu; + } +} + +CFX_WideString CJS_EventHandler::ChangeEx() +{ + return m_WideStrChangeEx; +} + +int CJS_EventHandler::CommitKey() +{ + return m_nCommitKey; +} + +FX_BOOL CJS_EventHandler::FieldFull() +{ + return m_bFieldFull; +} + +FX_BOOL CJS_EventHandler::KeyDown() +{ + return m_bKeyDown; +} + +FX_BOOL CJS_EventHandler::Modifier() +{ + return m_bModifier; +} + +FX_LPCWSTR CJS_EventHandler::Name() +{ + switch (m_eEventType) + { + case JET_APP_INIT: return (FX_LPCWSTR)L"Init"; + case JET_BATCH_EXEC: return (FX_LPCWSTR)L"Exec"; + case JET_BOOKMARK_MOUSEUP: return (FX_LPCWSTR)L"Mouse Up"; + case JET_CONSOLE_EXEC: return (FX_LPCWSTR)L"Exec"; + case JET_DOC_DIDPRINT: return (FX_LPCWSTR)L"DidPrint"; + case JET_DOC_DIDSAVE: return (FX_LPCWSTR)L"DidSave"; + case JET_DOC_OPEN: return (FX_LPCWSTR)L"Open"; + case JET_DOC_WILLCLOSE: return (FX_LPCWSTR)L"WillClose"; + case JET_DOC_WILLPRINT: return (FX_LPCWSTR)L"WillPrint"; + case JET_DOC_WILLSAVE: return (FX_LPCWSTR)L"WillSave"; + case JET_EXTERNAL_EXEC: return (FX_LPCWSTR)L"Exec"; + case JET_FIELD_FOCUS: + case JET_SCREEN_FOCUS: return (FX_LPCWSTR)L"Focus"; + case JET_FIELD_BLUR: + case JET_SCREEN_BLUR: return (FX_LPCWSTR)L"Blur"; + case JET_FIELD_MOUSEDOWN: + case JET_SCREEN_MOUSEDOWN: return (FX_LPCWSTR)L"Mouse Down"; + case JET_FIELD_MOUSEUP: + case JET_SCREEN_MOUSEUP: return (FX_LPCWSTR)L"Mouse Up"; + case JET_FIELD_MOUSEENTER: + case JET_SCREEN_MOUSEENTER: return (FX_LPCWSTR)L"Mouse Enter"; + case JET_FIELD_MOUSEEXIT: + case JET_SCREEN_MOUSEEXIT: return (FX_LPCWSTR)L"Mouse Exit"; + case JET_FIELD_CALCULATE: return (FX_LPCWSTR)L"Calculate"; + case JET_FIELD_FORMAT: return (FX_LPCWSTR)L"Format"; + case JET_FIELD_KEYSTROKE: return (FX_LPCWSTR)L"Keystroke"; + case JET_FIELD_VALIDATE: return (FX_LPCWSTR)L"Validate"; + case JET_LINK_MOUSEUP: return (FX_LPCWSTR)L"Mouse Up"; + case JET_MENU_EXEC: return (FX_LPCWSTR)L"Exec"; + case JET_PAGE_OPEN: + case JET_SCREEN_OPEN: return (FX_LPCWSTR)L"Open"; + case JET_PAGE_CLOSE: + case JET_SCREEN_CLOSE: return (FX_LPCWSTR)L"Close"; + case JET_SCREEN_INVIEW: + case JET_PAGE_INVIEW: return (FX_LPCWSTR)L"InView"; + case JET_PAGE_OUTVIEW: + case JET_SCREEN_OUTVIEW: return (FX_LPCWSTR)L"OutView"; + default: + return (FX_LPCWSTR)L""; + } + + return (FX_LPCWSTR)L""; +} + +FX_LPCWSTR CJS_EventHandler::Type() +{ + switch (m_eEventType) + { + case JET_APP_INIT: return (FX_LPCWSTR)L"App"; + case JET_BATCH_EXEC: return (FX_LPCWSTR)L"Batch"; + case JET_BOOKMARK_MOUSEUP: return (FX_LPCWSTR)L"BookMark"; + case JET_CONSOLE_EXEC: return (FX_LPCWSTR)L"Console"; + case JET_DOC_DIDPRINT: + case JET_DOC_DIDSAVE: + case JET_DOC_OPEN: + case JET_DOC_WILLCLOSE: + case JET_DOC_WILLPRINT: + case JET_DOC_WILLSAVE: return (FX_LPCWSTR)L"Doc"; + case JET_EXTERNAL_EXEC: return (FX_LPCWSTR)L"External"; + case JET_FIELD_BLUR: + case JET_FIELD_FOCUS: + case JET_FIELD_MOUSEDOWN: + case JET_FIELD_MOUSEENTER: + case JET_FIELD_MOUSEEXIT: + case JET_FIELD_MOUSEUP: + case JET_FIELD_CALCULATE: + case JET_FIELD_FORMAT: + case JET_FIELD_KEYSTROKE: + case JET_FIELD_VALIDATE: return (FX_LPCWSTR)L"Field"; + case JET_SCREEN_FOCUS: + case JET_SCREEN_BLUR: + case JET_SCREEN_OPEN: + case JET_SCREEN_CLOSE: + case JET_SCREEN_MOUSEDOWN: + case JET_SCREEN_MOUSEUP: + case JET_SCREEN_MOUSEENTER: + case JET_SCREEN_MOUSEEXIT: + case JET_SCREEN_INVIEW: + case JET_SCREEN_OUTVIEW: return (FX_LPCWSTR)L"Screen"; + case JET_LINK_MOUSEUP: return (FX_LPCWSTR)L"Link"; + case JET_MENU_EXEC: return (FX_LPCWSTR)L"Menu"; + case JET_PAGE_OPEN: + case JET_PAGE_CLOSE: + case JET_PAGE_INVIEW: + case JET_PAGE_OUTVIEW:return (FX_LPCWSTR)L"Page"; + default: + return (FX_LPCWSTR)L""; + } + + return (FX_LPCWSTR)L""; +} + +FX_BOOL& CJS_EventHandler::Rc() +{ + if (m_pbRc != NULL) + return *m_pbRc; + else + { + return m_bRcDu; + } +} + +int & CJS_EventHandler::SelEnd() +{ + if (m_pISelEnd != NULL) + { + return *m_pISelEnd; + } + else + { + return m_nSelEndDu; + } +} + +int & CJS_EventHandler::SelStart() +{ + if (m_pISelStart != NULL) + return * m_pISelStart; + else + { + return m_nSelStartDu; + } +} + +FX_BOOL CJS_EventHandler::Shift() +{ + return m_bShift; +} + +Field* CJS_EventHandler::Source() +{ + ASSERT(m_pJSContext != NULL); + + CJS_Runtime* pRuntime = m_pJSContext->GetJSRuntime(); + + JSFXObject pDocObj = JS_NewFxDynamicObj(*pRuntime, m_pJSContext, JS_GetObjDefnID(*pRuntime, L"Document")); + ASSERT(pDocObj.IsEmpty() == FALSE); + JSFXObject pFieldObj = JS_NewFxDynamicObj(*pRuntime, m_pJSContext, JS_GetObjDefnID(*pRuntime, L"Field")); + ASSERT(pFieldObj.IsEmpty() == FALSE); + + CJS_Document* pJSDocument = (CJS_Document*)JS_GetPrivate(pDocObj); + ASSERT(pJSDocument != NULL); + Document* pDocument = (Document*)pJSDocument->GetEmbedObject(); + ASSERT(pDocument != NULL); + if (m_pTargetDoc != NULL) + pDocument->AttachDoc(m_pTargetDoc); + else + pDocument->AttachDoc(m_pJSContext->GetReaderDocument()); + + //if (m_pSourceField == NULL) + // return NULL; + //CRAO_Widget *pWidget = IBCL_Widget::GetWidget(m_pSourceField); + //CPDF_FormField* pFormField = pWidget->GetFormField(); + //ASSERT(pFormField); + //CFX_WideString csFieldName = pFormField->GetFullName(); + CJS_Field * pJSField = (CJS_Field*)JS_GetPrivate(pFieldObj); + ASSERT(pJSField != NULL); + Field * pField = (Field *)pJSField->GetEmbedObject(); + ASSERT(pField != NULL); + pField->AttachField(pDocument, m_strSourceName); + return pField; +} + +Field* CJS_EventHandler::Target_Field() +{ + ASSERT(m_pJSContext != NULL); + + CJS_Runtime* pRuntime = m_pJSContext->GetJSRuntime(); + + JSFXObject pDocObj = JS_NewFxDynamicObj(*pRuntime, m_pJSContext, JS_GetObjDefnID(*pRuntime, L"Document")); + ASSERT(pDocObj.IsEmpty() == FALSE); + JSFXObject pFieldObj = JS_NewFxDynamicObj(*pRuntime, m_pJSContext, JS_GetObjDefnID(*pRuntime, L"Field")); + ASSERT(pFieldObj.IsEmpty() == FALSE); + + CJS_Document* pJSDocument = (CJS_Document*)JS_GetPrivate(pDocObj); + ASSERT(pJSDocument != NULL); + Document* pDocument = (Document*)pJSDocument->GetEmbedObject(); + ASSERT(pDocument != NULL); + if (m_pTargetDoc != NULL) + pDocument->AttachDoc(m_pTargetDoc); + else + pDocument->AttachDoc(m_pJSContext->GetReaderDocument()); + + CJS_Field* pJSField = (CJS_Field*)JS_GetPrivate(pFieldObj); + ASSERT(pJSField != NULL); + + Field* pField = (Field *)pJSField->GetEmbedObject(); + ASSERT(pField != NULL); + + pField->AttachField(pDocument, m_strTargetName); + return pField; +} + +CFX_WideString& CJS_EventHandler::Value() +{ + return *m_pValue; +} + +FX_BOOL CJS_EventHandler::WillCommit() +{ + return m_bWillCommit; +} + +CFX_WideString CJS_EventHandler::TargetName() +{ + return m_strTargetName; +} + + -- cgit v1.2.3