summaryrefslogtreecommitdiff
path: root/xfa/fxfa/cxfa_widgetacc.h
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/fxfa/cxfa_widgetacc.h')
-rw-r--r--xfa/fxfa/cxfa_widgetacc.h176
1 files changed, 173 insertions, 3 deletions
diff --git a/xfa/fxfa/cxfa_widgetacc.h b/xfa/fxfa/cxfa_widgetacc.h
index aa4303aef6..29c78d9576 100644
--- a/xfa/fxfa/cxfa_widgetacc.h
+++ b/xfa/fxfa/cxfa_widgetacc.h
@@ -9,30 +9,57 @@
#include <memory>
#include <utility>
+#include <vector>
#include "core/fxcrt/fx_coordinates.h"
+#include "core/fxcrt/fx_string.h"
+#include "core/fxcrt/fx_system.h"
#include "core/fxcrt/retain_ptr.h"
#include "core/fxge/dib/cfx_dibitmap.h"
#include "core/fxge/fx_dib.h"
-#include "xfa/fxfa/parser/cxfa_widgetdata.h"
+#include "fxbarcode/BC_Library.h"
+#include "xfa/fxfa/fxfa_basic.h"
+
+enum XFA_CHECKSTATE {
+ XFA_CHECKSTATE_On = 0,
+ XFA_CHECKSTATE_Off = 1,
+ XFA_CHECKSTATE_Neutral = 2,
+};
+
+enum XFA_VALUEPICTURE {
+ XFA_VALUEPICTURE_Raw = 0,
+ XFA_VALUEPICTURE_Display,
+ XFA_VALUEPICTURE_Edit,
+ XFA_VALUEPICTURE_DataBind,
+};
class CFGAS_GEFont;
+class CXFA_Bind;
+class CXFA_Border;
+class CXFA_Calculate;
+class CXFA_Caption;
class CXFA_Event;
class CXFA_EventParam;
class CXFA_FFApp;
class CXFA_FFDoc;
class CXFA_FFDocView;
class CXFA_FFWidget;
+class CXFA_Font;
+class CXFA_Margin;
class CXFA_Node;
class CXFA_Script;
+class CXFA_Para;
class CXFA_TextLayout;
+class CXFA_Value;
+class CXFA_Validate;
class CXFA_WidgetLayoutData;
class IXFA_AppProvider;
+class IFX_Locale;
-class CXFA_WidgetAcc : public CXFA_WidgetData {
+class CXFA_WidgetAcc {
public:
CXFA_WidgetAcc(CXFA_FFDocView* pDocView, CXFA_Node* pNode);
- ~CXFA_WidgetAcc() override;
+ ~CXFA_WidgetAcc();
void ResetData();
@@ -81,6 +108,136 @@ class CXFA_WidgetAcc : public CXFA_WidgetData {
FX_ARGB GetTextColor();
float GetLineHeight();
+ CXFA_Node* GetNode() const { return m_pNode; }
+
+ CXFA_Node* GetUIChild();
+ XFA_Element GetUIType();
+ CFX_RectF GetUIMargin();
+
+ WideString GetRawValue() const;
+ int32_t GetRotate() const;
+
+ bool IsOpenAccess() const;
+ bool IsListBox();
+ bool IsAllowNeutral();
+ bool IsRadioButton();
+ bool IsChoiceListAllowTextEntry();
+ bool IsMultiLine();
+
+ CXFA_Border* GetBorder(bool bModified);
+ CXFA_Caption* GetCaption();
+ CXFA_Font* GetFont(bool bModified);
+ CXFA_Margin* GetMargin();
+ CXFA_Para* GetPara();
+ CXFA_Value* GetDefaultValue();
+ CXFA_Value* GetFormValue();
+ CXFA_Calculate* GetCalculate();
+ CXFA_Validate* GetValidate(bool bModified);
+ CXFA_Border* GetUIBorder();
+
+ std::vector<CXFA_Event*> GetEventByActivity(XFA_AttributeEnum iActivity,
+ bool bIsFormReady);
+
+ pdfium::Optional<float> TryWidth();
+ pdfium::Optional<float> TryHeight();
+ pdfium::Optional<float> TryMinWidth();
+ pdfium::Optional<float> TryMinHeight();
+ pdfium::Optional<float> TryMaxWidth();
+ pdfium::Optional<float> TryMaxHeight();
+
+ XFA_AttributeEnum GetButtonHighlight();
+ bool HasButtonRollover() const;
+ bool HasButtonDown() const;
+
+ bool IsCheckButtonRound();
+ XFA_AttributeEnum GetCheckButtonMark();
+ float GetCheckButtonSize();
+
+ XFA_CHECKSTATE GetCheckState();
+ void SetCheckState(XFA_CHECKSTATE eCheckState, bool bNotify);
+
+ CXFA_Node* GetSelectedMember();
+ CXFA_Node* SetSelectedMember(const WideStringView& wsName, bool bNotify);
+ void SetSelectedMemberByValue(const WideStringView& wsValue,
+ bool bNotify,
+ bool bScriptModify,
+ bool bSyncData);
+
+ CXFA_Node* GetExclGroupFirstMember();
+ CXFA_Node* GetExclGroupNextMember(CXFA_Node* pNode);
+
+ int32_t CountChoiceListItems(bool bSaveValue);
+ pdfium::Optional<WideString> GetChoiceListItem(int32_t nIndex,
+ bool bSaveValue);
+ bool IsChoiceListMultiSelect();
+ bool IsChoiceListCommitOnSelect();
+ std::vector<WideString> GetChoiceListItems(bool bSaveValue);
+
+ int32_t CountSelectedItems();
+ int32_t GetSelectedItem(int32_t nIndex);
+ std::vector<int32_t> GetSelectedItems();
+ std::vector<WideString> GetSelectedItemsValue();
+ void SetSelectedItems(const std::vector<int32_t>& iSelArray,
+ bool bNotify,
+ bool bScriptModify,
+ bool bSyncData);
+ void InsertItem(const WideString& wsLabel,
+ const WideString& wsValue,
+ bool bNotify);
+ bool DeleteItem(int32_t nIndex, bool bNotify, bool bScriptModify);
+ void ClearAllSelections();
+
+ bool GetItemState(int32_t nIndex);
+ void SetItemState(int32_t nIndex,
+ bool bSelected,
+ bool bNotify,
+ bool bScriptModify,
+ bool bSyncData);
+
+ WideString GetItemValue(const WideStringView& wsLabel);
+
+ bool IsHorizontalScrollPolicyOff();
+ bool IsVerticalScrollPolicyOff();
+ pdfium::Optional<int32_t> GetNumberOfCells();
+
+ bool SetValue(XFA_VALUEPICTURE eValueType, const WideString& wsValue);
+ WideString GetValue(XFA_VALUEPICTURE eValueType);
+
+ WideString GetPictureContent(XFA_VALUEPICTURE ePicture);
+ IFX_Locale* GetLocale();
+
+ WideString GetNormalizeDataValue(const WideString& wsValue);
+ WideString GetFormatDataValue(const WideString& wsValue);
+ WideString NormalizeNumStr(const WideString& wsValue);
+
+ WideString GetBarcodeType();
+ pdfium::Optional<BC_CHAR_ENCODING> GetBarcodeAttribute_CharEncoding();
+ pdfium::Optional<bool> GetBarcodeAttribute_Checksum();
+ pdfium::Optional<int32_t> GetBarcodeAttribute_DataLength();
+ pdfium::Optional<char> GetBarcodeAttribute_StartChar();
+ pdfium::Optional<char> GetBarcodeAttribute_EndChar();
+ pdfium::Optional<int32_t> GetBarcodeAttribute_ECLevel();
+ pdfium::Optional<int32_t> GetBarcodeAttribute_ModuleWidth();
+ pdfium::Optional<int32_t> GetBarcodeAttribute_ModuleHeight();
+ pdfium::Optional<bool> GetBarcodeAttribute_PrintChecksum();
+ pdfium::Optional<BC_TEXT_LOC> GetBarcodeAttribute_TextLocation();
+ pdfium::Optional<bool> GetBarcodeAttribute_Truncate();
+ pdfium::Optional<int8_t> GetBarcodeAttribute_WideNarrowRatio();
+
+ WideString GetPasswordChar();
+ std::pair<XFA_Element, int32_t> GetMaxChars();
+ int32_t GetFracDigits();
+ int32_t GetLeadDigits();
+
+ WideString NumericLimit(const WideString& wsValue,
+ int32_t iLead,
+ int32_t iTread) const;
+
+ bool IsPreNull() const { return m_bPreNull; }
+ void SetPreNull(bool val) { m_bPreNull = val; }
+ bool IsNull() const { return m_bIsNull; }
+ void SetIsNull(bool val) { m_bIsNull = val; }
+
private:
IXFA_AppProvider* GetAppProvider();
void ProcessScriptTestValidate(CXFA_Validate* validate,
@@ -117,9 +274,22 @@ class CXFA_WidgetAcc : public CXFA_WidgetData {
void InitLayoutData();
void StartTextLayout(float& fCalcWidth, float& fCalcHeight);
+ CXFA_Bind* GetBind();
+ void InsertListTextItem(CXFA_Node* pItems,
+ const WideString& wsText,
+ int32_t nIndex);
+ WideString FormatNumStr(const WideString& wsValue, IFX_Locale* pLocale);
+ CXFA_Node* GetExclGroupNode();
+ void GetItemLabel(const WideStringView& wsValue, WideString& wsLabel);
+
CXFA_FFDocView* m_pDocView;
std::unique_ptr<CXFA_WidgetLayoutData> m_pLayoutData;
uint32_t m_nRecursionDepth;
+ bool m_bIsNull;
+ bool m_bPreNull;
+ CXFA_Node* m_pUiChildNode;
+ XFA_Element m_eUIType;
+ CXFA_Node* m_pNode;
};
#endif // XFA_FXFA_CXFA_WIDGETACC_H_