| 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" |
| 11 #include "xfa/fwl/basewidget/ifwl_tooltip.h" | 11 #include "xfa/fwl/basewidget/ifwl_tooltip.h" |
| 12 #include "xfa/fwl/core/cfwl_message.h" | 12 #include "xfa/fwl/core/cfwl_message.h" |
| 13 #include "xfa/fwl/core/fwl_appimp.h" | 13 #include "xfa/fwl/core/fwl_appimp.h" |
| 14 #include "xfa/fwl/core/fwl_formimp.h" | 14 #include "xfa/fwl/core/fwl_formimp.h" |
| 15 #include "xfa/fwl/core/fwl_targetimp.h" | |
| 16 #include "xfa/fwl/core/fwl_threadimp.h" | |
| 17 #include "xfa/fwl/core/fwl_widgetimp.h" | 15 #include "xfa/fwl/core/fwl_widgetimp.h" |
| 18 #include "xfa/fwl/core/fwl_widgetmgrimp.h" | 16 #include "xfa/fwl/core/fwl_widgetmgrimp.h" |
| 19 #include "xfa/fwl/core/ifwl_adapterwidgetmgr.h" | 17 #include "xfa/fwl/core/ifwl_adapterwidgetmgr.h" |
| 20 #include "xfa/fwl/core/ifwl_app.h" | 18 #include "xfa/fwl/core/ifwl_app.h" |
| 21 #include "xfa/fwl/core/ifwl_tooltiptarget.h" | 19 #include "xfa/fwl/core/ifwl_tooltiptarget.h" |
| 22 | 20 |
| 23 CFWL_NoteLoop::CFWL_NoteLoop(CFWL_WidgetImp* pForm) | 21 CFWL_NoteLoop::CFWL_NoteLoop(CFWL_WidgetImp* pForm) |
| 24 : m_pForm(pForm), m_bContinueModal(TRUE) {} | 22 : m_pForm(pForm), m_bContinueModal(TRUE) {} |
| 25 | 23 |
| 26 FWL_ERR CFWL_NoteLoop::Idle(int32_t count) { | 24 FWL_ERR CFWL_NoteLoop::Idle(int32_t count) { |
| 27 #if (_FX_OS_ == _FX_WIN32_DESKTOP_) | 25 #if (_FX_OS_ == _FX_WIN32_DESKTOP_) |
| 28 if (count <= 0) { | 26 if (count <= 0) { |
| 29 #endif | 27 #endif |
| 30 CFWL_EvtIdle ev; | 28 CFWL_EvtIdle ev; |
| 31 IFWL_App* pApp = FWL_GetApp(); | 29 IFWL_App* pApp = FWL_GetApp(); |
| 32 if (!pApp) | 30 if (!pApp) |
| 33 return FWL_ERR_Indefinite; | 31 return FWL_ERR_Indefinite; |
| 34 IFWL_NoteDriver* pDriver = pApp->GetNoteDriver(); | 32 CFWL_NoteDriver* pDriver = pApp->GetNoteDriver(); |
| 35 if (!pDriver) | 33 if (!pDriver) |
| 36 return FWL_ERR_Indefinite; | 34 return FWL_ERR_Indefinite; |
| 37 pDriver->SendEvent(&ev); | 35 pDriver->SendEvent(&ev); |
| 38 #if (_FX_OS_ == _FX_WIN32_DESKTOP_) | 36 #if (_FX_OS_ == _FX_WIN32_DESKTOP_) |
| 39 } | 37 } |
| 40 #endif | 38 #endif |
| 41 return FWL_ERR_Indefinite; | 39 return FWL_ERR_Indefinite; |
| 42 } | 40 } |
| 43 CFWL_WidgetImp* CFWL_NoteLoop::GetForm() { | 41 CFWL_WidgetImp* CFWL_NoteLoop::GetForm() { |
| 44 return m_pForm; | 42 return m_pForm; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 56 return FWL_ERR_Succeeded; | 54 return FWL_ERR_Succeeded; |
| 57 } | 55 } |
| 58 | 56 |
| 59 FWL_ERR CFWL_NoteLoop::SetMainForm(CFWL_WidgetImp* pForm) { | 57 FWL_ERR CFWL_NoteLoop::SetMainForm(CFWL_WidgetImp* pForm) { |
| 60 m_pForm = pForm; | 58 m_pForm = pForm; |
| 61 return FWL_ERR_Succeeded; | 59 return FWL_ERR_Succeeded; |
| 62 } | 60 } |
| 63 void CFWL_NoteLoop::GenerateCommondEvent(uint32_t dwCommand) { | 61 void CFWL_NoteLoop::GenerateCommondEvent(uint32_t dwCommand) { |
| 64 CFWL_EvtMenuCommand ev; | 62 CFWL_EvtMenuCommand ev; |
| 65 ev.m_iCommand = dwCommand; | 63 ev.m_iCommand = dwCommand; |
| 66 IFWL_Thread* pThread = m_pForm->GetOwnerThread(); | 64 IFWL_App* pApp = m_pForm->GetOwnerApp(); |
| 67 if (!pThread) | 65 if (!pApp) |
| 68 return; | 66 return; |
| 69 IFWL_NoteDriver* pDriver = pThread->GetNoteDriver(); | 67 |
| 68 CFWL_NoteDriver* pDriver = pApp->GetNoteDriver(); |
| 70 if (!pDriver) | 69 if (!pDriver) |
| 71 return; | 70 return; |
| 71 |
| 72 pDriver->SendEvent(&ev); | 72 pDriver->SendEvent(&ev); |
| 73 } | 73 } |
| 74 CFWL_NoteDriver::CFWL_NoteDriver() | 74 CFWL_NoteDriver::CFWL_NoteDriver() |
| 75 : m_sendEventCalled(0), | 75 : m_sendEventCalled(0), |
| 76 m_pHover(nullptr), | 76 m_pHover(nullptr), |
| 77 m_pFocus(nullptr), | 77 m_pFocus(nullptr), |
| 78 m_pGrab(nullptr) { | 78 m_pGrab(nullptr) { |
| 79 m_pNoteLoop = new CFWL_NoteLoop; | 79 m_pNoteLoop = new CFWL_NoteLoop; |
| 80 PushNoteLoop(m_pNoteLoop); | 80 PushNoteLoop(m_pNoteLoop); |
| 81 } | 81 } |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 } | 146 } |
| 147 CFWL_EventTarget* value = NULL; | 147 CFWL_EventTarget* value = NULL; |
| 148 if (m_eventTargets.Lookup((void*)(uintptr_t)dwkey, (void*&)value)) { | 148 if (m_eventTargets.Lookup((void*)(uintptr_t)dwkey, (void*&)value)) { |
| 149 value->FlagInvalid(); | 149 value->FlagInvalid(); |
| 150 } | 150 } |
| 151 return FWL_ERR_Succeeded; | 151 return FWL_ERR_Succeeded; |
| 152 } | 152 } |
| 153 void CFWL_NoteDriver::ClearEventTargets(FX_BOOL bRemoveAll) { | 153 void CFWL_NoteDriver::ClearEventTargets(FX_BOOL bRemoveAll) { |
| 154 ClearInvalidEventTargets(bRemoveAll); | 154 ClearInvalidEventTargets(bRemoveAll); |
| 155 } | 155 } |
| 156 IFWL_Thread* CFWL_NoteDriver::GetOwnerThread() const { | 156 IFWL_App* CFWL_NoteDriver::GetOwnerApp() const { |
| 157 return FWL_GetApp(); | 157 return FWL_GetApp(); |
| 158 } | 158 } |
| 159 FWL_ERR CFWL_NoteDriver::PushNoteLoop(IFWL_NoteLoop* pNoteLoop) { | 159 FWL_ERR CFWL_NoteDriver::PushNoteLoop(CFWL_NoteLoop* pNoteLoop) { |
| 160 m_noteLoopQueue.Add(pNoteLoop); | 160 m_noteLoopQueue.Add(pNoteLoop); |
| 161 return FWL_ERR_Succeeded; | 161 return FWL_ERR_Succeeded; |
| 162 } | 162 } |
| 163 IFWL_NoteLoop* CFWL_NoteDriver::PopNoteLoop() { | 163 CFWL_NoteLoop* CFWL_NoteDriver::PopNoteLoop() { |
| 164 int32_t pos = m_noteLoopQueue.GetSize(); | 164 int32_t pos = m_noteLoopQueue.GetSize(); |
| 165 if (pos <= 0) | 165 if (pos <= 0) |
| 166 return NULL; | 166 return nullptr; |
| 167 IFWL_NoteLoop* p = m_noteLoopQueue.GetAt(pos - 1); | 167 |
| 168 CFWL_NoteLoop* p = m_noteLoopQueue.GetAt(pos - 1); |
| 168 m_noteLoopQueue.RemoveAt(pos - 1); | 169 m_noteLoopQueue.RemoveAt(pos - 1); |
| 169 return p; | 170 return p; |
| 170 } | 171 } |
| 171 FX_BOOL CFWL_NoteDriver::SetFocus(IFWL_Widget* pFocus, FX_BOOL bNotify) { | 172 FX_BOOL CFWL_NoteDriver::SetFocus(IFWL_Widget* pFocus, FX_BOOL bNotify) { |
| 172 if (m_pFocus == pFocus) { | 173 if (m_pFocus == pFocus) { |
| 173 return TRUE; | 174 return TRUE; |
| 174 } | 175 } |
| 175 IFWL_Widget* pPrev = m_pFocus; | 176 IFWL_Widget* pPrev = m_pFocus; |
| 176 m_pFocus = pFocus; | 177 m_pFocus = pFocus; |
| 177 if (pPrev) { | 178 if (pPrev) { |
| (...skipping 789 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 967 if (HasToolTip(pEvt->m_pDstTarget) && NULL != m_pToolTipImp) { | 968 if (HasToolTip(pEvt->m_pDstTarget) && NULL != m_pToolTipImp) { |
| 968 m_pToolTipImp->Hide(); | 969 m_pToolTipImp->Hide(); |
| 969 pCurTarget = NULL; | 970 pCurTarget = NULL; |
| 970 return TRUE; | 971 return TRUE; |
| 971 } | 972 } |
| 972 return FALSE; | 973 return FALSE; |
| 973 } | 974 } |
| 974 IFWL_ToolTipTarget* CFWL_ToolTipContainer::GetCurrentToolTipTarget() { | 975 IFWL_ToolTipTarget* CFWL_ToolTipContainer::GetCurrentToolTipTarget() { |
| 975 return pCurTarget; | 976 return pCurTarget; |
| 976 } | 977 } |
| OLD | NEW |