| 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/fx_ext.h" | 9 #include "core/fxcrt/fx_ext.h" |
| 10 #include "third_party/base/ptr_util.h" | 10 #include "third_party/base/ptr_util.h" |
| 11 #include "third_party/base/stl_util.h" | 11 #include "third_party/base/stl_util.h" |
| 12 #include "xfa/fwl/core/cfwl_message.h" | 12 #include "xfa/fwl/core/cfwl_msgkey.h" |
| 13 #include "xfa/fwl/core/cfwl_msgkillfocus.h" |
| 14 #include "xfa/fwl/core/cfwl_msgmouse.h" |
| 15 #include "xfa/fwl/core/cfwl_msgmousewheel.h" |
| 16 #include "xfa/fwl/core/cfwl_msgsetfocus.h" |
| 13 #include "xfa/fwl/core/cfwl_widgetmgr.h" | 17 #include "xfa/fwl/core/cfwl_widgetmgr.h" |
| 14 #include "xfa/fwl/core/ifwl_app.h" | 18 #include "xfa/fwl/core/ifwl_app.h" |
| 15 #include "xfa/fwl/core/ifwl_tooltip.h" | 19 #include "xfa/fwl/core/ifwl_tooltip.h" |
| 16 | 20 |
| 17 CFWL_NoteLoop::CFWL_NoteLoop() : m_bContinueModal(true) {} | 21 CFWL_NoteLoop::CFWL_NoteLoop() : m_bContinueModal(true) {} |
| 18 | 22 |
| 19 CFWL_NoteDriver::CFWL_NoteDriver() | 23 CFWL_NoteDriver::CFWL_NoteDriver() |
| 20 : m_pHover(nullptr), | 24 : m_pHover(nullptr), |
| 21 m_pFocus(nullptr), | 25 m_pFocus(nullptr), |
| 22 m_pGrab(nullptr), | 26 m_pGrab(nullptr), |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 if (!pForm) | 179 if (!pForm) |
| 176 return; | 180 return; |
| 177 | 181 |
| 178 int32_t nIndex = m_forms.Find(pForm); | 182 int32_t nIndex = m_forms.Find(pForm); |
| 179 if (nIndex < 0) | 183 if (nIndex < 0) |
| 180 return; | 184 return; |
| 181 | 185 |
| 182 m_forms.RemoveAt(nIndex); | 186 m_forms.RemoveAt(nIndex); |
| 183 } | 187 } |
| 184 | 188 |
| 185 void CFWL_NoteDriver::QueueMessage(CFWL_Message* pMessage) { | 189 void CFWL_NoteDriver::QueueMessage(std::unique_ptr<CFWL_Message> pMessage) { |
| 186 pMessage->Retain(); | 190 m_noteQueue.push_back(std::move(pMessage)); |
| 187 m_noteQueue.Add(pMessage); | |
| 188 } | 191 } |
| 189 | 192 |
| 190 void CFWL_NoteDriver::UnqueueMessage(CFWL_NoteLoop* pNoteLoop) { | 193 void CFWL_NoteDriver::UnqueueMessage(CFWL_NoteLoop* pNoteLoop) { |
| 191 if (m_noteQueue.GetSize() < 1) | 194 if (m_noteQueue.empty()) |
| 192 return; | 195 return; |
| 193 | 196 |
| 194 CFWL_Message* pMessage = m_noteQueue[0]; | 197 std::unique_ptr<CFWL_Message> pMessage = std::move(m_noteQueue[0]); |
| 195 m_noteQueue.RemoveAt(0); | 198 m_noteQueue.pop_front(); |
| 196 if (!IsValidMessage(pMessage)) { | 199 |
| 197 pMessage->Release(); | 200 if (!IsValidMessage(pMessage.get())) |
| 198 return; | 201 return; |
| 199 } | 202 |
| 200 ProcessMessage(pMessage); | 203 ProcessMessage(pMessage.get()); |
| 201 pMessage->Release(); | |
| 202 } | 204 } |
| 203 | 205 |
| 204 CFWL_NoteLoop* CFWL_NoteDriver::GetTopLoop() const { | 206 CFWL_NoteLoop* CFWL_NoteDriver::GetTopLoop() const { |
| 205 int32_t size = m_noteLoopQueue.GetSize(); | 207 int32_t size = m_noteLoopQueue.GetSize(); |
| 206 if (size <= 0) | 208 if (size <= 0) |
| 207 return nullptr; | 209 return nullptr; |
| 208 return m_noteLoopQueue[size - 1]; | 210 return m_noteLoopQueue[size - 1]; |
| 209 } | 211 } |
| 210 | 212 |
| 211 void CFWL_NoteDriver::ProcessMessage(CFWL_Message* pMessage) { | 213 void CFWL_NoteDriver::ProcessMessage(CFWL_Message* pMessage) { |
| (...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 540 case CFWL_EventType::KillFocus: | 542 case CFWL_EventType::KillFocus: |
| 541 return !!(dwFilter & FWL_EVENT_FOCUSCHANGED_MASK); | 543 return !!(dwFilter & FWL_EVENT_FOCUSCHANGED_MASK); |
| 542 case CFWL_EventType::Close: | 544 case CFWL_EventType::Close: |
| 543 return !!(dwFilter & FWL_EVENT_CLOSE_MASK); | 545 return !!(dwFilter & FWL_EVENT_CLOSE_MASK); |
| 544 case CFWL_EventType::SizeChanged: | 546 case CFWL_EventType::SizeChanged: |
| 545 return !!(dwFilter & FWL_EVENT_SIZECHANGED_MASK); | 547 return !!(dwFilter & FWL_EVENT_SIZECHANGED_MASK); |
| 546 default: | 548 default: |
| 547 return !!(dwFilter & FWL_EVENT_CONTROL_MASK); | 549 return !!(dwFilter & FWL_EVENT_CONTROL_MASK); |
| 548 } | 550 } |
| 549 } | 551 } |
| OLD | NEW |