// 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 #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 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 m_pWidget; UnownedPtr const m_pPageView; UnownedPtr m_pFormField; const uint32_t m_nAppearanceAge; const uint32_t m_nValueAge; }; #endif // FPDFSDK_FORMFILLER_CFFL_PERWINDOWDATA_H_