OLD | NEW |
| (Empty) |
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. | |
4 | |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | |
6 | |
7 #include "fpdfsdk/src/javascript/JS_EventHandler.h" | |
8 | |
9 #include "fpdfsdk/include/javascript/IJavaScript.h" | |
10 #include "fpdfsdk/src/javascript/Document.h" | |
11 #include "fpdfsdk/src/javascript/Field.h" | |
12 #include "fpdfsdk/src/javascript/JS_Context.h" | |
13 #include "fpdfsdk/src/javascript/JS_Define.h" | |
14 #include "fpdfsdk/src/javascript/JS_Object.h" | |
15 #include "fpdfsdk/src/javascript/JS_Runtime.h" | |
16 #include "fpdfsdk/src/javascript/JS_Value.h" | |
17 | |
18 /* ---------------------------- CJS_EventHandler ---------------------------- */ | |
19 | |
20 CJS_EventHandler::CJS_EventHandler(CJS_Context* pContext) | |
21 : m_pJSContext(pContext), | |
22 m_eEventType(JET_UNKNOWN), | |
23 m_bValid(FALSE), | |
24 m_pWideStrChange(NULL), | |
25 m_nCommitKey(-1), | |
26 m_bKeyDown(FALSE), | |
27 m_bModifier(FALSE), | |
28 m_bShift(FALSE), | |
29 m_pISelEnd(NULL), | |
30 m_nSelEndDu(0), | |
31 m_pISelStart(NULL), | |
32 m_nSelStartDu(0), | |
33 m_bWillCommit(FALSE), | |
34 m_pValue(NULL), | |
35 m_bFieldFull(FALSE), | |
36 m_pbRc(NULL), | |
37 m_bRcDu(FALSE), | |
38 m_pSourceDoc(NULL), | |
39 m_pTargetBookMark(NULL), | |
40 m_pTargetDoc(NULL), | |
41 m_pTargetAnnot(NULL) {} | |
42 | |
43 CJS_EventHandler::~CJS_EventHandler() {} | |
44 | |
45 void CJS_EventHandler::OnApp_Init() { | |
46 Initial(JET_APP_INIT); | |
47 } | |
48 | |
49 void CJS_EventHandler::OnDoc_Open(CPDFSDK_Document* pDoc, | |
50 const CFX_WideString& strTargetName) { | |
51 Initial(JET_DOC_OPEN); | |
52 | |
53 m_pTargetDoc = pDoc; | |
54 m_strTargetName = strTargetName; | |
55 } | |
56 | |
57 void CJS_EventHandler::OnDoc_WillPrint(CPDFSDK_Document* pDoc) { | |
58 Initial(JET_DOC_WILLPRINT); | |
59 | |
60 m_pTargetDoc = pDoc; | |
61 } | |
62 | |
63 void CJS_EventHandler::OnDoc_DidPrint(CPDFSDK_Document* pDoc) { | |
64 Initial(JET_DOC_DIDPRINT); | |
65 | |
66 m_pTargetDoc = pDoc; | |
67 } | |
68 | |
69 void CJS_EventHandler::OnDoc_WillSave(CPDFSDK_Document* pDoc) { | |
70 Initial(JET_DOC_WILLSAVE); | |
71 m_pTargetDoc = pDoc; | |
72 } | |
73 | |
74 void CJS_EventHandler::OnDoc_DidSave(CPDFSDK_Document* pDoc) { | |
75 Initial(JET_DOC_DIDSAVE); | |
76 | |
77 m_pTargetDoc = pDoc; | |
78 } | |
79 | |
80 void CJS_EventHandler::OnDoc_WillClose(CPDFSDK_Document* pDoc) { | |
81 Initial(JET_DOC_WILLCLOSE); | |
82 | |
83 m_pTargetDoc = pDoc; | |
84 } | |
85 | |
86 void CJS_EventHandler::OnPage_Open(CPDFSDK_Document* pDoc) { | |
87 Initial(JET_PAGE_OPEN); | |
88 | |
89 m_pTargetDoc = pDoc; | |
90 } | |
91 | |
92 void CJS_EventHandler::OnPage_Close(CPDFSDK_Document* pDoc) { | |
93 Initial(JET_PAGE_CLOSE); | |
94 | |
95 m_pTargetDoc = pDoc; | |
96 } | |
97 | |
98 void CJS_EventHandler::OnPage_InView(CPDFSDK_Document* pDoc) { | |
99 Initial(JET_PAGE_INVIEW); | |
100 | |
101 m_pTargetDoc = pDoc; | |
102 } | |
103 | |
104 void CJS_EventHandler::OnPage_OutView(CPDFSDK_Document* pDoc) { | |
105 Initial(JET_PAGE_OUTVIEW); | |
106 | |
107 m_pTargetDoc = pDoc; | |
108 } | |
109 | |
110 void CJS_EventHandler::OnField_MouseEnter(FX_BOOL bModifier, | |
111 FX_BOOL bShift, | |
112 CPDF_FormField* pTarget) { | |
113 Initial(JET_FIELD_MOUSEENTER); | |
114 | |
115 m_bModifier = bModifier; | |
116 m_bShift = bShift; | |
117 | |
118 m_strTargetName = pTarget->GetFullName(); | |
119 } | |
120 | |
121 void CJS_EventHandler::OnField_MouseExit(FX_BOOL bModifier, | |
122 FX_BOOL bShift, | |
123 CPDF_FormField* pTarget) { | |
124 Initial(JET_FIELD_MOUSEEXIT); | |
125 | |
126 m_bModifier = bModifier; | |
127 m_bShift = bShift; | |
128 m_strTargetName = pTarget->GetFullName(); | |
129 } | |
130 | |
131 void CJS_EventHandler::OnField_MouseDown(FX_BOOL bModifier, | |
132 FX_BOOL bShift, | |
133 CPDF_FormField* pTarget) { | |
134 Initial(JET_FIELD_MOUSEDOWN); | |
135 m_eEventType = JET_FIELD_MOUSEDOWN; | |
136 | |
137 m_bModifier = bModifier; | |
138 m_bShift = bShift; | |
139 m_strTargetName = pTarget->GetFullName(); | |
140 } | |
141 | |
142 void CJS_EventHandler::OnField_MouseUp(FX_BOOL bModifier, | |
143 FX_BOOL bShift, | |
144 CPDF_FormField* pTarget) { | |
145 Initial(JET_FIELD_MOUSEUP); | |
146 | |
147 m_bModifier = bModifier; | |
148 m_bShift = bShift; | |
149 m_strTargetName = pTarget->GetFullName(); | |
150 } | |
151 | |
152 void CJS_EventHandler::OnField_Focus(FX_BOOL bModifier, | |
153 FX_BOOL bShift, | |
154 CPDF_FormField* pTarget, | |
155 const CFX_WideString& Value) { | |
156 Initial(JET_FIELD_FOCUS); | |
157 | |
158 m_bModifier = bModifier; | |
159 m_bShift = bShift; | |
160 m_strTargetName = pTarget->GetFullName(); | |
161 m_pValue = (CFX_WideString*)&Value; | |
162 } | |
163 | |
164 void CJS_EventHandler::OnField_Blur(FX_BOOL bModifier, | |
165 FX_BOOL bShift, | |
166 CPDF_FormField* pTarget, | |
167 const CFX_WideString& Value) { | |
168 Initial(JET_FIELD_BLUR); | |
169 | |
170 m_bModifier = bModifier; | |
171 m_bShift = bShift; | |
172 m_strTargetName = pTarget->GetFullName(); | |
173 m_pValue = (CFX_WideString*)&Value; | |
174 } | |
175 | |
176 void CJS_EventHandler::OnField_Keystroke(CFX_WideString& strChange, | |
177 const CFX_WideString& strChangeEx, | |
178 FX_BOOL KeyDown, | |
179 FX_BOOL bModifier, | |
180 int& nSelEnd, | |
181 int& nSelStart, | |
182 FX_BOOL bShift, | |
183 CPDF_FormField* pTarget, | |
184 CFX_WideString& Value, | |
185 FX_BOOL bWillCommit, | |
186 FX_BOOL bFieldFull, | |
187 FX_BOOL& bRc) { | |
188 Initial(JET_FIELD_KEYSTROKE); | |
189 | |
190 m_nCommitKey = 0; | |
191 m_pWideStrChange = &strChange; | |
192 m_WideStrChangeEx = strChangeEx; | |
193 m_bKeyDown = KeyDown; | |
194 m_bModifier = bModifier; | |
195 m_pISelEnd = &nSelEnd; | |
196 m_pISelStart = &nSelStart; | |
197 m_bShift = bShift; | |
198 m_strTargetName = pTarget->GetFullName(); | |
199 m_pValue = &Value; | |
200 m_bWillCommit = bWillCommit; | |
201 m_pbRc = &bRc; | |
202 m_bFieldFull = bFieldFull; | |
203 } | |
204 | |
205 void CJS_EventHandler::OnField_Validate(CFX_WideString& strChange, | |
206 const CFX_WideString& strChangeEx, | |
207 FX_BOOL bKeyDown, | |
208 FX_BOOL bModifier, | |
209 FX_BOOL bShift, | |
210 CPDF_FormField* pTarget, | |
211 CFX_WideString& Value, | |
212 FX_BOOL& bRc) { | |
213 Initial(JET_FIELD_VALIDATE); | |
214 | |
215 m_pWideStrChange = &strChange; | |
216 m_WideStrChangeEx = strChangeEx; | |
217 m_bKeyDown = bKeyDown; | |
218 m_bModifier = bModifier; | |
219 m_bShift = bShift; | |
220 m_strTargetName = pTarget->GetFullName(); | |
221 m_pValue = &Value; | |
222 m_pbRc = &bRc; | |
223 } | |
224 | |
225 void CJS_EventHandler::OnField_Calculate(CPDF_FormField* pSource, | |
226 CPDF_FormField* pTarget, | |
227 CFX_WideString& Value, | |
228 FX_BOOL& bRc) { | |
229 Initial(JET_FIELD_CALCULATE); | |
230 | |
231 if (pSource) | |
232 m_strSourceName = pSource->GetFullName(); | |
233 m_strTargetName = pTarget->GetFullName(); | |
234 m_pValue = &Value; | |
235 m_pbRc = &bRc; | |
236 } | |
237 | |
238 void CJS_EventHandler::OnField_Format(CPDF_FormField* pTarget, | |
239 CFX_WideString& Value, | |
240 FX_BOOL bWillCommit) { | |
241 Initial(JET_FIELD_FORMAT); | |
242 | |
243 m_nCommitKey = 0; | |
244 m_strTargetName = pTarget->GetFullName(); | |
245 m_pValue = &Value; | |
246 m_bWillCommit = bWillCommit; | |
247 } | |
248 | |
249 void CJS_EventHandler::OnScreen_Focus(FX_BOOL bModifier, | |
250 FX_BOOL bShift, | |
251 CPDFSDK_Annot* pScreen) { | |
252 Initial(JET_SCREEN_FOCUS); | |
253 | |
254 m_bModifier = bModifier; | |
255 m_bShift = bShift; | |
256 m_pTargetAnnot = pScreen; | |
257 } | |
258 | |
259 void CJS_EventHandler::OnScreen_Blur(FX_BOOL bModifier, | |
260 FX_BOOL bShift, | |
261 CPDFSDK_Annot* pScreen) { | |
262 Initial(JET_SCREEN_BLUR); | |
263 | |
264 m_bModifier = bModifier; | |
265 m_bShift = bShift; | |
266 m_pTargetAnnot = pScreen; | |
267 } | |
268 | |
269 void CJS_EventHandler::OnScreen_Open(FX_BOOL bModifier, | |
270 FX_BOOL bShift, | |
271 CPDFSDK_Annot* pScreen) { | |
272 Initial(JET_SCREEN_OPEN); | |
273 | |
274 m_bModifier = bModifier; | |
275 m_bShift = bShift; | |
276 m_pTargetAnnot = pScreen; | |
277 } | |
278 | |
279 void CJS_EventHandler::OnScreen_Close(FX_BOOL bModifier, | |
280 FX_BOOL bShift, | |
281 CPDFSDK_Annot* pScreen) { | |
282 Initial(JET_SCREEN_CLOSE); | |
283 | |
284 m_bModifier = bModifier; | |
285 m_bShift = bShift; | |
286 m_pTargetAnnot = pScreen; | |
287 } | |
288 | |
289 void CJS_EventHandler::OnScreen_MouseDown(FX_BOOL bModifier, | |
290 FX_BOOL bShift, | |
291 CPDFSDK_Annot* pScreen) { | |
292 Initial(JET_SCREEN_MOUSEDOWN); | |
293 | |
294 m_bModifier = bModifier; | |
295 m_bShift = bShift; | |
296 m_pTargetAnnot = pScreen; | |
297 } | |
298 | |
299 void CJS_EventHandler::OnScreen_MouseUp(FX_BOOL bModifier, | |
300 FX_BOOL bShift, | |
301 CPDFSDK_Annot* pScreen) { | |
302 Initial(JET_SCREEN_MOUSEUP); | |
303 | |
304 m_bModifier = bModifier; | |
305 m_bShift = bShift; | |
306 m_pTargetAnnot = pScreen; | |
307 } | |
308 | |
309 void CJS_EventHandler::OnScreen_MouseEnter(FX_BOOL bModifier, | |
310 FX_BOOL bShift, | |
311 CPDFSDK_Annot* pScreen) { | |
312 Initial(JET_SCREEN_MOUSEENTER); | |
313 | |
314 m_bModifier = bModifier; | |
315 m_bShift = bShift; | |
316 m_pTargetAnnot = pScreen; | |
317 } | |
318 | |
319 void CJS_EventHandler::OnScreen_MouseExit(FX_BOOL bModifier, | |
320 FX_BOOL bShift, | |
321 CPDFSDK_Annot* pScreen) { | |
322 Initial(JET_SCREEN_MOUSEEXIT); | |
323 | |
324 m_bModifier = bModifier; | |
325 m_bShift = bShift; | |
326 m_pTargetAnnot = pScreen; | |
327 } | |
328 | |
329 void CJS_EventHandler::OnScreen_InView(FX_BOOL bModifier, | |
330 FX_BOOL bShift, | |
331 CPDFSDK_Annot* pScreen) { | |
332 Initial(JET_SCREEN_INVIEW); | |
333 | |
334 m_bModifier = bModifier; | |
335 m_bShift = bShift; | |
336 m_pTargetAnnot = pScreen; | |
337 } | |
338 | |
339 void CJS_EventHandler::OnScreen_OutView(FX_BOOL bModifier, | |
340 FX_BOOL bShift, | |
341 CPDFSDK_Annot* pScreen) { | |
342 Initial(JET_SCREEN_OUTVIEW); | |
343 | |
344 m_bModifier = bModifier; | |
345 m_bShift = bShift; | |
346 m_pTargetAnnot = pScreen; | |
347 } | |
348 | |
349 void CJS_EventHandler::OnLink_MouseUp(CPDFSDK_Document* pTarget) { | |
350 Initial(JET_LINK_MOUSEUP); | |
351 | |
352 m_pTargetDoc = pTarget; | |
353 } | |
354 | |
355 void CJS_EventHandler::OnBookmark_MouseUp(CPDF_Bookmark* pBookMark) { | |
356 Initial(JET_BOOKMARK_MOUSEUP); | |
357 | |
358 m_pTargetBookMark = pBookMark; | |
359 } | |
360 | |
361 void CJS_EventHandler::OnMenu_Exec(CPDFSDK_Document* pTarget, | |
362 const CFX_WideString& strTargetName) { | |
363 Initial(JET_MENU_EXEC); | |
364 | |
365 m_pTargetDoc = pTarget; | |
366 m_strTargetName = strTargetName; | |
367 } | |
368 | |
369 void CJS_EventHandler::OnExternal_Exec() { | |
370 Initial(JET_EXTERNAL_EXEC); | |
371 } | |
372 | |
373 void CJS_EventHandler::OnBatchExec(CPDFSDK_Document* pTarget) { | |
374 Initial(JET_BATCH_EXEC); | |
375 | |
376 m_pTargetDoc = pTarget; | |
377 } | |
378 | |
379 void CJS_EventHandler::OnConsole_Exec() { | |
380 Initial(JET_CONSOLE_EXEC); | |
381 } | |
382 | |
383 void CJS_EventHandler::Initial(JS_EVENT_T type) { | |
384 m_eEventType = type; | |
385 | |
386 m_strTargetName = L""; | |
387 m_strSourceName = L""; | |
388 m_pWideStrChange = NULL; | |
389 m_WideStrChangeDu = L""; | |
390 m_WideStrChangeEx = L""; | |
391 m_nCommitKey = -1; | |
392 m_bKeyDown = FALSE; | |
393 m_bModifier = FALSE; | |
394 m_bShift = FALSE; | |
395 m_pISelEnd = NULL; | |
396 m_nSelEndDu = 0; | |
397 m_pISelStart = NULL; | |
398 m_nSelStartDu = 0; | |
399 m_bWillCommit = FALSE; | |
400 m_pValue = NULL; | |
401 m_bFieldFull = FALSE; | |
402 m_pbRc = NULL; | |
403 m_bRcDu = FALSE; | |
404 | |
405 m_pSourceDoc = NULL; | |
406 m_pTargetBookMark = NULL; | |
407 m_pTargetDoc = NULL; | |
408 m_pTargetAnnot = NULL; | |
409 | |
410 m_bValid = TRUE; | |
411 } | |
412 | |
413 void CJS_EventHandler::Destroy() { | |
414 m_bValid = FALSE; | |
415 } | |
416 | |
417 FX_BOOL CJS_EventHandler::IsValid() { | |
418 return m_bValid; | |
419 } | |
420 | |
421 CFX_WideString& CJS_EventHandler::Change() { | |
422 if (m_pWideStrChange) { | |
423 return *m_pWideStrChange; | |
424 } | |
425 return m_WideStrChangeDu; | |
426 } | |
427 | |
428 CFX_WideString CJS_EventHandler::ChangeEx() { | |
429 return m_WideStrChangeEx; | |
430 } | |
431 | |
432 int CJS_EventHandler::CommitKey() { | |
433 return m_nCommitKey; | |
434 } | |
435 | |
436 FX_BOOL CJS_EventHandler::FieldFull() { | |
437 return m_bFieldFull; | |
438 } | |
439 | |
440 FX_BOOL CJS_EventHandler::KeyDown() { | |
441 return m_bKeyDown; | |
442 } | |
443 | |
444 FX_BOOL CJS_EventHandler::Modifier() { | |
445 return m_bModifier; | |
446 } | |
447 | |
448 const FX_WCHAR* CJS_EventHandler::Name() { | |
449 switch (m_eEventType) { | |
450 case JET_APP_INIT: | |
451 return L"Init"; | |
452 case JET_BATCH_EXEC: | |
453 return L"Exec"; | |
454 case JET_BOOKMARK_MOUSEUP: | |
455 return L"Mouse Up"; | |
456 case JET_CONSOLE_EXEC: | |
457 return L"Exec"; | |
458 case JET_DOC_DIDPRINT: | |
459 return L"DidPrint"; | |
460 case JET_DOC_DIDSAVE: | |
461 return L"DidSave"; | |
462 case JET_DOC_OPEN: | |
463 return L"Open"; | |
464 case JET_DOC_WILLCLOSE: | |
465 return L"WillClose"; | |
466 case JET_DOC_WILLPRINT: | |
467 return L"WillPrint"; | |
468 case JET_DOC_WILLSAVE: | |
469 return L"WillSave"; | |
470 case JET_EXTERNAL_EXEC: | |
471 return L"Exec"; | |
472 case JET_FIELD_FOCUS: | |
473 case JET_SCREEN_FOCUS: | |
474 return L"Focus"; | |
475 case JET_FIELD_BLUR: | |
476 case JET_SCREEN_BLUR: | |
477 return L"Blur"; | |
478 case JET_FIELD_MOUSEDOWN: | |
479 case JET_SCREEN_MOUSEDOWN: | |
480 return L"Mouse Down"; | |
481 case JET_FIELD_MOUSEUP: | |
482 case JET_SCREEN_MOUSEUP: | |
483 return L"Mouse Up"; | |
484 case JET_FIELD_MOUSEENTER: | |
485 case JET_SCREEN_MOUSEENTER: | |
486 return L"Mouse Enter"; | |
487 case JET_FIELD_MOUSEEXIT: | |
488 case JET_SCREEN_MOUSEEXIT: | |
489 return L"Mouse Exit"; | |
490 case JET_FIELD_CALCULATE: | |
491 return L"Calculate"; | |
492 case JET_FIELD_FORMAT: | |
493 return L"Format"; | |
494 case JET_FIELD_KEYSTROKE: | |
495 return L"Keystroke"; | |
496 case JET_FIELD_VALIDATE: | |
497 return L"Validate"; | |
498 case JET_LINK_MOUSEUP: | |
499 return L"Mouse Up"; | |
500 case JET_MENU_EXEC: | |
501 return L"Exec"; | |
502 case JET_PAGE_OPEN: | |
503 case JET_SCREEN_OPEN: | |
504 return L"Open"; | |
505 case JET_PAGE_CLOSE: | |
506 case JET_SCREEN_CLOSE: | |
507 return L"Close"; | |
508 case JET_SCREEN_INVIEW: | |
509 case JET_PAGE_INVIEW: | |
510 return L"InView"; | |
511 case JET_PAGE_OUTVIEW: | |
512 case JET_SCREEN_OUTVIEW: | |
513 return L"OutView"; | |
514 default: | |
515 return L""; | |
516 } | |
517 | |
518 return L""; | |
519 } | |
520 | |
521 const FX_WCHAR* CJS_EventHandler::Type() { | |
522 switch (m_eEventType) { | |
523 case JET_APP_INIT: | |
524 return L"App"; | |
525 case JET_BATCH_EXEC: | |
526 return L"Batch"; | |
527 case JET_BOOKMARK_MOUSEUP: | |
528 return L"BookMark"; | |
529 case JET_CONSOLE_EXEC: | |
530 return L"Console"; | |
531 case JET_DOC_DIDPRINT: | |
532 case JET_DOC_DIDSAVE: | |
533 case JET_DOC_OPEN: | |
534 case JET_DOC_WILLCLOSE: | |
535 case JET_DOC_WILLPRINT: | |
536 case JET_DOC_WILLSAVE: | |
537 return L"Doc"; | |
538 case JET_EXTERNAL_EXEC: | |
539 return L"External"; | |
540 case JET_FIELD_BLUR: | |
541 case JET_FIELD_FOCUS: | |
542 case JET_FIELD_MOUSEDOWN: | |
543 case JET_FIELD_MOUSEENTER: | |
544 case JET_FIELD_MOUSEEXIT: | |
545 case JET_FIELD_MOUSEUP: | |
546 case JET_FIELD_CALCULATE: | |
547 case JET_FIELD_FORMAT: | |
548 case JET_FIELD_KEYSTROKE: | |
549 case JET_FIELD_VALIDATE: | |
550 return L"Field"; | |
551 case JET_SCREEN_FOCUS: | |
552 case JET_SCREEN_BLUR: | |
553 case JET_SCREEN_OPEN: | |
554 case JET_SCREEN_CLOSE: | |
555 case JET_SCREEN_MOUSEDOWN: | |
556 case JET_SCREEN_MOUSEUP: | |
557 case JET_SCREEN_MOUSEENTER: | |
558 case JET_SCREEN_MOUSEEXIT: | |
559 case JET_SCREEN_INVIEW: | |
560 case JET_SCREEN_OUTVIEW: | |
561 return L"Screen"; | |
562 case JET_LINK_MOUSEUP: | |
563 return L"Link"; | |
564 case JET_MENU_EXEC: | |
565 return L"Menu"; | |
566 case JET_PAGE_OPEN: | |
567 case JET_PAGE_CLOSE: | |
568 case JET_PAGE_INVIEW: | |
569 case JET_PAGE_OUTVIEW: | |
570 return L"Page"; | |
571 default: | |
572 return L""; | |
573 } | |
574 | |
575 return L""; | |
576 } | |
577 | |
578 FX_BOOL& CJS_EventHandler::Rc() { | |
579 if (m_pbRc) { | |
580 return *m_pbRc; | |
581 } | |
582 return m_bRcDu; | |
583 } | |
584 | |
585 int& CJS_EventHandler::SelEnd() { | |
586 if (m_pISelEnd) { | |
587 return *m_pISelEnd; | |
588 } | |
589 return m_nSelEndDu; | |
590 } | |
591 | |
592 int& CJS_EventHandler::SelStart() { | |
593 if (m_pISelStart) { | |
594 return *m_pISelStart; | |
595 } | |
596 return m_nSelStartDu; | |
597 } | |
598 | |
599 FX_BOOL CJS_EventHandler::Shift() { | |
600 return m_bShift; | |
601 } | |
602 | |
603 Field* CJS_EventHandler::Source() { | |
604 CJS_Runtime* pRuntime = m_pJSContext->GetJSRuntime(); | |
605 v8::Local<v8::Object> pDocObj = FXJS_NewFxDynamicObj( | |
606 pRuntime->GetIsolate(), pRuntime, CJS_Document::g_nObjDefnID); | |
607 ASSERT(!pDocObj.IsEmpty()); | |
608 | |
609 v8::Local<v8::Object> pFieldObj = FXJS_NewFxDynamicObj( | |
610 pRuntime->GetIsolate(), pRuntime, CJS_Field::g_nObjDefnID); | |
611 ASSERT(!pFieldObj.IsEmpty()); | |
612 | |
613 CJS_Document* pJSDocument = | |
614 (CJS_Document*)FXJS_GetPrivate(pRuntime->GetIsolate(), pDocObj); | |
615 Document* pDocument = (Document*)pJSDocument->GetEmbedObject(); | |
616 pDocument->AttachDoc(m_pTargetDoc ? m_pTargetDoc | |
617 : m_pJSContext->GetReaderDocument()); | |
618 | |
619 CJS_Field* pJSField = | |
620 (CJS_Field*)FXJS_GetPrivate(pRuntime->GetIsolate(), pFieldObj); | |
621 Field* pField = (Field*)pJSField->GetEmbedObject(); | |
622 pField->AttachField(pDocument, m_strSourceName); | |
623 return pField; | |
624 } | |
625 | |
626 Field* CJS_EventHandler::Target_Field() { | |
627 CJS_Runtime* pRuntime = m_pJSContext->GetJSRuntime(); | |
628 v8::Local<v8::Object> pDocObj = FXJS_NewFxDynamicObj( | |
629 pRuntime->GetIsolate(), pRuntime, CJS_Document::g_nObjDefnID); | |
630 ASSERT(!pDocObj.IsEmpty()); | |
631 | |
632 v8::Local<v8::Object> pFieldObj = FXJS_NewFxDynamicObj( | |
633 pRuntime->GetIsolate(), pRuntime, CJS_Field::g_nObjDefnID); | |
634 ASSERT(!pFieldObj.IsEmpty()); | |
635 | |
636 CJS_Document* pJSDocument = | |
637 (CJS_Document*)FXJS_GetPrivate(pRuntime->GetIsolate(), pDocObj); | |
638 Document* pDocument = (Document*)pJSDocument->GetEmbedObject(); | |
639 pDocument->AttachDoc(m_pTargetDoc ? m_pTargetDoc | |
640 : m_pJSContext->GetReaderDocument()); | |
641 | |
642 CJS_Field* pJSField = | |
643 (CJS_Field*)FXJS_GetPrivate(pRuntime->GetIsolate(), pFieldObj); | |
644 Field* pField = (Field*)pJSField->GetEmbedObject(); | |
645 pField->AttachField(pDocument, m_strTargetName); | |
646 return pField; | |
647 } | |
648 | |
649 CFX_WideString& CJS_EventHandler::Value() { | |
650 return *m_pValue; | |
651 } | |
652 | |
653 FX_BOOL CJS_EventHandler::WillCommit() { | |
654 return m_bWillCommit; | |
655 } | |
656 | |
657 CFX_WideString CJS_EventHandler::TargetName() { | |
658 return m_strTargetName; | |
659 } | |
OLD | NEW |