| // Copyright 2020 The PDFium Authors | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 
 |  | 
 | #ifndef FPDFSDK_FORMFILLER_CFFL_PERWINDOWDATA_H_ | 
 | #define FPDFSDK_FORMFILLER_CFFL_PERWINDOWDATA_H_ | 
 |  | 
 | #include <memory> | 
 |  | 
 | #include "core/fxcrt/observed_ptr.h" | 
 | #include "core/fxcrt/unowned_ptr.h" | 
 | #include "fpdfsdk/pwl/ipwl_fillernotify.h" | 
 |  | 
 | class CFFL_FormField; | 
 | class CPDFSDK_PageView; | 
 | class CPDFSDK_Widget; | 
 |  | 
 | class CFFL_PerWindowData final : public IPWL_FillerNotify::PerWindowData { | 
 |  public: | 
 |   CFFL_PerWindowData(CPDFSDK_Widget* pWidget, | 
 |                      const CPDFSDK_PageView* pPageView, | 
 |                      uint32_t nAppearanceAge, | 
 |                      uint32_t nValueAge); | 
 |   CFFL_PerWindowData& operator=(const CFFL_PerWindowData& that) = delete; | 
 |   ~CFFL_PerWindowData() override; | 
 |  | 
 |   // IPWL_FillerNotify::PerWindowData: | 
 |   std::unique_ptr<IPWL_FillerNotify::PerWindowData> Clone() const override; | 
 |  | 
 |   CPDFSDK_Widget* GetWidget() const { return m_pWidget.Get(); } | 
 |   const CPDFSDK_PageView* GetPageView() const { return m_pPageView; } | 
 |   bool AppearanceAgeEquals(uint32_t age) const { | 
 |     return age == m_nAppearanceAge; | 
 |   } | 
 |   uint32_t GetValueAge() const { return m_nValueAge; } | 
 |  | 
 |   void SetFormField(CFFL_FormField* pFormField) { m_pFormField = pFormField; } | 
 |   CFFL_FormField* GetFormField() { return m_pFormField; } | 
 |  | 
 |  private: | 
 |   CFFL_PerWindowData(const CFFL_PerWindowData& that); | 
 |  | 
 |   ObservedPtr<CPDFSDK_Widget> m_pWidget; | 
 |   UnownedPtr<const CPDFSDK_PageView> const m_pPageView; | 
 |   UnownedPtr<CFFL_FormField> m_pFormField; | 
 |   const uint32_t m_nAppearanceAge; | 
 |   const uint32_t m_nValueAge; | 
 | }; | 
 |  | 
 | #endif  // FPDFSDK_FORMFILLER_CFFL_PERWINDOWDATA_H_ |