diff options
Diffstat (limited to 'xfa/fxfa/cxfa_widgetacc.h')
-rw-r--r-- | xfa/fxfa/cxfa_widgetacc.h | 176 |
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_ |