OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "xfa/fxfa/app/xfa_fffield.h" | 7 #include "xfa/fxfa/app/xfa_fffield.h" |
8 | 8 |
9 #include "xfa/fwl/core/cfwl_edit.h" | 9 #include "xfa/fwl/core/cfwl_edit.h" |
10 #include "xfa/fwl/core/cfwl_evtmouse.h" | 10 #include "xfa/fwl/core/cfwl_evtmouse.h" |
11 #include "xfa/fwl/core/cfwl_msgkey.h" | 11 #include "xfa/fwl/core/cfwl_msgkey.h" |
12 #include "xfa/fwl/core/cfwl_msgkillfocus.h" | 12 #include "xfa/fwl/core/cfwl_msgkillfocus.h" |
13 #include "xfa/fwl/core/cfwl_msgmouse.h" | 13 #include "xfa/fwl/core/cfwl_msgmouse.h" |
14 #include "xfa/fwl/core/cfwl_msgmousewheel.h" | 14 #include "xfa/fwl/core/cfwl_msgmousewheel.h" |
15 #include "xfa/fwl/core/cfwl_msgsetfocus.h" | 15 #include "xfa/fwl/core/cfwl_msgsetfocus.h" |
16 #include "xfa/fwl/core/cfwl_picturebox.h" | 16 #include "xfa/fwl/core/cfwl_picturebox.h" |
17 #include "xfa/fwl/core/cfwl_widgetmgr.h" | 17 #include "xfa/fwl/core/cfwl_widgetmgr.h" |
18 #include "xfa/fwl/core/ifwl_edit.h" | |
19 #include "xfa/fxfa/app/xfa_fwltheme.h" | 18 #include "xfa/fxfa/app/xfa_fwltheme.h" |
20 #include "xfa/fxfa/app/xfa_textlayout.h" | 19 #include "xfa/fxfa/app/xfa_textlayout.h" |
21 #include "xfa/fxfa/xfa_ffapp.h" | 20 #include "xfa/fxfa/xfa_ffapp.h" |
22 #include "xfa/fxfa/xfa_ffdoc.h" | 21 #include "xfa/fxfa/xfa_ffdoc.h" |
23 #include "xfa/fxfa/xfa_ffdocview.h" | 22 #include "xfa/fxfa/xfa_ffdocview.h" |
24 #include "xfa/fxfa/xfa_ffpageview.h" | 23 #include "xfa/fxfa/xfa_ffpageview.h" |
25 #include "xfa/fxfa/xfa_ffwidget.h" | 24 #include "xfa/fxfa/xfa_ffwidget.h" |
26 #include "xfa/fxgraphics/cfx_color.h" | 25 #include "xfa/fxgraphics/cfx_color.h" |
27 #include "xfa/fxgraphics/cfx_path.h" | 26 #include "xfa/fxgraphics/cfx_path.h" |
28 | 27 |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 CXFA_FFWidget::RenderWidget(pGS, &mtRotate, dwStatus); | 67 CXFA_FFWidget::RenderWidget(pGS, &mtRotate, dwStatus); |
69 CXFA_Border borderUI = m_pDataAcc->GetUIBorder(); | 68 CXFA_Border borderUI = m_pDataAcc->GetUIBorder(); |
70 DrawBorder(pGS, borderUI, m_rtUI, &mtRotate); | 69 DrawBorder(pGS, borderUI, m_rtUI, &mtRotate); |
71 RenderCaption(pGS, &mtRotate); | 70 RenderCaption(pGS, &mtRotate); |
72 DrawHighlight(pGS, &mtRotate, dwStatus, false); | 71 DrawHighlight(pGS, &mtRotate, dwStatus, false); |
73 CFX_RectF rtWidget; | 72 CFX_RectF rtWidget; |
74 m_pNormalWidget->GetWidgetRect(rtWidget); | 73 m_pNormalWidget->GetWidgetRect(rtWidget); |
75 CFX_Matrix mt; | 74 CFX_Matrix mt; |
76 mt.Set(1, 0, 0, 1, rtWidget.left, rtWidget.top); | 75 mt.Set(1, 0, 0, 1, rtWidget.left, rtWidget.top); |
77 mt.Concat(mtRotate); | 76 mt.Concat(mtRotate); |
78 GetApp()->GetWidgetMgrDelegate()->OnDrawWidget(m_pNormalWidget->GetWidget(), | 77 GetApp()->GetWidgetMgrDelegate()->OnDrawWidget(m_pNormalWidget, pGS, &mt); |
79 pGS, &mt); | |
80 } | 78 } |
81 void CXFA_FFField::DrawHighlight(CFX_Graphics* pGS, | 79 void CXFA_FFField::DrawHighlight(CFX_Graphics* pGS, |
82 CFX_Matrix* pMatrix, | 80 CFX_Matrix* pMatrix, |
83 uint32_t dwStatus, | 81 uint32_t dwStatus, |
84 bool bEllipse) { | 82 bool bEllipse) { |
85 if (m_rtUI.IsEmpty() || !m_pDataAcc->GetDoc()->GetXFADoc()->IsInteractive()) { | 83 if (m_rtUI.IsEmpty() || !m_pDataAcc->GetDoc()->GetXFADoc()->IsInteractive()) { |
86 return; | 84 return; |
87 } | 85 } |
88 if ((dwStatus & XFA_WidgetStatus_Highlight) && | 86 if ((dwStatus & XFA_WidgetStatus_Highlight) && |
89 m_pDataAcc->GetAccess() == XFA_ATTRIBUTEENUM_Open) { | 87 m_pDataAcc->GetAccess() == XFA_ATTRIBUTEENUM_Open) { |
(...skipping 17 matching lines...) Expand all Loading... |
107 FX_FLOAT DashPattern[2] = {1, 1}; | 105 FX_FLOAT DashPattern[2] = {1, 1}; |
108 pGS->SetLineDash(0.0f, DashPattern, 2); | 106 pGS->SetLineDash(0.0f, DashPattern, 2); |
109 pGS->SetLineWidth(0, false); | 107 pGS->SetLineWidth(0, false); |
110 CFX_Path path; | 108 CFX_Path path; |
111 path.Create(); | 109 path.Create(); |
112 path.AddRectangle(m_rtUI.left, m_rtUI.top, m_rtUI.width, m_rtUI.height); | 110 path.AddRectangle(m_rtUI.left, m_rtUI.top, m_rtUI.width, m_rtUI.height); |
113 pGS->StrokePath(&path, pMatrix); | 111 pGS->StrokePath(&path, pMatrix); |
114 } | 112 } |
115 } | 113 } |
116 void CXFA_FFField::SetFWLThemeProvider() { | 114 void CXFA_FFField::SetFWLThemeProvider() { |
117 if (m_pNormalWidget) { | 115 if (m_pNormalWidget) |
118 m_pNormalWidget->GetWidget()->SetThemeProvider(GetApp()->GetFWLTheme()); | 116 m_pNormalWidget->SetThemeProvider(GetApp()->GetFWLTheme()); |
119 } | |
120 } | 117 } |
121 bool CXFA_FFField::IsLoaded() { | 118 bool CXFA_FFField::IsLoaded() { |
122 return m_pNormalWidget && CXFA_FFWidget::IsLoaded(); | 119 return m_pNormalWidget && CXFA_FFWidget::IsLoaded(); |
123 } | 120 } |
124 bool CXFA_FFField::LoadWidget() { | 121 bool CXFA_FFField::LoadWidget() { |
125 SetFWLThemeProvider(); | 122 SetFWLThemeProvider(); |
126 m_pDataAcc->LoadCaption(); | 123 m_pDataAcc->LoadCaption(); |
127 PerformLayout(); | 124 PerformLayout(); |
128 return true; | 125 return true; |
129 } | 126 } |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
347 } | 344 } |
348 } | 345 } |
349 m_pNormalWidget->SetWidgetRect(rtUi); | 346 m_pNormalWidget->SetWidgetRect(rtUi); |
350 } | 347 } |
351 bool CXFA_FFField::OnMouseEnter() { | 348 bool CXFA_FFField::OnMouseEnter() { |
352 if (!m_pNormalWidget) { | 349 if (!m_pNormalWidget) { |
353 return false; | 350 return false; |
354 } | 351 } |
355 CFWL_MsgMouse ms; | 352 CFWL_MsgMouse ms; |
356 ms.m_dwCmd = FWL_MouseCommand::Enter; | 353 ms.m_dwCmd = FWL_MouseCommand::Enter; |
357 ms.m_pDstTarget = m_pNormalWidget->GetWidget(); | 354 ms.m_pDstTarget = m_pNormalWidget; |
358 ms.m_pSrcTarget = nullptr; | 355 ms.m_pSrcTarget = nullptr; |
359 TranslateFWLMessage(&ms); | 356 TranslateFWLMessage(&ms); |
360 return true; | 357 return true; |
361 } | 358 } |
362 bool CXFA_FFField::OnMouseExit() { | 359 bool CXFA_FFField::OnMouseExit() { |
363 if (!m_pNormalWidget) { | 360 if (!m_pNormalWidget) { |
364 return false; | 361 return false; |
365 } | 362 } |
366 CFWL_MsgMouse ms; | 363 CFWL_MsgMouse ms; |
367 ms.m_dwCmd = FWL_MouseCommand::Leave; | 364 ms.m_dwCmd = FWL_MouseCommand::Leave; |
368 ms.m_pDstTarget = m_pNormalWidget->GetWidget(); | 365 ms.m_pDstTarget = m_pNormalWidget; |
369 TranslateFWLMessage(&ms); | 366 TranslateFWLMessage(&ms); |
370 return true; | 367 return true; |
371 } | 368 } |
372 void CXFA_FFField::FWLToClient(FX_FLOAT& fx, FX_FLOAT& fy) { | 369 void CXFA_FFField::FWLToClient(FX_FLOAT& fx, FX_FLOAT& fy) { |
373 if (!m_pNormalWidget) { | 370 if (!m_pNormalWidget) { |
374 return; | 371 return; |
375 } | 372 } |
376 CFX_RectF rtWidget; | 373 CFX_RectF rtWidget; |
377 m_pNormalWidget->GetWidgetRect(rtWidget); | 374 m_pNormalWidget->GetWidgetRect(rtWidget); |
378 fx -= rtWidget.left; | 375 fx -= rtWidget.left; |
(...skipping 10 matching lines...) Expand all Loading... |
389 if (!PtInActiveRect(fx, fy)) { | 386 if (!PtInActiveRect(fx, fy)) { |
390 return false; | 387 return false; |
391 } | 388 } |
392 SetButtonDown(true); | 389 SetButtonDown(true); |
393 CFWL_MsgMouse ms; | 390 CFWL_MsgMouse ms; |
394 ms.m_dwCmd = FWL_MouseCommand::LeftButtonDown; | 391 ms.m_dwCmd = FWL_MouseCommand::LeftButtonDown; |
395 ms.m_dwFlags = dwFlags; | 392 ms.m_dwFlags = dwFlags; |
396 ms.m_fx = fx; | 393 ms.m_fx = fx; |
397 ms.m_fy = fy; | 394 ms.m_fy = fy; |
398 FWLToClient(ms.m_fx, ms.m_fy); | 395 FWLToClient(ms.m_fx, ms.m_fy); |
399 ms.m_pDstTarget = m_pNormalWidget->GetWidget(); | 396 ms.m_pDstTarget = m_pNormalWidget; |
400 TranslateFWLMessage(&ms); | 397 TranslateFWLMessage(&ms); |
401 return true; | 398 return true; |
402 } | 399 } |
403 bool CXFA_FFField::OnLButtonUp(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) { | 400 bool CXFA_FFField::OnLButtonUp(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) { |
404 if (!m_pNormalWidget) { | 401 if (!m_pNormalWidget) { |
405 return false; | 402 return false; |
406 } | 403 } |
407 if (!IsButtonDown()) { | 404 if (!IsButtonDown()) { |
408 return false; | 405 return false; |
409 } | 406 } |
410 SetButtonDown(false); | 407 SetButtonDown(false); |
411 CFWL_MsgMouse ms; | 408 CFWL_MsgMouse ms; |
412 ms.m_dwCmd = FWL_MouseCommand::LeftButtonUp; | 409 ms.m_dwCmd = FWL_MouseCommand::LeftButtonUp; |
413 ms.m_dwFlags = dwFlags; | 410 ms.m_dwFlags = dwFlags; |
414 ms.m_fx = fx; | 411 ms.m_fx = fx; |
415 ms.m_fy = fy; | 412 ms.m_fy = fy; |
416 FWLToClient(ms.m_fx, ms.m_fy); | 413 FWLToClient(ms.m_fx, ms.m_fy); |
417 ms.m_pDstTarget = m_pNormalWidget->GetWidget(); | 414 ms.m_pDstTarget = m_pNormalWidget; |
418 TranslateFWLMessage(&ms); | 415 TranslateFWLMessage(&ms); |
419 return true; | 416 return true; |
420 } | 417 } |
421 bool CXFA_FFField::OnLButtonDblClk(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) { | 418 bool CXFA_FFField::OnLButtonDblClk(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) { |
422 if (!m_pNormalWidget) { | 419 if (!m_pNormalWidget) { |
423 return false; | 420 return false; |
424 } | 421 } |
425 CFWL_MsgMouse ms; | 422 CFWL_MsgMouse ms; |
426 ms.m_dwCmd = FWL_MouseCommand::LeftButtonDblClk; | 423 ms.m_dwCmd = FWL_MouseCommand::LeftButtonDblClk; |
427 ms.m_dwFlags = dwFlags; | 424 ms.m_dwFlags = dwFlags; |
428 ms.m_fx = fx; | 425 ms.m_fx = fx; |
429 ms.m_fy = fy; | 426 ms.m_fy = fy; |
430 FWLToClient(ms.m_fx, ms.m_fy); | 427 FWLToClient(ms.m_fx, ms.m_fy); |
431 ms.m_pDstTarget = m_pNormalWidget->GetWidget(); | 428 ms.m_pDstTarget = m_pNormalWidget; |
432 TranslateFWLMessage(&ms); | 429 TranslateFWLMessage(&ms); |
433 return true; | 430 return true; |
434 } | 431 } |
435 bool CXFA_FFField::OnMouseMove(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) { | 432 bool CXFA_FFField::OnMouseMove(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) { |
436 if (!m_pNormalWidget) { | 433 if (!m_pNormalWidget) { |
437 return false; | 434 return false; |
438 } | 435 } |
439 CFWL_MsgMouse ms; | 436 CFWL_MsgMouse ms; |
440 ms.m_dwCmd = FWL_MouseCommand::Move; | 437 ms.m_dwCmd = FWL_MouseCommand::Move; |
441 ms.m_dwFlags = dwFlags; | 438 ms.m_dwFlags = dwFlags; |
442 ms.m_fx = fx; | 439 ms.m_fx = fx; |
443 ms.m_fy = fy; | 440 ms.m_fy = fy; |
444 FWLToClient(ms.m_fx, ms.m_fy); | 441 FWLToClient(ms.m_fx, ms.m_fy); |
445 ms.m_pDstTarget = m_pNormalWidget->GetWidget(); | 442 ms.m_pDstTarget = m_pNormalWidget; |
446 TranslateFWLMessage(&ms); | 443 TranslateFWLMessage(&ms); |
447 return true; | 444 return true; |
448 } | 445 } |
449 bool CXFA_FFField::OnMouseWheel(uint32_t dwFlags, | 446 bool CXFA_FFField::OnMouseWheel(uint32_t dwFlags, |
450 int16_t zDelta, | 447 int16_t zDelta, |
451 FX_FLOAT fx, | 448 FX_FLOAT fx, |
452 FX_FLOAT fy) { | 449 FX_FLOAT fy) { |
453 if (!m_pNormalWidget) { | 450 if (!m_pNormalWidget) { |
454 return false; | 451 return false; |
455 } | 452 } |
456 CFWL_MsgMouseWheel ms; | 453 CFWL_MsgMouseWheel ms; |
457 ms.m_dwFlags = dwFlags; | 454 ms.m_dwFlags = dwFlags; |
458 ms.m_fx = fx; | 455 ms.m_fx = fx; |
459 ms.m_fy = fy; | 456 ms.m_fy = fy; |
460 FWLToClient(ms.m_fx, ms.m_fy); | 457 FWLToClient(ms.m_fx, ms.m_fy); |
461 ms.m_fDeltaX = zDelta; | 458 ms.m_fDeltaX = zDelta; |
462 ms.m_fDeltaY = 0; | 459 ms.m_fDeltaY = 0; |
463 ms.m_pDstTarget = m_pNormalWidget->GetWidget(); | 460 ms.m_pDstTarget = m_pNormalWidget; |
464 TranslateFWLMessage(&ms); | 461 TranslateFWLMessage(&ms); |
465 return true; | 462 return true; |
466 } | 463 } |
467 bool CXFA_FFField::OnRButtonDown(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) { | 464 bool CXFA_FFField::OnRButtonDown(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) { |
468 if (!m_pNormalWidget) { | 465 if (!m_pNormalWidget) { |
469 return false; | 466 return false; |
470 } | 467 } |
471 if (m_pDataAcc->GetAccess() != XFA_ATTRIBUTEENUM_Open || | 468 if (m_pDataAcc->GetAccess() != XFA_ATTRIBUTEENUM_Open || |
472 !m_pDataAcc->GetDoc()->GetXFADoc()->IsInteractive()) { | 469 !m_pDataAcc->GetDoc()->GetXFADoc()->IsInteractive()) { |
473 return false; | 470 return false; |
474 } | 471 } |
475 if (!PtInActiveRect(fx, fy)) { | 472 if (!PtInActiveRect(fx, fy)) { |
476 return false; | 473 return false; |
477 } | 474 } |
478 SetButtonDown(true); | 475 SetButtonDown(true); |
479 CFWL_MsgMouse ms; | 476 CFWL_MsgMouse ms; |
480 ms.m_dwCmd = FWL_MouseCommand::RightButtonDown; | 477 ms.m_dwCmd = FWL_MouseCommand::RightButtonDown; |
481 ms.m_dwFlags = dwFlags; | 478 ms.m_dwFlags = dwFlags; |
482 ms.m_fx = fx; | 479 ms.m_fx = fx; |
483 ms.m_fy = fy; | 480 ms.m_fy = fy; |
484 FWLToClient(ms.m_fx, ms.m_fy); | 481 FWLToClient(ms.m_fx, ms.m_fy); |
485 ms.m_pDstTarget = m_pNormalWidget->GetWidget(); | 482 ms.m_pDstTarget = m_pNormalWidget; |
486 TranslateFWLMessage(&ms); | 483 TranslateFWLMessage(&ms); |
487 return true; | 484 return true; |
488 } | 485 } |
489 bool CXFA_FFField::OnRButtonUp(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) { | 486 bool CXFA_FFField::OnRButtonUp(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) { |
490 if (!m_pNormalWidget) { | 487 if (!m_pNormalWidget) { |
491 return false; | 488 return false; |
492 } | 489 } |
493 if (!IsButtonDown()) { | 490 if (!IsButtonDown()) { |
494 return false; | 491 return false; |
495 } | 492 } |
496 SetButtonDown(false); | 493 SetButtonDown(false); |
497 CFWL_MsgMouse ms; | 494 CFWL_MsgMouse ms; |
498 ms.m_dwCmd = FWL_MouseCommand::RightButtonUp; | 495 ms.m_dwCmd = FWL_MouseCommand::RightButtonUp; |
499 ms.m_dwFlags = dwFlags; | 496 ms.m_dwFlags = dwFlags; |
500 ms.m_fx = fx; | 497 ms.m_fx = fx; |
501 ms.m_fy = fy; | 498 ms.m_fy = fy; |
502 FWLToClient(ms.m_fx, ms.m_fy); | 499 FWLToClient(ms.m_fx, ms.m_fy); |
503 ms.m_pDstTarget = m_pNormalWidget->GetWidget(); | 500 ms.m_pDstTarget = m_pNormalWidget; |
504 TranslateFWLMessage(&ms); | 501 TranslateFWLMessage(&ms); |
505 return true; | 502 return true; |
506 } | 503 } |
507 bool CXFA_FFField::OnRButtonDblClk(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) { | 504 bool CXFA_FFField::OnRButtonDblClk(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) { |
508 if (!m_pNormalWidget) { | 505 if (!m_pNormalWidget) { |
509 return false; | 506 return false; |
510 } | 507 } |
511 CFWL_MsgMouse ms; | 508 CFWL_MsgMouse ms; |
512 ms.m_dwCmd = FWL_MouseCommand::RightButtonDblClk; | 509 ms.m_dwCmd = FWL_MouseCommand::RightButtonDblClk; |
513 ms.m_dwFlags = dwFlags; | 510 ms.m_dwFlags = dwFlags; |
514 ms.m_fx = fx; | 511 ms.m_fx = fx; |
515 ms.m_fy = fy; | 512 ms.m_fy = fy; |
516 FWLToClient(ms.m_fx, ms.m_fy); | 513 FWLToClient(ms.m_fx, ms.m_fy); |
517 ms.m_pDstTarget = m_pNormalWidget->GetWidget(); | 514 ms.m_pDstTarget = m_pNormalWidget; |
518 TranslateFWLMessage(&ms); | 515 TranslateFWLMessage(&ms); |
519 return true; | 516 return true; |
520 } | 517 } |
521 | 518 |
522 bool CXFA_FFField::OnSetFocus(CXFA_FFWidget* pOldWidget) { | 519 bool CXFA_FFField::OnSetFocus(CXFA_FFWidget* pOldWidget) { |
523 CXFA_FFWidget::OnSetFocus(pOldWidget); | 520 CXFA_FFWidget::OnSetFocus(pOldWidget); |
524 if (!m_pNormalWidget) { | 521 if (!m_pNormalWidget) { |
525 return false; | 522 return false; |
526 } | 523 } |
527 CFWL_MsgSetFocus ms; | 524 CFWL_MsgSetFocus ms; |
528 ms.m_pDstTarget = m_pNormalWidget->GetWidget(); | 525 ms.m_pDstTarget = m_pNormalWidget; |
529 ms.m_pSrcTarget = nullptr; | 526 ms.m_pSrcTarget = nullptr; |
530 TranslateFWLMessage(&ms); | 527 TranslateFWLMessage(&ms); |
531 m_dwStatus |= XFA_WidgetStatus_Focused; | 528 m_dwStatus |= XFA_WidgetStatus_Focused; |
532 AddInvalidateRect(); | 529 AddInvalidateRect(); |
533 return true; | 530 return true; |
534 } | 531 } |
535 bool CXFA_FFField::OnKillFocus(CXFA_FFWidget* pNewWidget) { | 532 bool CXFA_FFField::OnKillFocus(CXFA_FFWidget* pNewWidget) { |
536 if (!m_pNormalWidget) { | 533 if (!m_pNormalWidget) { |
537 return CXFA_FFWidget::OnKillFocus(pNewWidget); | 534 return CXFA_FFWidget::OnKillFocus(pNewWidget); |
538 } | 535 } |
539 CFWL_MsgKillFocus ms; | 536 CFWL_MsgKillFocus ms; |
540 ms.m_pDstTarget = m_pNormalWidget->GetWidget(); | 537 ms.m_pDstTarget = m_pNormalWidget; |
541 ms.m_pSrcTarget = nullptr; | 538 ms.m_pSrcTarget = nullptr; |
542 TranslateFWLMessage(&ms); | 539 TranslateFWLMessage(&ms); |
543 m_dwStatus &= ~XFA_WidgetStatus_Focused; | 540 m_dwStatus &= ~XFA_WidgetStatus_Focused; |
544 AddInvalidateRect(); | 541 AddInvalidateRect(); |
545 CXFA_FFWidget::OnKillFocus(pNewWidget); | 542 CXFA_FFWidget::OnKillFocus(pNewWidget); |
546 return true; | 543 return true; |
547 } | 544 } |
548 bool CXFA_FFField::OnKeyDown(uint32_t dwKeyCode, uint32_t dwFlags) { | 545 bool CXFA_FFField::OnKeyDown(uint32_t dwKeyCode, uint32_t dwFlags) { |
549 if (!m_pNormalWidget || !m_pDataAcc->GetDoc()->GetXFADoc()->IsInteractive()) { | 546 if (!m_pNormalWidget || !m_pDataAcc->GetDoc()->GetXFADoc()->IsInteractive()) { |
550 return false; | 547 return false; |
551 } | 548 } |
552 CFWL_MsgKey ms; | 549 CFWL_MsgKey ms; |
553 ms.m_dwCmd = FWL_KeyCommand::KeyDown; | 550 ms.m_dwCmd = FWL_KeyCommand::KeyDown; |
554 ms.m_dwFlags = dwFlags; | 551 ms.m_dwFlags = dwFlags; |
555 ms.m_dwKeyCode = dwKeyCode; | 552 ms.m_dwKeyCode = dwKeyCode; |
556 ms.m_pDstTarget = m_pNormalWidget->GetWidget(); | 553 ms.m_pDstTarget = m_pNormalWidget; |
557 ms.m_pSrcTarget = nullptr; | 554 ms.m_pSrcTarget = nullptr; |
558 TranslateFWLMessage(&ms); | 555 TranslateFWLMessage(&ms); |
559 return true; | 556 return true; |
560 } | 557 } |
561 bool CXFA_FFField::OnKeyUp(uint32_t dwKeyCode, uint32_t dwFlags) { | 558 bool CXFA_FFField::OnKeyUp(uint32_t dwKeyCode, uint32_t dwFlags) { |
562 if (!m_pNormalWidget || !m_pDataAcc->GetDoc()->GetXFADoc()->IsInteractive()) { | 559 if (!m_pNormalWidget || !m_pDataAcc->GetDoc()->GetXFADoc()->IsInteractive()) { |
563 return false; | 560 return false; |
564 } | 561 } |
565 CFWL_MsgKey ms; | 562 CFWL_MsgKey ms; |
566 ms.m_dwCmd = FWL_KeyCommand::KeyUp; | 563 ms.m_dwCmd = FWL_KeyCommand::KeyUp; |
567 ms.m_dwFlags = dwFlags; | 564 ms.m_dwFlags = dwFlags; |
568 ms.m_dwKeyCode = dwKeyCode; | 565 ms.m_dwKeyCode = dwKeyCode; |
569 ms.m_pDstTarget = m_pNormalWidget->GetWidget(); | 566 ms.m_pDstTarget = m_pNormalWidget; |
570 ms.m_pSrcTarget = nullptr; | 567 ms.m_pSrcTarget = nullptr; |
571 TranslateFWLMessage(&ms); | 568 TranslateFWLMessage(&ms); |
572 return true; | 569 return true; |
573 } | 570 } |
574 bool CXFA_FFField::OnChar(uint32_t dwChar, uint32_t dwFlags) { | 571 bool CXFA_FFField::OnChar(uint32_t dwChar, uint32_t dwFlags) { |
575 if (!m_pDataAcc->GetDoc()->GetXFADoc()->IsInteractive()) { | 572 if (!m_pDataAcc->GetDoc()->GetXFADoc()->IsInteractive()) { |
576 return false; | 573 return false; |
577 } | 574 } |
578 if (dwChar == FWL_VKEY_Tab) { | 575 if (dwChar == FWL_VKEY_Tab) { |
579 return true; | 576 return true; |
580 } | 577 } |
581 if (!m_pNormalWidget) { | 578 if (!m_pNormalWidget) { |
582 return false; | 579 return false; |
583 } | 580 } |
584 if (m_pDataAcc->GetAccess() != XFA_ATTRIBUTEENUM_Open) { | 581 if (m_pDataAcc->GetAccess() != XFA_ATTRIBUTEENUM_Open) { |
585 return false; | 582 return false; |
586 } | 583 } |
587 CFWL_MsgKey ms; | 584 CFWL_MsgKey ms; |
588 ms.m_dwCmd = FWL_KeyCommand::Char; | 585 ms.m_dwCmd = FWL_KeyCommand::Char; |
589 ms.m_dwFlags = dwFlags; | 586 ms.m_dwFlags = dwFlags; |
590 ms.m_dwKeyCode = dwChar; | 587 ms.m_dwKeyCode = dwChar; |
591 ms.m_pDstTarget = m_pNormalWidget->GetWidget(); | 588 ms.m_pDstTarget = m_pNormalWidget; |
592 ms.m_pSrcTarget = nullptr; | 589 ms.m_pSrcTarget = nullptr; |
593 TranslateFWLMessage(&ms); | 590 TranslateFWLMessage(&ms); |
594 return true; | 591 return true; |
595 } | 592 } |
596 FWL_WidgetHit CXFA_FFField::OnHitTest(FX_FLOAT fx, FX_FLOAT fy) { | 593 FWL_WidgetHit CXFA_FFField::OnHitTest(FX_FLOAT fx, FX_FLOAT fy) { |
597 if (m_pNormalWidget) { | 594 if (m_pNormalWidget) { |
598 FX_FLOAT ffx = fx, ffy = fy; | 595 FX_FLOAT ffx = fx, ffy = fy; |
599 FWLToClient(ffx, ffy); | 596 FWLToClient(ffx, ffy); |
600 if (m_pNormalWidget->HitTest(ffx, ffy) != FWL_WidgetHit::Unknown) | 597 if (m_pNormalWidget->HitTest(ffx, ffy) != FWL_WidgetHit::Unknown) |
601 return FWL_WidgetHit::Client; | 598 return FWL_WidgetHit::Client; |
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
815 m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_Click, &eParam); | 812 m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_Click, &eParam); |
816 break; | 813 break; |
817 } | 814 } |
818 default: | 815 default: |
819 break; | 816 break; |
820 } | 817 } |
821 } | 818 } |
822 | 819 |
823 void CXFA_FFField::OnDrawWidget(CFX_Graphics* pGraphics, | 820 void CXFA_FFField::OnDrawWidget(CFX_Graphics* pGraphics, |
824 const CFX_Matrix* pMatrix) {} | 821 const CFX_Matrix* pMatrix) {} |
OLD | NEW |