| // 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_ |