Index: fpdfsdk/include/fsdk_baseform.h |
diff --git a/fpdfsdk/include/fsdk_baseform.h b/fpdfsdk/include/fsdk_baseform.h |
deleted file mode 100644 |
index 8eee56c03e2c71fa368d099e3e48c1ab2c30d540..0000000000000000000000000000000000000000 |
--- a/fpdfsdk/include/fsdk_baseform.h |
+++ /dev/null |
@@ -1,407 +0,0 @@ |
-// Copyright 2014 PDFium Authors. All rights reserved. |
-// 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_INCLUDE_FSDK_BASEFORM_H_ |
-#define FPDFSDK_INCLUDE_FSDK_BASEFORM_H_ |
- |
-#include <map> |
-#include <set> |
-#include <vector> |
- |
-#include "core/fpdfdoc/include/ipdf_formnotify.h" |
-#include "core/fxcrt/include/fx_basic.h" |
-#include "core/fxge/include/fx_dib.h" |
-#include "fpdfsdk/include/cpdfsdk_annot.h" |
-#include "fpdfsdk/include/cpdfsdk_baannot.h" |
- |
-#if _FX_OS_ == _FX_ANDROID_ |
-#include "time.h" |
-#else |
-#include <ctime> |
-#endif |
- |
-class CPDFSDK_Annot; |
-class CPDFSDK_Document; |
-class CPDFSDK_InterForm; |
-class CPDFSDK_PageView; |
-class CPDF_Action; |
-class CPDF_FormControl; |
-class CPDF_FormField; |
-class CPDF_InterForm; |
-struct CPWL_Color; |
- |
-#ifdef PDF_ENABLE_XFA |
-class CXFA_FFWidgetHandler; |
- |
-typedef enum _PDFSDK_XFAAActionType { |
- PDFSDK_XFA_Click = 0, |
- PDFSDK_XFA_Full, |
- PDFSDK_XFA_PreOpen, |
- PDFSDK_XFA_PostOpen |
-} PDFSDK_XFAAActionType; |
-#endif // PDF_ENABLE_XFA |
- |
-struct PDFSDK_FieldAction { |
- PDFSDK_FieldAction(); |
- PDFSDK_FieldAction(const PDFSDK_FieldAction& other) = delete; |
- |
- FX_BOOL bModifier; // in |
- FX_BOOL bShift; // in |
- int nCommitKey; // in |
- CFX_WideString sChange; // in[out] |
- CFX_WideString sChangeEx; // in |
- FX_BOOL bKeyDown; // in |
- int nSelEnd; // in[out] |
- int nSelStart; // in[out] |
- CFX_WideString sValue; // in[out] |
- FX_BOOL bWillCommit; // in |
- FX_BOOL bFieldFull; // in |
- FX_BOOL bRC; // in[out] |
-}; |
- |
-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(); |
- CXFA_FFWidgetHandler* GetXFAWidgetHandler() const; |
- |
- FX_BOOL HasXFAAAction(PDFSDK_XFAAActionType eXFAAAT); |
- FX_BOOL OnXFAAAction(PDFSDK_XFAAActionType eXFAAAT, |
- PDFSDK_FieldAction& data, |
- CPDFSDK_PageView* pPageView); |
- |
- void Synchronize(FX_BOOL bSynchronizeElse); |
- void SynchronizeXFAValue(); |
- void SynchronizeXFAItems(); |
- |
- static void SynchronizeXFAValue(CXFA_FFDocView* pXFADocView, |
- CXFA_FFWidget* hWidget, |
- CPDF_FormField* pFormField, |
- CPDF_FormControl* pFormControl); |
- static void SynchronizeXFAItems(CXFA_FFDocView* pXFADocView, |
- CXFA_FFWidget* hWidget, |
- CPDF_FormField* pFormField, |
- CPDF_FormControl* pFormControl); |
-#endif // PDF_ENABLE_XFA |
- |
- CPDFSDK_Widget(CPDF_Annot* pAnnot, |
- CPDFSDK_PageView* pPageView, |
- 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; |
- FX_BOOL IsAppearanceValid() override; |
- |
- int GetLayoutOrder() const override; |
- |
- int GetFieldType() const; |
- |
- // Possible values from PDF 32000-1:2008, table 221. |
- // FIELDFLAG_READONLY |
- // FIELDFLAG_REQUIRED |
- // FIELDFLAG_NOEXPORT |
- int GetFieldFlags() const; |
- int GetRotate() const; |
- |
- FX_BOOL GetFillColor(FX_COLORREF& color) const; |
- FX_BOOL GetBorderColor(FX_COLORREF& color) const; |
- FX_BOOL GetTextColor(FX_COLORREF& color) const; |
- FX_FLOAT GetFontSize() const; |
- |
- int GetSelectedIndex(int nIndex) const; |
-#ifndef PDF_ENABLE_XFA |
- CFX_WideString GetValue() const; |
-#else |
- CFX_WideString GetValue(FX_BOOL bDisplay = TRUE) const; |
-#endif // PDF_ENABLE_XFA |
- CFX_WideString GetDefaultValue() const; |
- CFX_WideString GetOptionLabel(int nIndex) const; |
- int CountOptions() const; |
- FX_BOOL IsOptionSelected(int nIndex) const; |
- int GetTopVisibleIndex() const; |
- bool IsChecked() const; |
- /* |
- BF_ALIGN_LEFT |
- BF_ALIGN_MIDDL |
- BF_ALIGN_RIGHT |
- */ |
- int GetAlignment() const; |
- int GetMaxLen() const; |
-#ifdef PDF_ENABLE_XFA |
- CFX_WideString GetName() const; |
-#endif // PDF_ENABLE_XFA |
- CFX_WideString GetAlternateName() const; |
- |
- // Set Properties. |
- void SetCheck(bool bChecked, bool bNotify); |
- void SetValue(const CFX_WideString& sValue, FX_BOOL bNotify); |
- void SetDefaultValue(const CFX_WideString& sValue); |
- void SetOptionSelection(int index, FX_BOOL bSelected, FX_BOOL bNotify); |
- void ClearSelection(FX_BOOL bNotify); |
- void SetTopVisibleIndex(int index); |
- |
-#ifdef PDF_ENABLE_XFA |
- void ResetAppearance(FX_BOOL bValueChanged); |
-#endif // PDF_ENABLE_XFA |
- void ResetAppearance(const FX_WCHAR* sValue, FX_BOOL bValueChanged); |
- void ResetFieldAppearance(FX_BOOL bValueChanged); |
- void UpdateField(); |
- CFX_WideString OnFormat(FX_BOOL& bFormated); |
- |
- // Message. |
- FX_BOOL OnAAction(CPDF_AAction::AActionType type, |
- PDFSDK_FieldAction& data, |
- CPDFSDK_PageView* pPageView); |
- |
- CPDFSDK_InterForm* GetInterForm() const { return m_pInterForm; } |
- CPDF_FormField* GetFormField() const; |
- CPDF_FormControl* GetFormControl() const; |
- static CPDF_FormControl* GetFormControl(CPDF_InterForm* pInterForm, |
- const CPDF_Dictionary* pAnnotDict); |
- |
- void DrawShadow(CFX_RenderDevice* pDevice, CPDFSDK_PageView* pPageView); |
- |
- void SetAppModified(); |
- void ClearAppModified(); |
- FX_BOOL IsAppModified() const; |
- |
- 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(); |
- void ResetAppearance_RadioButton(); |
- void ResetAppearance_ComboBox(const FX_WCHAR* sValue); |
- void ResetAppearance_ListBox(); |
- void ResetAppearance_TextField(const FX_WCHAR* sValue); |
- |
- CFX_FloatRect GetClientRect() const; |
- CFX_FloatRect GetRotatedRect() const; |
- |
- CFX_ByteString GetBackgroundAppStream() const; |
- CFX_ByteString GetBorderAppStream() const; |
- CFX_Matrix GetMatrix() const; |
- |
- CPWL_Color GetTextPWLColor() const; |
- CPWL_Color GetBorderPWLColor() const; |
- CPWL_Color GetFillPWLColor() const; |
- |
- void AddImageToAppearance(const CFX_ByteString& sAPType, CPDF_Stream* pImage); |
- void RemoveAppearance(const CFX_ByteString& sAPType); |
- |
- 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; |
- mutable CXFA_FFWidgetHandler* m_pWidgetHandler; |
-#endif // PDF_ENABLE_XFA |
-}; |
- |
-#ifdef PDF_ENABLE_XFA |
-class CPDFSDK_XFAWidget : public CPDFSDK_Annot { |
- public: |
- CPDFSDK_XFAWidget(CXFA_FFWidget* pAnnot, |
- CPDFSDK_PageView* pPageView, |
- CPDFSDK_InterForm* pInterForm); |
- ~CPDFSDK_XFAWidget() override {} |
- |
- FX_BOOL IsXFAField() override; |
- CXFA_FFWidget* GetXFAWidget() const override; |
- CFX_ByteString GetType() const override; |
- CFX_ByteString GetSubType() const override; |
- CFX_FloatRect GetRect() const override; |
- |
- CPDFSDK_InterForm* GetInterForm() { return m_pInterForm; } |
- |
- private: |
- CPDFSDK_InterForm* m_pInterForm; |
- CXFA_FFWidget* m_hXFAWidget; |
-}; |
-#endif // PDF_ENABLE_XFA |
- |
-class CPDFSDK_InterForm : public IPDF_FormNotify { |
- public: |
- explicit CPDFSDK_InterForm(CPDFSDK_Document* pDocument); |
- ~CPDFSDK_InterForm() override; |
- |
- CPDF_InterForm* GetInterForm() const { return m_pInterForm.get(); } |
- CPDFSDK_Document* GetDocument() const { return m_pDocument; } |
- |
- FX_BOOL HighlightWidgets(); |
- |
- CPDFSDK_Widget* GetSibling(CPDFSDK_Widget* pWidget, FX_BOOL bNext) const; |
- CPDFSDK_Widget* GetWidget(CPDF_FormControl* pControl, |
- bool createIfNeeded) const; |
- void GetWidgets(const CFX_WideString& sFieldName, |
- std::vector<CPDFSDK_Widget*>* widgets) const; |
- void GetWidgets(CPDF_FormField* pField, |
- std::vector<CPDFSDK_Widget*>* widgets) const; |
- |
- void AddMap(CPDF_FormControl* pControl, CPDFSDK_Widget* pWidget); |
- void RemoveMap(CPDF_FormControl* pControl); |
- |
- void EnableCalculate(FX_BOOL bEnabled); |
- FX_BOOL IsCalculateEnabled() const; |
- |
-#ifdef PDF_ENABLE_XFA |
- void AddXFAMap(CXFA_FFWidget* hWidget, CPDFSDK_XFAWidget* pWidget); |
- void RemoveXFAMap(CXFA_FFWidget* hWidget); |
- CPDFSDK_XFAWidget* GetXFAWidget(CXFA_FFWidget* hWidget); |
- void XfaEnableCalculate(FX_BOOL bEnabled); |
- FX_BOOL IsXfaCalculateEnabled() const; |
- FX_BOOL IsXfaValidationsEnabled(); |
- void XfaSetValidationsEnabled(FX_BOOL bEnabled); |
-#endif // PDF_ENABLE_XFA |
- |
- FX_BOOL OnKeyStrokeCommit(CPDF_FormField* pFormField, |
- const CFX_WideString& csValue); |
- FX_BOOL OnValidate(CPDF_FormField* pFormField, const CFX_WideString& csValue); |
- void OnCalculate(CPDF_FormField* pFormField = nullptr); |
- CFX_WideString OnFormat(CPDF_FormField* pFormField, FX_BOOL& bFormated); |
- |
- void ResetFieldAppearance(CPDF_FormField* pFormField, |
- const FX_WCHAR* sValue, |
- FX_BOOL bValueChanged); |
- void UpdateField(CPDF_FormField* pFormField); |
- |
- FX_BOOL DoAction_Hide(const CPDF_Action& action); |
- FX_BOOL DoAction_SubmitForm(const CPDF_Action& action); |
- FX_BOOL DoAction_ResetForm(const CPDF_Action& action); |
- FX_BOOL DoAction_ImportData(const CPDF_Action& action); |
- |
- std::vector<CPDF_FormField*> GetFieldFromObjects( |
- const std::vector<CPDF_Object*>& objects) const; |
- FX_BOOL IsValidField(CPDF_Dictionary* pFieldDict); |
- FX_BOOL SubmitFields(const CFX_WideString& csDestination, |
- const std::vector<CPDF_FormField*>& fields, |
- bool bIncludeOrExclude, |
- bool bUrlEncoded); |
- FX_BOOL SubmitForm(const CFX_WideString& sDestination, FX_BOOL bUrlEncoded); |
- FX_BOOL ExportFormToFDFTextBuf(CFX_ByteTextBuf& textBuf); |
- FX_BOOL ExportFieldsToFDFTextBuf(const std::vector<CPDF_FormField*>& fields, |
- bool bIncludeOrExclude, |
- CFX_ByteTextBuf& textBuf); |
- CFX_WideString GetTemporaryFileName(const CFX_WideString& sFileExt); |
- |
-#ifdef PDF_ENABLE_XFA |
- void SynchronizeField(CPDF_FormField* pFormField, FX_BOOL bSynchronizeElse); |
-#endif // PDF_ENABLE_XFA |
- |
- private: |
- // IPDF_FormNotify: |
- int BeforeValueChange(CPDF_FormField* pField, |
- const CFX_WideString& csValue) override; |
- void AfterValueChange(CPDF_FormField* pField) override; |
- int BeforeSelectionChange(CPDF_FormField* pField, |
- const CFX_WideString& csValue) override; |
- void AfterSelectionChange(CPDF_FormField* pField) override; |
- void AfterCheckedStatusChange(CPDF_FormField* pField) override; |
- int BeforeFormReset(CPDF_InterForm* pForm) override; |
- void AfterFormReset(CPDF_InterForm* pForm) override; |
- int BeforeFormImportData(CPDF_InterForm* pForm) override; |
- void AfterFormImportData(CPDF_InterForm* pForm) override; |
- |
- FX_BOOL FDFToURLEncodedData(CFX_WideString csFDFFile, |
- CFX_WideString csTxtFile); |
- FX_BOOL FDFToURLEncodedData(uint8_t*& pBuf, FX_STRSIZE& nBufSize); |
- int GetPageIndexByAnnotDict(CPDF_Document* pDocument, |
- CPDF_Dictionary* pAnnotDict) const; |
- |
- using CPDFSDK_WidgetMap = std::map<CPDF_FormControl*, CPDFSDK_Widget*>; |
- |
- CPDFSDK_Document* m_pDocument; |
- std::unique_ptr<CPDF_InterForm> m_pInterForm; |
- CPDFSDK_WidgetMap m_Map; |
-#ifdef PDF_ENABLE_XFA |
- std::map<CXFA_FFWidget*, CPDFSDK_XFAWidget*> m_XFAMap; |
- FX_BOOL m_bXfaCalculate; |
- FX_BOOL m_bXfaValidationsEnabled; |
-#endif // PDF_ENABLE_XFA |
- FX_BOOL m_bCalculate; |
- FX_BOOL m_bBusy; |
- |
- public: |
- FX_BOOL IsNeedHighLight(int nFieldType); |
- void RemoveAllHighLight(); |
- void SetHighlightAlpha(uint8_t alpha) { m_iHighlightAlpha = alpha; } |
- uint8_t GetHighlightAlpha() { return m_iHighlightAlpha; } |
- void SetHighlightColor(FX_COLORREF clr, int nFieldType); |
- FX_COLORREF GetHighlightColor(int nFieldType); |
- |
- private: |
-#ifndef PDF_ENABLE_XFA |
- static const int kNumFieldTypes = 6; |
-#else // PDF_ENABLE_XFA |
- static const int kNumFieldTypes = 7; |
-#endif // PDF_ENABLE_XFA |
- |
- FX_COLORREF m_aHighlightColor[kNumFieldTypes]; |
- uint8_t m_iHighlightAlpha; |
- FX_BOOL m_bNeedHightlight[kNumFieldTypes]; |
-}; |
- |
-class CBA_AnnotIterator { |
- public: |
- enum TabOrder { STRUCTURE = 0, ROW, COLUMN }; |
- |
- CBA_AnnotIterator(CPDFSDK_PageView* pPageView, |
- const CFX_ByteString& sType, |
- const CFX_ByteString& sSubType); |
- ~CBA_AnnotIterator(); |
- |
- CPDFSDK_Annot* GetFirstAnnot(); |
- CPDFSDK_Annot* GetLastAnnot(); |
- CPDFSDK_Annot* GetNextAnnot(CPDFSDK_Annot* pAnnot); |
- CPDFSDK_Annot* GetPrevAnnot(CPDFSDK_Annot* pAnnot); |
- |
- private: |
- void GenerateResults(); |
- static CFX_FloatRect GetAnnotRect(const CPDFSDK_Annot* pAnnot); |
- |
- // Function signature compatible with std::sort(). |
- static bool CompareByLeftAscending(const CPDFSDK_Annot* p1, |
- const CPDFSDK_Annot* p2); |
- static bool CompareByTopDescending(const CPDFSDK_Annot* p1, |
- const CPDFSDK_Annot* p2); |
- |
- TabOrder m_eTabOrder; |
- CPDFSDK_PageView* m_pPageView; |
- CFX_ByteString m_sType; |
- CFX_ByteString m_sSubType; |
- std::vector<CPDFSDK_Annot*> m_Annots; |
-}; |
- |
-#endif // FPDFSDK_INCLUDE_FSDK_BASEFORM_H_ |