• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2016 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 
7 #include "xfa/fwl/cfwl_eventtarget.h"
8 
9 #include "xfa/fwl/cfwl_widget.h"
10 #include "xfa/fwl/ifwl_widgetdelegate.h"
11 
CFWL_EventTarget(CFWL_Widget * pListener)12 CFWL_EventTarget::CFWL_EventTarget(CFWL_Widget* pListener)
13     : m_pListener(pListener), m_bInvalid(false) {}
14 
~CFWL_EventTarget()15 CFWL_EventTarget::~CFWL_EventTarget() {}
16 
SetEventSource(CFWL_Widget * pSource)17 void CFWL_EventTarget::SetEventSource(CFWL_Widget* pSource) {
18   if (pSource)
19     m_widgets.insert(pSource);
20 }
21 
ProcessEvent(CFWL_Event * pEvent)22 bool CFWL_EventTarget::ProcessEvent(CFWL_Event* pEvent) {
23   IFWL_WidgetDelegate* pDelegate = m_pListener->GetDelegate();
24   if (!pDelegate)
25     return false;
26   if (!m_widgets.empty() && m_widgets.count(pEvent->m_pSrcTarget) == 0)
27     return false;
28 
29   pDelegate->OnProcessEvent(pEvent);
30   return true;
31 }
32