Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(254)

Side by Side Diff: xfa/fwl/core/fwl_noteimp.cpp

Issue 2004213002: Remove IWFL_WidgetMgr in favor of CFWL_WidgetMgr (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Explicit ctor Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « xfa/fwl/core/fwl_formimp.cpp ('k') | xfa/fwl/core/fwl_widgetimp.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/fwl/core/fwl_noteimp.h" 7 #include "xfa/fwl/core/fwl_noteimp.h"
8 8
9 #include "core/fxcrt/include/fx_ext.h" 9 #include "core/fxcrt/include/fx_ext.h"
10 #include "xfa/fwl/basewidget/fwl_tooltipctrlimp.h" 10 #include "xfa/fwl/basewidget/fwl_tooltipctrlimp.h"
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 delete m_pNoteLoop; 76 delete m_pNoteLoop;
77 ClearInvalidEventTargets(TRUE); 77 ClearInvalidEventTargets(TRUE);
78 } 78 }
79 79
80 void CFWL_NoteDriver::SendEvent(CFWL_Event* pNote) { 80 void CFWL_NoteDriver::SendEvent(CFWL_Event* pNote) {
81 if (m_eventTargets.empty()) 81 if (m_eventTargets.empty())
82 return; 82 return;
83 if (CFWL_EventType::Mouse == pNote->GetClassID()) { 83 if (CFWL_EventType::Mouse == pNote->GetClassID()) {
84 CFWL_EvtMouse* pMouse = static_cast<CFWL_EvtMouse*>(pNote); 84 CFWL_EvtMouse* pMouse = static_cast<CFWL_EvtMouse*>(pNote);
85 if (FWL_MouseCommand::Hover == pMouse->m_dwCmd) { 85 if (FWL_MouseCommand::Hover == pMouse->m_dwCmd) {
86 if (m_pNoteLoop->GetForm() && 86 if (m_pNoteLoop->GetForm()) {
87 CFWL_ToolTipContainer::getInstance()->ProcessEnter( 87 CFWL_ToolTipContainer::getInstance()->ProcessEnter(
88 pMouse, m_pNoteLoop->GetForm()->GetInterface())) { 88 pMouse, m_pNoteLoop->GetForm()->GetInterface());
89 } 89 }
90 } else if (FWL_MouseCommand::Leave == pMouse->m_dwCmd) { 90 } else if (FWL_MouseCommand::Leave == pMouse->m_dwCmd) {
91 CFWL_ToolTipContainer::getInstance()->ProcessLeave(pMouse); 91 CFWL_ToolTipContainer::getInstance()->ProcessLeave(pMouse);
92 } else if ((FWL_MouseCommand::LeftButtonDown <= pMouse->m_dwCmd) && 92 } else if ((FWL_MouseCommand::LeftButtonDown <= pMouse->m_dwCmd) &&
93 (FWL_MouseCommand::MiddleButtonDblClk >= pMouse->m_dwCmd)) { 93 (FWL_MouseCommand::MiddleButtonDblClk >= pMouse->m_dwCmd)) {
94 CFWL_ToolTipContainer::getInstance()->ProcessLeave(pMouse); 94 CFWL_ToolTipContainer::getInstance()->ProcessLeave(pMouse);
95 } 95 }
96 } 96 }
97 for (const auto& pair : m_eventTargets) { 97 for (const auto& pair : m_eventTargets) {
98 CFWL_EventTarget* pEventTarget = pair.second; 98 CFWL_EventTarget* pEventTarget = pair.second;
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 if (bNotify) { 166 if (bNotify) {
167 ms.m_dwExtend = 1; 167 ms.m_dwExtend = 1;
168 } 168 }
169 IFWL_WidgetDelegate* pDelegate = pPrev->SetDelegate(NULL); 169 IFWL_WidgetDelegate* pDelegate = pPrev->SetDelegate(NULL);
170 if (pDelegate) { 170 if (pDelegate) {
171 pDelegate->OnProcessMessage(&ms); 171 pDelegate->OnProcessMessage(&ms);
172 } 172 }
173 } 173 }
174 if (pFocus) { 174 if (pFocus) {
175 IFWL_Widget* pWidget = 175 IFWL_Widget* pWidget =
176 FWL_GetWidgetMgr()->GetWidget(pFocus, FWL_WGTRELATION_SystemForm); 176 CFWL_WidgetMgr::GetInstance()->GetSystemFormWidget(pFocus);
177 CFWL_FormImp* pForm = 177 CFWL_FormImp* pForm =
178 pWidget ? static_cast<CFWL_FormImp*>(pWidget->GetImpl()) : nullptr; 178 pWidget ? static_cast<CFWL_FormImp*>(pWidget->GetImpl()) : nullptr;
179 if (pForm) { 179 if (pForm) {
180 CFWL_WidgetImp* pNewFocus = 180 CFWL_WidgetImp* pNewFocus =
181 static_cast<CFWL_WidgetImp*>(pFocus->GetImpl()); 181 static_cast<CFWL_WidgetImp*>(pFocus->GetImpl());
182 pForm->SetSubFocus(pNewFocus); 182 pForm->SetSubFocus(pNewFocus);
183 } 183 }
184 CFWL_MsgSetFocus ms; 184 CFWL_MsgSetFocus ms;
185 ms.m_pDstTarget = pFocus; 185 ms.m_pDstTarget = pFocus;
186 if (bNotify) { 186 if (bNotify) {
187 ms.m_dwExtend = 1; 187 ms.m_dwExtend = 1;
188 } 188 }
189 IFWL_WidgetDelegate* pDelegate = pFocus->SetDelegate(NULL); 189 IFWL_WidgetDelegate* pDelegate = pFocus->SetDelegate(NULL);
190 if (pDelegate) { 190 if (pDelegate) {
191 pDelegate->OnProcessMessage(&ms); 191 pDelegate->OnProcessMessage(&ms);
192 } 192 }
193 } 193 }
194 return TRUE; 194 return TRUE;
195 } 195 }
196 FWL_Error CFWL_NoteDriver::Run() { 196 FWL_Error CFWL_NoteDriver::Run() {
197 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); 197 CFWL_WidgetMgr* pWidgetMgr = CFWL_WidgetMgr::GetInstance();
198 if (!pWidgetMgr) 198 if (!pWidgetMgr)
199 return FWL_Error::Indefinite; 199 return FWL_Error::Indefinite;
200 200
201 #if (_FX_OS_ == _FX_LINUX_DESKTOP_ || _FX_OS_ == _FX_WIN32_DESKTOP_ || \ 201 #if (_FX_OS_ == _FX_LINUX_DESKTOP_ || _FX_OS_ == _FX_WIN32_DESKTOP_ || \
202 _FX_OS_ == _FX_WIN64_) 202 _FX_OS_ == _FX_WIN64_)
203 CFWL_NoteLoop* pTopLoop = NULL; 203 CFWL_NoteLoop* pTopLoop = NULL;
204 for (;;) { 204 for (;;) {
205 pTopLoop = GetTopLoop(); 205 pTopLoop = GetTopLoop();
206 if (!pTopLoop || !pTopLoop->ContinueModal()) 206 if (!pTopLoop || !pTopLoop->ContinueModal())
207 break; 207 break;
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 int32_t size = m_noteLoopQueue.GetSize(); 312 int32_t size = m_noteLoopQueue.GetSize();
313 if (size <= 0) 313 if (size <= 0)
314 return nullptr; 314 return nullptr;
315 return static_cast<CFWL_NoteLoop*>(m_noteLoopQueue[size - 1]); 315 return static_cast<CFWL_NoteLoop*>(m_noteLoopQueue[size - 1]);
316 } 316 }
317 int32_t CFWL_NoteDriver::CountLoop() { 317 int32_t CFWL_NoteDriver::CountLoop() {
318 return m_noteLoopQueue.GetSize(); 318 return m_noteLoopQueue.GetSize();
319 } 319 }
320 320
321 FX_BOOL CFWL_NoteDriver::ProcessMessage(CFWL_Message* pMessage) { 321 FX_BOOL CFWL_NoteDriver::ProcessMessage(CFWL_Message* pMessage) {
322 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); 322 CFWL_WidgetMgr* pWidgetMgr = CFWL_WidgetMgr::GetInstance();
323 IFWL_Widget* pMessageForm = pWidgetMgr->IsFormDisabled() 323 IFWL_Widget* pMessageForm = pWidgetMgr->IsFormDisabled()
324 ? pMessage->m_pDstTarget 324 ? pMessage->m_pDstTarget
325 : GetMessageForm(pMessage->m_pDstTarget); 325 : GetMessageForm(pMessage->m_pDstTarget);
326 if (!pMessageForm) 326 if (!pMessageForm)
327 return FALSE; 327 return FALSE;
328 if (DispatchMessage(pMessage, pMessageForm)) { 328 if (DispatchMessage(pMessage, pMessageForm)) {
329 if (pMessage->GetClassID() == CFWL_MessageType::Mouse) 329 if (pMessage->GetClassID() == CFWL_MessageType::Mouse)
330 MouseSecondary(static_cast<CFWL_MsgMouse*>(pMessage)); 330 MouseSecondary(static_cast<CFWL_MsgMouse*>(pMessage));
331 return TRUE; 331 return TRUE;
332 } 332 }
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 if (pDst == pMessageForm && pDst->IsInstance(L"FWL_FORMPROXY")) { 429 if (pDst == pMessageForm && pDst->IsInstance(L"FWL_FORMPROXY")) {
430 return TRUE; 430 return TRUE;
431 } 431 }
432 #endif 432 #endif
433 return pDst != pMessageForm && 433 return pDst != pMessageForm &&
434 !pDst->IsInstance(FX_WSTRC(L"FWL_FORMPROXY")) && 434 !pDst->IsInstance(FX_WSTRC(L"FWL_FORMPROXY")) &&
435 !pMessageForm->IsInstance(FX_WSTRC(L"FWL_FORMPROXY")); 435 !pMessageForm->IsInstance(FX_WSTRC(L"FWL_FORMPROXY"));
436 } 436 }
437 FX_BOOL CFWL_NoteDriver::DoSetFocus(CFWL_MsgSetFocus* pMsg, 437 FX_BOOL CFWL_NoteDriver::DoSetFocus(CFWL_MsgSetFocus* pMsg,
438 IFWL_Widget* pMessageForm) { 438 IFWL_Widget* pMessageForm) {
439 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); 439 CFWL_WidgetMgr* pWidgetMgr = CFWL_WidgetMgr::GetInstance();
440 if (pWidgetMgr->IsFormDisabled()) { 440 if (pWidgetMgr->IsFormDisabled()) {
441 m_pFocus = pMsg->m_pDstTarget; 441 m_pFocus = pMsg->m_pDstTarget;
442 return TRUE; 442 return TRUE;
443 } else { 443 }
444 IFWL_Widget* pWidget = pMsg->m_pDstTarget; 444 IFWL_Widget* pWidget = pMsg->m_pDstTarget;
445 CFWL_FormImp* pForm = 445 CFWL_FormImp* pForm =
446 pWidget ? static_cast<CFWL_FormImp*>(pWidget->GetImpl()) : nullptr; 446 pWidget ? static_cast<CFWL_FormImp*>(pWidget->GetImpl()) : nullptr;
447 if (pForm) { 447 if (pForm) {
448 CFWL_WidgetImp* pSubFocus = pForm->GetSubFocus(); 448 CFWL_WidgetImp* pSubFocus = pForm->GetSubFocus();
449 if (pSubFocus && ((pSubFocus->GetStates() & FWL_WGTSTATE_Focused) == 0)) { 449 if (pSubFocus && ((pSubFocus->GetStates() & FWL_WGTSTATE_Focused) == 0)) {
450 pMsg->m_pDstTarget = pSubFocus->GetInterface(); 450 pMsg->m_pDstTarget = pSubFocus->GetInterface();
451 if (m_pFocus != pMsg->m_pDstTarget) { 451 if (m_pFocus != pMsg->m_pDstTarget) {
452 m_pFocus = pMsg->m_pDstTarget; 452 m_pFocus = pMsg->m_pDstTarget;
453 return TRUE; 453 return TRUE;
454 }
455 } 454 }
456 } 455 }
457 } 456 }
458 return FALSE; 457 return FALSE;
459 } 458 }
460 FX_BOOL CFWL_NoteDriver::DoKillFocus(CFWL_MsgKillFocus* pMsg, 459 FX_BOOL CFWL_NoteDriver::DoKillFocus(CFWL_MsgKillFocus* pMsg,
461 IFWL_Widget* pMessageForm) { 460 IFWL_Widget* pMessageForm) {
462 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); 461 CFWL_WidgetMgr* pWidgetMgr = CFWL_WidgetMgr::GetInstance();
463 if (pWidgetMgr->IsFormDisabled()) { 462 if (pWidgetMgr->IsFormDisabled()) {
464 if (m_pFocus == pMsg->m_pDstTarget) { 463 if (m_pFocus == pMsg->m_pDstTarget) {
465 m_pFocus = NULL; 464 m_pFocus = NULL;
466 } 465 }
467 return TRUE; 466 return TRUE;
468 } 467 }
469 IFWL_Widget* pWidget = pMsg->m_pDstTarget; 468 IFWL_Widget* pWidget = pMsg->m_pDstTarget;
470 CFWL_FormImp* pForm = 469 CFWL_FormImp* pForm =
471 pWidget ? static_cast<CFWL_FormImp*>(pWidget->GetImpl()) : nullptr; 470 pWidget ? static_cast<CFWL_FormImp*>(pWidget->GetImpl()) : nullptr;
472 if (pForm) { 471 if (pForm) {
473 CFWL_WidgetImp* pSubFocus = pForm->GetSubFocus(); 472 CFWL_WidgetImp* pSubFocus = pForm->GetSubFocus();
474 if (pSubFocus && (pSubFocus->GetStates() & FWL_WGTSTATE_Focused)) { 473 if (pSubFocus && (pSubFocus->GetStates() & FWL_WGTSTATE_Focused)) {
475 pMsg->m_pDstTarget = pSubFocus->GetInterface(); 474 pMsg->m_pDstTarget = pSubFocus->GetInterface();
476 if (m_pFocus == pMsg->m_pDstTarget) { 475 if (m_pFocus == pMsg->m_pDstTarget) {
477 m_pFocus = NULL; 476 m_pFocus = NULL;
478 return TRUE; 477 return TRUE;
479 } 478 }
480 } 479 }
481 } 480 }
482 return FALSE; 481 return FALSE;
483 } 482 }
484 FX_BOOL CFWL_NoteDriver::DoKey(CFWL_MsgKey* pMsg, IFWL_Widget* pMessageForm) { 483 FX_BOOL CFWL_NoteDriver::DoKey(CFWL_MsgKey* pMsg, IFWL_Widget* pMessageForm) {
485 #if (_FX_OS_ != _FX_MACOSX_) 484 #if (_FX_OS_ != _FX_MACOSX_)
486 if (pMsg->m_dwCmd == FWL_KeyCommand::KeyDown && 485 if (pMsg->m_dwCmd == FWL_KeyCommand::KeyDown &&
487 pMsg->m_dwKeyCode == FWL_VKEY_Tab) { 486 pMsg->m_dwKeyCode == FWL_VKEY_Tab) {
488 CFWL_WidgetMgr* pWidgetMgr = 487 CFWL_WidgetMgr* pWidgetMgr = CFWL_WidgetMgr::GetInstance();
489 static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr());
490 IFWL_Widget* pForm = GetMessageForm(pMsg->m_pDstTarget); 488 IFWL_Widget* pForm = GetMessageForm(pMsg->m_pDstTarget);
491 IFWL_Widget* pFocus = m_pFocus; 489 IFWL_Widget* pFocus = m_pFocus;
492 if (m_pFocus) { 490 if (m_pFocus) {
493 if (pWidgetMgr->GetWidget(m_pFocus, FWL_WGTRELATION_SystemForm) != 491 if (pWidgetMgr->GetSystemFormWidget(m_pFocus) != pForm)
494 pForm) { 492 pFocus = nullptr;
495 pFocus = NULL;
496 }
497 } 493 }
498 FX_BOOL bFind = FALSE; 494 FX_BOOL bFind = FALSE;
499 IFWL_Widget* pNextTabStop = pWidgetMgr->nextTab(pForm, pFocus, bFind); 495 IFWL_Widget* pNextTabStop = pWidgetMgr->nextTab(pForm, pFocus, bFind);
500 if (!pNextTabStop) { 496 if (!pNextTabStop) {
501 bFind = FALSE; 497 bFind = FALSE;
502 pNextTabStop = pWidgetMgr->nextTab(pForm, NULL, bFind); 498 pNextTabStop = pWidgetMgr->nextTab(pForm, nullptr, bFind);
503 } 499 }
504 if (pNextTabStop == pFocus) { 500 if (pNextTabStop == pFocus) {
505 return TRUE; 501 return TRUE;
506 } 502 }
507 if (pNextTabStop) { 503 if (pNextTabStop) {
508 SetFocus(pNextTabStop); 504 SetFocus(pNextTabStop);
509 } 505 }
510 return TRUE; 506 return TRUE;
511 } 507 }
512 #endif 508 #endif
513 if (!m_pFocus) { 509 if (!m_pFocus) {
514 if (pMsg->m_dwCmd == FWL_KeyCommand::KeyDown && 510 if (pMsg->m_dwCmd == FWL_KeyCommand::KeyDown &&
515 pMsg->m_dwKeyCode == FWL_VKEY_Return) { 511 pMsg->m_dwKeyCode == FWL_VKEY_Return) {
516 CFWL_WidgetMgr* pWidgetMgr = 512 CFWL_WidgetMgr* pWidgetMgr = CFWL_WidgetMgr::GetInstance();
517 static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr());
518 IFWL_Widget* defButton = pWidgetMgr->GetDefaultButton(pMessageForm); 513 IFWL_Widget* defButton = pWidgetMgr->GetDefaultButton(pMessageForm);
519 if (defButton) { 514 if (defButton) {
520 pMsg->m_pDstTarget = defButton; 515 pMsg->m_pDstTarget = defButton;
521 return TRUE; 516 return TRUE;
522 } 517 }
523 } 518 }
524 return FALSE; 519 return FALSE;
525 } 520 }
526 pMsg->m_pDstTarget = m_pFocus; 521 pMsg->m_pDstTarget = m_pFocus;
527 return TRUE; 522 return TRUE;
528 } 523 }
529 FX_BOOL CFWL_NoteDriver::DoMouse(CFWL_MsgMouse* pMsg, 524 FX_BOOL CFWL_NoteDriver::DoMouse(CFWL_MsgMouse* pMsg,
530 IFWL_Widget* pMessageForm) { 525 IFWL_Widget* pMessageForm) {
531 if (pMsg->m_dwCmd == FWL_MouseCommand::Leave || 526 if (pMsg->m_dwCmd == FWL_MouseCommand::Leave ||
532 pMsg->m_dwCmd == FWL_MouseCommand::Hover || 527 pMsg->m_dwCmd == FWL_MouseCommand::Hover ||
533 pMsg->m_dwCmd == FWL_MouseCommand::Enter) { 528 pMsg->m_dwCmd == FWL_MouseCommand::Enter) {
534 return pMsg->m_pDstTarget != NULL; 529 return pMsg->m_pDstTarget != NULL;
535 } 530 }
536 if (pMsg->m_pDstTarget != pMessageForm) { 531 if (pMsg->m_pDstTarget != pMessageForm) {
537 pMsg->m_pDstTarget->TransformTo(pMessageForm, pMsg->m_fx, pMsg->m_fy); 532 pMsg->m_pDstTarget->TransformTo(pMessageForm, pMsg->m_fx, pMsg->m_fy);
538 } 533 }
539 if (!DoMouseEx(pMsg, pMessageForm)) { 534 if (!DoMouseEx(pMsg, pMessageForm)) {
540 pMsg->m_pDstTarget = pMessageForm; 535 pMsg->m_pDstTarget = pMessageForm;
541 } 536 }
542 return TRUE; 537 return TRUE;
543 } 538 }
544 FX_BOOL CFWL_NoteDriver::DoWheel(CFWL_MsgMouseWheel* pMsg, 539 FX_BOOL CFWL_NoteDriver::DoWheel(CFWL_MsgMouseWheel* pMsg,
545 IFWL_Widget* pMessageForm) { 540 IFWL_Widget* pMessageForm) {
546 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); 541 CFWL_WidgetMgr* pWidgetMgr = CFWL_WidgetMgr::GetInstance();
547 if (!pWidgetMgr) 542 if (!pWidgetMgr)
548 return FALSE; 543 return FALSE;
549 544
550 IFWL_Widget* pDst = 545 IFWL_Widget* pDst =
551 pWidgetMgr->GetWidgetAtPoint(pMessageForm, pMsg->m_fx, pMsg->m_fy); 546 pWidgetMgr->GetWidgetAtPoint(pMessageForm, pMsg->m_fx, pMsg->m_fy);
552 if (!pDst) 547 if (!pDst)
553 return FALSE; 548 return FALSE;
554 549
555 pMessageForm->TransformTo(pDst, pMsg->m_fx, pMsg->m_fy); 550 pMessageForm->TransformTo(pDst, pMsg->m_fx, pMsg->m_fy);
556 pMsg->m_pDstTarget = pDst; 551 pMsg->m_pDstTarget = pDst;
557 return TRUE; 552 return TRUE;
558 } 553 }
559 FX_BOOL CFWL_NoteDriver::DoSize(CFWL_MsgSize* pMsg) { 554 FX_BOOL CFWL_NoteDriver::DoSize(CFWL_MsgSize* pMsg) {
560 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); 555 CFWL_WidgetMgr* pWidgetMgr = CFWL_WidgetMgr::GetInstance();
561 if (!pWidgetMgr) 556 if (!pWidgetMgr)
562 return FALSE; 557 return FALSE;
563 pWidgetMgr->NotifySizeChanged(pMsg->m_pDstTarget, (FX_FLOAT)pMsg->m_iWidth, 558 pWidgetMgr->NotifySizeChanged(pMsg->m_pDstTarget, (FX_FLOAT)pMsg->m_iWidth,
564 (FX_FLOAT)pMsg->m_iHeight); 559 (FX_FLOAT)pMsg->m_iHeight);
565 return TRUE; 560 return TRUE;
566 } 561 }
567 FX_BOOL CFWL_NoteDriver::DoWindowMove(CFWL_MsgWindowMove* pMsg, 562 FX_BOOL CFWL_NoteDriver::DoWindowMove(CFWL_MsgWindowMove* pMsg,
568 IFWL_Widget* pMessageForm) { 563 IFWL_Widget* pMessageForm) {
569 return pMsg->m_pDstTarget == pMessageForm; 564 return pMsg->m_pDstTarget == pMessageForm;
570 } 565 }
571 FX_BOOL CFWL_NoteDriver::DoDragFiles(CFWL_MsgDropFiles* pMsg, 566 FX_BOOL CFWL_NoteDriver::DoDragFiles(CFWL_MsgDropFiles* pMsg,
572 IFWL_Widget* pMessageForm) { 567 IFWL_Widget* pMessageForm) {
573 return pMsg->m_pDstTarget == pMessageForm; 568 return pMsg->m_pDstTarget == pMessageForm;
574 } 569 }
575 FX_BOOL CFWL_NoteDriver::DoMouseEx(CFWL_MsgMouse* pMsg, 570 FX_BOOL CFWL_NoteDriver::DoMouseEx(CFWL_MsgMouse* pMsg,
576 IFWL_Widget* pMessageForm) { 571 IFWL_Widget* pMessageForm) {
577 CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); 572 CFWL_WidgetMgr* pWidgetMgr = CFWL_WidgetMgr::GetInstance();
578 if (!pWidgetMgr) 573 if (!pWidgetMgr)
579 return FALSE; 574 return FALSE;
580 IFWL_Widget* pTarget = NULL; 575 IFWL_Widget* pTarget = NULL;
581 if (m_pGrab) 576 if (m_pGrab)
582 pTarget = m_pGrab; 577 pTarget = m_pGrab;
583 if (!pTarget) { 578 if (!pTarget) {
584 pTarget = 579 pTarget =
585 pWidgetMgr->GetWidgetAtPoint(pMessageForm, pMsg->m_fx, pMsg->m_fy); 580 pWidgetMgr->GetWidgetAtPoint(pMessageForm, pMsg->m_fx, pMsg->m_fy);
586 } 581 }
587 if (pTarget) { 582 if (pTarget) {
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
648 return nullptr; 643 return nullptr;
649 IFWL_Widget* pMessageForm = nullptr; 644 IFWL_Widget* pMessageForm = nullptr;
650 if (iTrackLoop > 1) { 645 if (iTrackLoop > 1) {
651 CFWL_NoteLoop* pNootLoop = 646 CFWL_NoteLoop* pNootLoop =
652 static_cast<CFWL_NoteLoop*>(m_noteLoopQueue[iTrackLoop - 1]); 647 static_cast<CFWL_NoteLoop*>(m_noteLoopQueue[iTrackLoop - 1]);
653 pMessageForm = pNootLoop->GetForm()->GetInterface(); 648 pMessageForm = pNootLoop->GetForm()->GetInterface();
654 } else if (m_forms.Find(pDstTarget->GetImpl()) < 0) { 649 } else if (m_forms.Find(pDstTarget->GetImpl()) < 0) {
655 pMessageForm = pDstTarget; 650 pMessageForm = pDstTarget;
656 } 651 }
657 if (!pMessageForm && pDstTarget) { 652 if (!pMessageForm && pDstTarget) {
658 CFWL_WidgetMgr* pWidgetMgr = 653 CFWL_WidgetMgr* pWidgetMgr = CFWL_WidgetMgr::GetInstance();
659 static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr());
660 if (!pWidgetMgr) 654 if (!pWidgetMgr)
661 return nullptr; 655 return nullptr;
662 pMessageForm = 656 pMessageForm = pWidgetMgr->GetSystemFormWidget(pDstTarget);
663 pWidgetMgr->GetWidget(pDstTarget, FWL_WGTRELATION_SystemForm);
664 } 657 }
665 return pMessageForm; 658 return pMessageForm;
666 } 659 }
667 660
668 void CFWL_NoteDriver::ClearInvalidEventTargets(FX_BOOL bRemoveAll) { 661 void CFWL_NoteDriver::ClearInvalidEventTargets(FX_BOOL bRemoveAll) {
669 auto it = m_eventTargets.begin(); 662 auto it = m_eventTargets.begin();
670 while (it != m_eventTargets.end()) { 663 while (it != m_eventTargets.end()) {
671 auto old = it++; 664 auto old = it++;
672 if (old->second && (bRemoveAll || old->second->IsInvalid())) { 665 if (old->second && (bRemoveAll || old->second->IsInvalid())) {
673 delete old->second; 666 delete old->second;
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
895 if (HasToolTip(pEvt->m_pDstTarget) && NULL != m_pToolTipImp) { 888 if (HasToolTip(pEvt->m_pDstTarget) && NULL != m_pToolTipImp) {
896 m_pToolTipImp->Hide(); 889 m_pToolTipImp->Hide();
897 pCurTarget = NULL; 890 pCurTarget = NULL;
898 return TRUE; 891 return TRUE;
899 } 892 }
900 return FALSE; 893 return FALSE;
901 } 894 }
902 IFWL_ToolTipTarget* CFWL_ToolTipContainer::GetCurrentToolTipTarget() { 895 IFWL_ToolTipTarget* CFWL_ToolTipContainer::GetCurrentToolTipTarget() {
903 return pCurTarget; 896 return pCurTarget;
904 } 897 }
OLDNEW
« no previous file with comments | « xfa/fwl/core/fwl_formimp.cpp ('k') | xfa/fwl/core/fwl_widgetimp.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698