14d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Copyright 2016 PDFium Authors. All rights reserved. 24d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Use of this source code is governed by a BSD-style license that can be 34d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// found in the LICENSE file. 44d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 54d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 64d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 74d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#ifndef XFA_FXFA_PARSER_CXFA_WIDGETDATA_H_ 84d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#define XFA_FXFA_PARSER_CXFA_WIDGETDATA_H_ 94d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 104d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include <vector> 114d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 124d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "core/fxcrt/fx_string.h" 134d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "core/fxcrt/fx_system.h" 144d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "xfa/fxfa/parser/cxfa_assist.h" 154d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "xfa/fxfa/parser/cxfa_bind.h" 164d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "xfa/fxfa/parser/cxfa_border.h" 174d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "xfa/fxfa/parser/cxfa_calculate.h" 184d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "xfa/fxfa/parser/cxfa_caption.h" 194d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "xfa/fxfa/parser/cxfa_data.h" 204d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "xfa/fxfa/parser/cxfa_font.h" 214d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "xfa/fxfa/parser/cxfa_margin.h" 224d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "xfa/fxfa/parser/cxfa_para.h" 234d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "xfa/fxfa/parser/cxfa_validate.h" 244d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "xfa/fxfa/parser/xfa_object.h" 254d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 264d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannenum XFA_CHECKSTATE { 274d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann XFA_CHECKSTATE_On = 0, 284d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann XFA_CHECKSTATE_Off = 1, 294d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann XFA_CHECKSTATE_Neutral = 2, 304d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}; 314d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 324d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannenum XFA_VALUEPICTURE { 334d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann XFA_VALUEPICTURE_Raw = 0, 344d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann XFA_VALUEPICTURE_Display, 354d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann XFA_VALUEPICTURE_Edit, 364d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann XFA_VALUEPICTURE_DataBind, 374d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}; 384d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 394d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass CXFA_Node; 404d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass IFX_Locale; 414d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 424d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass CXFA_WidgetData : public CXFA_Data { 434d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann public: 444d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann explicit CXFA_WidgetData(CXFA_Node* pNode); 454d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 464d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_Node* GetUIChild(); 474d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann XFA_Element GetUIType(); 484d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_WideString GetRawValue(); 494d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t GetAccess(bool bTemplate = false); 504d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t GetRotate(); 514d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_Border GetBorder(bool bModified = false); 524d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_Caption GetCaption(bool bModified = false); 534d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_Font GetFont(bool bModified = false); 544d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_Margin GetMargin(bool bModified = false); 554d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_Para GetPara(bool bModified = false); 564d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void GetEventList(CXFA_NodeArray& events); 574d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t GetEventByActivity(int32_t iActivity, 584d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_NodeArray& events, 594d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool bIsFormReady = false); 604d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_Value GetDefaultValue(bool bModified = false); 614d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_Value GetFormValue(bool bModified = false); 624d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_Calculate GetCalculate(bool bModified = false); 634d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_Validate GetValidate(bool bModified = false); 644d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_Bind GetBind(bool bModified = false); 654d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_Assist GetAssist(bool bModified = false); 664d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetWidth(FX_FLOAT& fWidth); 674d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetHeight(FX_FLOAT& fHeight); 684d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetMinWidth(FX_FLOAT& fMinWidth); 694d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetMinHeight(FX_FLOAT& fMinHeight); 704d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetMaxWidth(FX_FLOAT& fMaxWidth); 714d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetMaxHeight(FX_FLOAT& fMaxHeight); 724d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_Border GetUIBorder(); 734d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_RectF GetUIMargin(); 744d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t GetButtonHighlight(); 754d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetButtonRollover(CFX_WideString& wsRollover, bool& bRichText); 764d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetButtonDown(CFX_WideString& wsDown, bool& bRichText); 774d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t GetCheckButtonShape(); 784d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t GetCheckButtonMark(); 794d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FX_FLOAT GetCheckButtonSize(); 804d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool IsAllowNeutral(); 814d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool IsRadioButton(); 824d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann XFA_CHECKSTATE GetCheckState(); 834d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void SetCheckState(XFA_CHECKSTATE eCheckState, bool bNotify); 844d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_Node* GetExclGroupNode(); 854d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_Node* GetSelectedMember(); 864d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_Node* SetSelectedMember(const CFX_WideStringC& wsName, bool bNotify); 874d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void SetSelectedMemberByValue(const CFX_WideStringC& wsValue, 884d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool bNotify, 894d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool bScriptModify, 904d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool bSyncData); 914d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_Node* GetExclGroupFirstMember(); 924d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_Node* GetExclGroupNextMember(CXFA_Node* pNode); 934d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t GetChoiceListCommitOn(); 944d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool IsChoiceListAllowTextEntry(); 954d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t GetChoiceListOpen(); 964d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool IsListBox(); 974d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t CountChoiceListItems(bool bSaveValue = false); 984d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetChoiceListItem(CFX_WideString& wsText, 994d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t nIndex, 1004d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool bSaveValue = false); 1014d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void GetChoiceListItems(std::vector<CFX_WideString>& wsTextArray, 1024d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool bSaveValue = false); 1034d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t CountSelectedItems(); 1044d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t GetSelectedItem(int32_t nIndex = 0); 1055ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann void GetSelectedItems(CFX_ArrayTemplate<int32_t>& iSelArray); 1064d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void GetSelectedItemsValue(std::vector<CFX_WideString>& wsSelTextArray); 1074d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetItemState(int32_t nIndex); 1084d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void SetItemState(int32_t nIndex, 1094d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool bSelected, 1104d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool bNotify, 1114d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool bScriptModify, 1124d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool bSyncData); 1135ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann void SetSelectedItems(CFX_ArrayTemplate<int32_t>& iSelArray, 1144d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool bNotify, 1154d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool bScriptModify, 1164d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool bSyncData); 1174d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void ClearAllSelections(); 1184d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void InsertItem(const CFX_WideString& wsLabel, 1194d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const CFX_WideString& wsValue, 1204d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t nIndex = -1, 1214d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool bNotify = false); 1224d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void GetItemLabel(const CFX_WideStringC& wsValue, CFX_WideString& wsLabel); 1234d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void GetItemValue(const CFX_WideStringC& wsLabel, CFX_WideString& wsValue); 1244d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool DeleteItem(int32_t nIndex, 1254d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool bNotify = false, 1264d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool bScriptModify = false, 1274d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool bSyncData = true); 1284d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t GetHorizontalScrollPolicy(); 1294d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t GetNumberOfCells(); 1304d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool SetValue(const CFX_WideString& wsValue, XFA_VALUEPICTURE eValueType); 1314d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetPictureContent(CFX_WideString& wsPicture, XFA_VALUEPICTURE ePicture); 1324d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann IFX_Locale* GetLocal(); 1334d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetValue(CFX_WideString& wsValue, XFA_VALUEPICTURE eValueType); 1344d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetNormalizeDataValue(const CFX_WideString& wsValue, 1354d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_WideString& wsNormalizeValue); 1364d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetFormatDataValue(const CFX_WideString& wsValue, 1374d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_WideString& wsFormattedValue); 1384d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void NormalizeNumStr(const CFX_WideString& wsValue, CFX_WideString& wsOutput); 1394d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_WideString GetBarcodeType(); 1404d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetBarcodeAttribute_CharEncoding(int32_t& val); 1414d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetBarcodeAttribute_Checksum(bool& val); 1424d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetBarcodeAttribute_DataLength(int32_t& val); 1434d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetBarcodeAttribute_StartChar(FX_CHAR& val); 1444d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetBarcodeAttribute_EndChar(FX_CHAR& val); 1454d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetBarcodeAttribute_ECLevel(int32_t& val); 1464d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetBarcodeAttribute_ModuleWidth(int32_t& val); 1474d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetBarcodeAttribute_ModuleHeight(int32_t& val); 1484d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetBarcodeAttribute_PrintChecksum(bool& val); 1494d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetBarcodeAttribute_TextLocation(int32_t& val); 1504d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetBarcodeAttribute_Truncate(bool& val); 1514d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetBarcodeAttribute_WideNarrowRatio(FX_FLOAT& val); 1524d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void GetPasswordChar(CFX_WideString& wsPassWord); 1534d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool IsMultiLine(); 1544d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t GetVerticalScrollPolicy(); 1554d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t GetMaxChars(XFA_Element& eType); 1564d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetFracDigits(int32_t& iFracDigits); 1574d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetLeadDigits(int32_t& iLeadDigits); 1584d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1594d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_WideString NumericLimit(const CFX_WideString& wsValue, 1604d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t iLead, 1614d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t iTread) const; 1624d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1634d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool m_bIsNull; 1644d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool m_bPreNull; 1654d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1664d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann protected: 1674d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void SyncValue(const CFX_WideString& wsValue, bool bNotify); 1684d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void InsertListTextItem(CXFA_Node* pItems, 1694d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const CFX_WideString& wsText, 1704d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t nIndex = -1); 1714d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void FormatNumStr(const CFX_WideString& wsValue, 1724d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann IFX_Locale* pLocale, 1734d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_WideString& wsOutput); 1744d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1754d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_Node* m_pUiChildNode; 1764d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann XFA_Element m_eUIType; 1774d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}; 1784d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1794d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#endif // XFA_FXFA_PARSER_CXFA_WIDGETDATA_H_ 180