| Index: fpdfsdk/include/fsdk_baseform.h
|
| diff --git a/fpdfsdk/include/fsdk_baseform.h b/fpdfsdk/include/fsdk_baseform.h
|
| index f6df689984f02fdf1bcadb5cfaf880978d5911b5..6a64f005cf521f7f0d491496238b4f5d161ed257 100644
|
| --- a/fpdfsdk/include/fsdk_baseform.h
|
| +++ b/fpdfsdk/include/fsdk_baseform.h
|
| @@ -8,6 +8,7 @@
|
| #define FPDFSDK_INCLUDE_FSDK_BASEFORM_H_
|
|
|
| #include <map>
|
| +#include <set>
|
| #include <vector>
|
|
|
| #include "core/fpdfdoc/include/fpdf_doc.h"
|
| @@ -60,6 +61,17 @@ struct PDFSDK_FieldAction {
|
|
|
| class CPDFSDK_Widget : public CPDFSDK_BAAnnot {
|
| public:
|
| + class Observer {
|
| + public:
|
| + explicit Observer(CPDFSDK_Widget** pWatchedPtr);
|
| + ~Observer();
|
| +
|
| + void OnWidgetDestroyed();
|
| +
|
| + private:
|
| + CPDFSDK_Widget** m_pWatchedPtr;
|
| + };
|
| +
|
| #ifdef PDF_ENABLE_XFA
|
| CXFA_FFWidget* GetMixXFAWidget() const;
|
| CXFA_FFWidget* GetGroupMixXFAWidget();
|
| @@ -89,6 +101,9 @@ class CPDFSDK_Widget : public CPDFSDK_BAAnnot {
|
| CPDFSDK_InterForm* pInterForm);
|
| ~CPDFSDK_Widget() override;
|
|
|
| + void AddObserver(Observer* observer);
|
| + void RemoveObserver(Observer* observer);
|
| +
|
| // CPDFSDK_Annot
|
| CFX_ByteString GetSubType() const override;
|
| CPDF_Action GetAAction(CPDF_AAction::AActionType eAAT) override;
|
| @@ -170,6 +185,14 @@ class CPDFSDK_Widget : public CPDFSDK_BAAnnot {
|
| int32_t GetAppearanceAge() const;
|
| int32_t GetValueAge() const;
|
|
|
| + FX_BOOL IsWidgetAppearanceValid(CPDF_Annot::AppearanceMode mode);
|
| + void DrawAppearance(CFX_RenderDevice* pDevice,
|
| + const CFX_Matrix* pUser2Device,
|
| + CPDF_Annot::AppearanceMode mode,
|
| + const CPDF_RenderOptions* pOptions) override;
|
| +
|
| + FX_BOOL HitTest(FX_FLOAT pageX, FX_FLOAT pageY);
|
| +
|
| private:
|
| void ResetAppearance_PushButton();
|
| void ResetAppearance_CheckBox();
|
| @@ -192,20 +215,11 @@ class CPDFSDK_Widget : public CPDFSDK_BAAnnot {
|
| void AddImageToAppearance(const CFX_ByteString& sAPType, CPDF_Stream* pImage);
|
| void RemoveAppearance(const CFX_ByteString& sAPType);
|
|
|
| - public:
|
| - FX_BOOL IsWidgetAppearanceValid(CPDF_Annot::AppearanceMode mode);
|
| - void DrawAppearance(CFX_RenderDevice* pDevice,
|
| - const CFX_Matrix* pUser2Device,
|
| - CPDF_Annot::AppearanceMode mode,
|
| - const CPDF_RenderOptions* pOptions) override;
|
| -
|
| - FX_BOOL HitTest(FX_FLOAT pageX, FX_FLOAT pageY);
|
| -
|
| - private:
|
| CPDFSDK_InterForm* const m_pInterForm;
|
| FX_BOOL m_bAppModified;
|
| int32_t m_nAppAge;
|
| int32_t m_nValueAge;
|
| + std::set<Observer*> m_Observers;
|
|
|
| #ifdef PDF_ENABLE_XFA
|
| mutable CXFA_FFWidget* m_hMixXFAWidget;
|
|
|