blob: b5a8bdbb9e062c77f2e33d736ef47483946e9234 [file] [log] [blame]
dsinclair37b6d142016-11-21 17:05:58 -08001// 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
dsinclair447b1f32016-12-08 10:06:32 -08007#ifndef XFA_FWL_CFWL_EVENTTARGET_H_
8#define XFA_FWL_CFWL_EVENTTARGET_H_
dsinclair37b6d142016-11-21 17:05:58 -08009
dsinclair4bd717b2016-11-21 17:57:21 -080010#include <set>
11
dsinclair447b1f32016-12-08 10:06:32 -080012#include "xfa/fwl/cfwl_event.h"
dsinclair37b6d142016-11-21 17:05:58 -080013
14class CFWL_Event;
dsinclair2c489cc2016-11-23 16:17:20 -080015class CFWL_Widget;
dsinclair37b6d142016-11-21 17:05:58 -080016
17class CFWL_EventTarget {
18 public:
dsinclair2c489cc2016-11-23 16:17:20 -080019 explicit CFWL_EventTarget(CFWL_Widget* pListener);
dsinclair37b6d142016-11-21 17:05:58 -080020 ~CFWL_EventTarget();
21
dsinclair2c489cc2016-11-23 16:17:20 -080022 void SetEventSource(CFWL_Widget* pSource);
dsinclair37b6d142016-11-21 17:05:58 -080023 bool ProcessEvent(CFWL_Event* pEvent);
24
Tom Sepez1d52d1e2017-04-18 11:45:36 -070025 bool IsValid() const { return m_bValid; }
26 void FlagInvalid() { m_bValid = false; }
dsinclair37b6d142016-11-21 17:05:58 -080027
28 private:
dsinclair2c489cc2016-11-23 16:17:20 -080029 std::set<CFWL_Widget*> m_widgets;
30 CFWL_Widget* m_pListener;
Tom Sepez1d52d1e2017-04-18 11:45:36 -070031 bool m_bValid;
dsinclair37b6d142016-11-21 17:05:58 -080032};
33
dsinclair447b1f32016-12-08 10:06:32 -080034#endif // XFA_FWL_CFWL_EVENTTARGET_H_