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/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 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 IFWL_Thread* pThread = m_pForm->GetOwnerThread(); | 66 IFWL_Thread* pThread = m_pForm->GetOwnerThread(); |
67 if (!pThread) | 67 if (!pThread) |
68 return; | 68 return; |
69 IFWL_NoteDriver* pDriver = pThread->GetNoteDriver(); | 69 IFWL_NoteDriver* pDriver = pThread->GetNoteDriver(); |
70 if (!pDriver) | 70 if (!pDriver) |
71 return; | 71 return; |
72 pDriver->SendNote(&ev); | 72 pDriver->SendNote(&ev); |
73 } | 73 } |
74 CFWL_NoteDriver::CFWL_NoteDriver() | 74 CFWL_NoteDriver::CFWL_NoteDriver() |
75 : m_sendEventCalled(0), | 75 : m_sendEventCalled(0), |
76 m_bFullScreen(FALSE), | |
77 m_pHover(nullptr), | 76 m_pHover(nullptr), |
78 m_pFocus(nullptr), | 77 m_pFocus(nullptr), |
79 m_pGrab(nullptr) { | 78 m_pGrab(nullptr) { |
80 m_pNoteLoop = new CFWL_NoteLoop; | 79 m_pNoteLoop = new CFWL_NoteLoop; |
81 PushNoteLoop(m_pNoteLoop); | 80 PushNoteLoop(m_pNoteLoop); |
82 } | 81 } |
83 CFWL_NoteDriver::~CFWL_NoteDriver() { | 82 CFWL_NoteDriver::~CFWL_NoteDriver() { |
84 delete m_pNoteLoop; | 83 delete m_pNoteLoop; |
85 ClearInvalidEventTargets(TRUE); | 84 ClearInvalidEventTargets(TRUE); |
86 } | 85 } |
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
319 continue; | 318 continue; |
320 } | 319 } |
321 CFWL_WidgetImp* pSubFocus = pForm->GetSubFocus(); | 320 CFWL_WidgetImp* pSubFocus = pForm->GetSubFocus(); |
322 if (!pSubFocus) | 321 if (!pSubFocus) |
323 return; | 322 return; |
324 if (pSubFocus && pSubFocus->GetInterface() == pNoteTarget) { | 323 if (pSubFocus && pSubFocus->GetInterface() == pNoteTarget) { |
325 pForm->SetSubFocus(NULL); | 324 pForm->SetSubFocus(NULL); |
326 } | 325 } |
327 } | 326 } |
328 } | 327 } |
329 void CFWL_NoteDriver::NotifyFullScreenMode(IFWL_Widget* pNoteTarget, | 328 |
330 FX_BOOL bFullScreen) { | |
331 m_bFullScreen = bFullScreen; | |
332 } | |
333 FWL_ERR CFWL_NoteDriver::RegisterForm(CFWL_WidgetImp* pForm) { | 329 FWL_ERR CFWL_NoteDriver::RegisterForm(CFWL_WidgetImp* pForm) { |
334 if (!pForm) | 330 if (!pForm) |
335 return FWL_ERR_Indefinite; | 331 return FWL_ERR_Indefinite; |
336 if (m_forms.Find(pForm) >= 0) { | 332 if (m_forms.Find(pForm) >= 0) { |
337 return FWL_ERR_Indefinite; | 333 return FWL_ERR_Indefinite; |
338 } | 334 } |
339 m_forms.Add(pForm); | 335 m_forms.Add(pForm); |
340 if (m_forms.GetSize() == 1) { | 336 if (m_forms.GetSize() == 1) { |
341 CFWL_NoteLoop* pLoop = | 337 CFWL_NoteLoop* pLoop = |
342 static_cast<CFWL_NoteLoop*>(m_noteLoopQueue.GetAt(0)); | 338 static_cast<CFWL_NoteLoop*>(m_noteLoopQueue.GetAt(0)); |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
461 if (bRet) { | 457 if (bRet) { |
462 IFWL_WidgetDelegate* pDelegate = pMessage->m_pDstTarget->SetDelegate(NULL); | 458 IFWL_WidgetDelegate* pDelegate = pMessage->m_pDstTarget->SetDelegate(NULL); |
463 if (pDelegate) { | 459 if (pDelegate) { |
464 pDelegate->OnProcessMessage(pMessage); | 460 pDelegate->OnProcessMessage(pMessage); |
465 } | 461 } |
466 } | 462 } |
467 return bRet; | 463 return bRet; |
468 } | 464 } |
469 FX_BOOL CFWL_NoteDriver::DoActivate(CFWL_MsgActivate* pMsg, | 465 FX_BOOL CFWL_NoteDriver::DoActivate(CFWL_MsgActivate* pMsg, |
470 IFWL_Widget* pMessageForm) { | 466 IFWL_Widget* pMessageForm) { |
471 if (m_bFullScreen) { | |
472 return FALSE; | |
473 } | |
474 pMsg->m_pDstTarget = pMessageForm; | 467 pMsg->m_pDstTarget = pMessageForm; |
475 return (pMsg->m_pDstTarget)->GetStates() & FWL_WGTSTATE_Deactivated; | 468 return (pMsg->m_pDstTarget)->GetStates() & FWL_WGTSTATE_Deactivated; |
476 } | 469 } |
477 FX_BOOL CFWL_NoteDriver::DoDeactivate(CFWL_MsgDeactivate* pMsg, | 470 FX_BOOL CFWL_NoteDriver::DoDeactivate(CFWL_MsgDeactivate* pMsg, |
478 IFWL_Widget* pMessageForm) { | 471 IFWL_Widget* pMessageForm) { |
479 if (m_bFullScreen) { | |
480 return FALSE; | |
481 } | |
482 int32_t iTrackLoop = m_noteLoopQueue.GetSize(); | 472 int32_t iTrackLoop = m_noteLoopQueue.GetSize(); |
483 if (iTrackLoop <= 0) | 473 if (iTrackLoop <= 0) |
484 return FALSE; | 474 return FALSE; |
485 if (iTrackLoop == 1) { | 475 if (iTrackLoop == 1) { |
486 if (pMessageForm->IsInstance(FX_WSTRC(L"FWL_FORMPROXY"))) { | 476 if (pMessageForm->IsInstance(FX_WSTRC(L"FWL_FORMPROXY"))) { |
487 return FALSE; | 477 return FALSE; |
488 } | 478 } |
489 if (pMsg->m_pSrcTarget && | 479 if (pMsg->m_pSrcTarget && |
490 pMsg->m_pSrcTarget->IsInstance(FX_WSTRC(L"FWL_FORMPROXY"))) { | 480 pMsg->m_pSrcTarget->IsInstance(FX_WSTRC(L"FWL_FORMPROXY"))) { |
491 return FALSE; | 481 return FALSE; |
(...skipping 494 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
986 if (HasToolTip(pEvt->m_pDstTarget) && NULL != m_pToolTipImp) { | 976 if (HasToolTip(pEvt->m_pDstTarget) && NULL != m_pToolTipImp) { |
987 m_pToolTipImp->Hide(); | 977 m_pToolTipImp->Hide(); |
988 pCurTarget = NULL; | 978 pCurTarget = NULL; |
989 return TRUE; | 979 return TRUE; |
990 } | 980 } |
991 return FALSE; | 981 return FALSE; |
992 } | 982 } |
993 IFWL_ToolTipTarget* CFWL_ToolTipContainer::GetCurrentToolTipTarget() { | 983 IFWL_ToolTipTarget* CFWL_ToolTipContainer::GetCurrentToolTipTarget() { |
994 return pCurTarget; | 984 return pCurTarget; |
995 } | 985 } |
OLD | NEW |