Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(49)

Unified Diff: fpdfsdk/include/fsdk_baseform.h

Issue 1399273003: fpdfsdk/ differences with XFA (for didactic purposes only). (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Regenerate after taking juns patch Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « fpdfsdk/include/fsdk_baseannot.h ('k') | fpdfsdk/include/fsdk_define.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: fpdfsdk/include/fsdk_baseform.h
diff --git a/fpdfsdk/include/fsdk_baseform.h b/fpdfsdk/include/fsdk_baseform.h
index b908efa488030beaf373a5c624037d1bbff0c648..0b6a04eb52a1933af25972df939b273f059105f9 100644
--- a/fpdfsdk/include/fsdk_baseform.h
+++ b/fpdfsdk/include/fsdk_baseform.h
@@ -31,6 +31,15 @@ class CPDF_Action;
class CPDF_FormField;
struct CPWL_Color;
+#ifdef PDF_ENABLE_XFA
+typedef enum _PDFSDK_XFAAActionType {
+ PDFSDK_XFA_Click = 0,
+ PDFSDK_XFA_Full,
+ PDFSDK_XFA_PreOpen,
+ PDFSDK_XFA_PostOpen
+} PDFSDK_XFAAActionType;
+
+#endif
typedef struct _PDFSDK_FieldAction {
_PDFSDK_FieldAction() {
bModifier = FALSE;
@@ -59,6 +68,30 @@ typedef struct _PDFSDK_FieldAction {
class CPDFSDK_Widget : public CPDFSDK_BAAnnot {
public:
+#ifdef PDF_ENABLE_XFA
+ IXFA_Widget* GetMixXFAWidget() const;
+ IXFA_Widget* GetGroupMixXFAWidget();
+ IXFA_WidgetHandler* 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(IXFA_DocView* pXFADocView,
+ IXFA_Widget* hWidget,
+ CPDF_FormField* pFormField,
+ CPDF_FormControl* pFormControl);
+ static void SynchronizeXFAItems(IXFA_DocView* pXFADocView,
+ IXFA_Widget* hWidget,
+ CPDF_FormField* pFormField,
+ CPDF_FormControl* pFormControl);
+
+#endif
CPDFSDK_Widget(CPDF_Annot* pAnnot,
CPDFSDK_PageView* pPageView,
CPDFSDK_InterForm* pInterForm);
@@ -86,7 +119,11 @@ class CPDFSDK_Widget : public CPDFSDK_BAAnnot {
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
CFX_WideString GetDefaultValue() const;
CFX_WideString GetOptionLabel(int nIndex) const;
int CountOptions() const;
@@ -100,6 +137,9 @@ class CPDFSDK_Widget : public CPDFSDK_BAAnnot {
*/
int GetAlignment() const;
int GetMaxLen() const;
+#ifdef PDF_ENABLE_XFA
+ CFX_WideString GetName() const;
+#endif
CFX_WideString GetAlternateName() const;
// Set Properties.
@@ -110,6 +150,9 @@ class CPDFSDK_Widget : public CPDFSDK_BAAnnot {
void ClearSelection(FX_BOOL bNotify);
void SetTopVisibleIndex(int index);
+#ifdef PDF_ENABLE_XFA
+ void ResetAppearance(FX_BOOL bValueChanged);
+#endif
void ResetAppearance(const FX_WCHAR* sValue, FX_BOOL bValueChanged);
void ResetFieldAppearance(FX_BOOL bValueChanged);
void UpdateField();
@@ -166,13 +209,46 @@ class CPDFSDK_Widget : public CPDFSDK_BAAnnot {
FX_BOOL HitTest(FX_FLOAT pageX, FX_FLOAT pageY);
+#ifndef PDF_ENABLE_XFA
private:
+#endif
CPDFSDK_InterForm* m_pInterForm;
FX_BOOL m_bAppModified;
int32_t m_nAppAge;
int32_t m_nValueAge;
+#ifdef PDF_ENABLE_XFA
+
+ mutable IXFA_Widget* m_hMixXFAWidget;
+ mutable IXFA_WidgetHandler* m_pWidgetHandler;
+#endif
+};
+
+#ifdef PDF_ENABLE_XFA
+class CPDFSDK_XFAWidget : public CPDFSDK_Annot {
+ public:
+ CPDFSDK_XFAWidget(IXFA_Widget* pAnnot,
+ CPDFSDK_PageView* pPageView,
+ CPDFSDK_InterForm* pInterForm);
+ ~CPDFSDK_XFAWidget() override {}
+
+ FX_BOOL IsXFAField() override;
+ IXFA_Widget* GetXFAWidget() const override { return m_hXFAWidget; }
+ CFX_ByteString GetType() const override;
+ CFX_ByteString GetSubType() const override { return ""; }
+ CFX_FloatRect GetRect() const override;
+
+ CPDFSDK_InterForm* GetInterForm() { return m_pInterForm; }
+
+ private:
+ CPDFSDK_InterForm* m_pInterForm;
+ IXFA_Widget* m_hXFAWidget;
};
+#define CPDFSDK_XFAWidgetMap \
+ CFX_MapPtrTemplate<IXFA_Widget*, CPDFSDK_XFAWidget*>
+#define CPDFSDK_FieldSynchronizeMap CFX_MapPtrTemplate<CPDF_FormField*, int>
+
+#endif
class CPDFSDK_InterForm : public CPDF_FormNotify {
public:
explicit CPDFSDK_InterForm(CPDFSDK_Document* pDocument);
@@ -193,9 +269,23 @@ class CPDFSDK_InterForm : public CPDF_FormNotify {
void AddMap(CPDF_FormControl* pControl, CPDFSDK_Widget* pWidget);
void RemoveMap(CPDF_FormControl* pControl);
+#ifdef PDF_ENABLE_XFA
+ void AddXFAMap(IXFA_Widget* hWidget, CPDFSDK_XFAWidget* pWidget);
+ void RemoveXFAMap(IXFA_Widget* hWidget);
+ CPDFSDK_XFAWidget* GetXFAWidget(IXFA_Widget* hWidget);
+
+#endif
void EnableCalculate(FX_BOOL bEnabled);
FX_BOOL IsCalculateEnabled() const;
+#ifdef PDF_ENABLE_XFA
+ void XfaEnableCalculate(FX_BOOL bEnabled);
+ FX_BOOL IsXfaCalculateEnabled() const;
+
+ FX_BOOL IsXfaValidationsEnabled();
+ void XfaSetValidationsEnabled(FX_BOOL bEnabled);
+
+#endif
#ifdef _WIN32
CPDF_Stream* LoadImageFromFile(const CFX_WideString& sFile);
#endif
@@ -233,6 +323,10 @@ class CPDFSDK_InterForm : public CPDF_FormNotify {
CFX_ByteTextBuf& textBuf);
CFX_WideString GetTemporaryFileName(const CFX_WideString& sFileExt);
+#ifdef PDF_ENABLE_XFA
+ void SynchronizeField(CPDF_FormField* pFormField, FX_BOOL bSynchronizeElse);
+
+#endif
private:
// CPDF_FormNotify
int BeforeValueChange(const CPDF_FormField* pField,
@@ -259,7 +353,15 @@ class CPDFSDK_InterForm : public CPDF_FormNotify {
CPDFSDK_Document* m_pDocument;
CPDF_InterForm* m_pInterForm;
CPDFSDK_WidgetMap m_Map;
+#ifdef PDF_ENABLE_XFA
+ CPDFSDK_XFAWidgetMap m_XFAMap;
+ CPDFSDK_FieldSynchronizeMap m_FieldSynchronizeMap;
+#endif
FX_BOOL m_bCalculate;
+#ifdef PDF_ENABLE_XFA
+ FX_BOOL m_bXfaCalculate;
+ FX_BOOL m_bXfaValidationsEnabled;
+#endif
FX_BOOL m_bBusy;
public:
@@ -271,7 +373,11 @@ class CPDFSDK_InterForm : public CPDF_FormNotify {
FX_COLORREF GetHighlightColor(int nFieldType);
private:
+#ifndef PDF_ENABLE_XFA
static const int kNumFieldTypes = 6;
+#else
+ static const int kNumFieldTypes = 7;
+#endif
FX_COLORREF m_aHighlightColor[kNumFieldTypes];
uint8_t m_iHighlightAlpha;
FX_BOOL m_bNeedHightlight[kNumFieldTypes];
« no previous file with comments | « fpdfsdk/include/fsdk_baseannot.h ('k') | fpdfsdk/include/fsdk_define.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698