// 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 FXFA_OBJECTACC_H_ #define FXFA_OBJECTACC_H_ #include "core/include/fxge/fx_dib.h" // For FX_ARGB. class CXFA_Node; class IFX_Locale; class CXFA_Data; class CXFA_Font; class CXFA_Fill; class CXFA_Margin; class CXFA_Caption; class CXFA_Para; class CXFA_Event; class CXFA_Script; class CXFA_Value; class CXFA_Calculate; class CXFA_Line; class CXFA_Text; class CXFA_ExData; class CXFA_Image; class CXFA_Validate; class CXFA_Variables; class CXFA_Bind; class CXFA_Assist; class CXFA_ToolTip; class CXFA_Keep; class CXFA_Submit; class CXFA_BindItems; class CXFA_Stroke; class CXFA_Corner; class CXFA_Edge; class CXFA_Box; class CXFA_Arc; class CXFA_Border; class CXFA_Rectangle; class CXFA_WidgetData; class CXFA_Occur; class CXFA_Filter; class CXFA_Certificate; class CXFA_WrapCertificate; class CXFA_Oids; class CXFA_SubjectDNs; class CXFA_DigestMethods; class CXFA_Encodings; class CXFA_EncryptionMethods; class CXFA_Reasons; class CXFA_Manifest; inline FX_BOOL XFA_IsSpace(FX_WCHAR c) { return (c == 0x20) || (c == 0x0d) || (c == 0x0a) || (c == 0x09); } inline FX_BOOL XFA_IsDigit(FX_WCHAR c) { return c >= '0' && c <= '9'; } typedef CFX_ArrayTemplate CXFA_NodeArray; typedef CFX_ArrayTemplate CXFA_ObjArray; class CXFA_Data { public: CXFA_Data(CXFA_Node* pNode) : m_pNode(pNode) {} operator CXFA_Node*() const { return m_pNode; } CXFA_Node* GetNode() { return m_pNode; } FX_BOOL IsExistInXML() const { return m_pNode != NULL; } XFA_ELEMENT GetClassID() const; protected: FX_BOOL TryMeasure(XFA_ATTRIBUTE eAttr, FX_FLOAT& fValue, FX_BOOL bUseDefault = FALSE) const; FX_BOOL SetMeasure(XFA_ATTRIBUTE eAttr, FX_FLOAT fValue); CXFA_Node* m_pNode; }; class CXFA_Fill : public CXFA_Data { public: CXFA_Fill(CXFA_Node* pNode); ~CXFA_Fill(); int32_t GetPresence(); FX_ARGB GetColor(FX_BOOL bText = FALSE); void SetColor(FX_ARGB color); int32_t GetFillType(); int32_t GetPattern(FX_ARGB& foreColor); int32_t GetStipple(FX_ARGB& stippleColor); int32_t GetLinear(FX_ARGB& endColor); int32_t GetRadial(FX_ARGB& endColor); FX_BOOL SetPresence(int32_t iPresence); FX_BOOL SetFillType(int32_t iType); FX_BOOL SetPattern(int32_t iPattern, FX_ARGB foreColor); FX_BOOL SetStipple(int32_t iStipple, FX_ARGB stippleColor); FX_BOOL SetLinear(int32_t iLinear, FX_ARGB endColor); FX_BOOL SetRadial(int32_t iRadial, FX_ARGB endColor); }; class CXFA_Margin : public CXFA_Data { public: CXFA_Margin(CXFA_Node* pNode); FX_BOOL GetLeftInset(FX_FLOAT& fInset, FX_FLOAT fDefInset = 0) const; FX_BOOL GetTopInset(FX_FLOAT& fInset, FX_FLOAT fDefInset = 0) const; FX_BOOL GetRightInset(FX_FLOAT& fInset, FX_FLOAT fDefInset = 0) const; FX_BOOL GetBottomInset(FX_FLOAT& fInset, FX_FLOAT fDefInset = 0) const; FX_BOOL SetLeftInset(FX_FLOAT fInset); FX_BOOL SetTopInset(FX_FLOAT fInset); FX_BOOL SetRightInset(FX_FLOAT fInset); FX_BOOL SetBottomInset(FX_FLOAT fInset); }; class CXFA_Font : public CXFA_Data { public: CXFA_Font(CXFA_Node* pNode); FX_FLOAT GetBaselineShift(); FX_FLOAT GetHorizontalScale(); FX_FLOAT GetVerticalScale(); FX_FLOAT GetLetterSpacing(); int32_t GetLineThrough(); int32_t GetLineThroughPeriod(); int32_t GetOverline(); int32_t GetOverlinePeriod(); int32_t GetUnderline(); int32_t GetUnderlinePeriod(); FX_FLOAT GetFontSize(); void GetTypeface(CFX_WideStringC& wsTypeFace); FX_BOOL IsBold(); FX_BOOL IsItalic(); FX_BOOL IsUseKerning(); FX_ARGB GetColor(); void SetColor(FX_ARGB color); FX_BOOL SetBaselineShift(FX_FLOAT fBaselineShift); FX_BOOL SetHorizontalScale(FX_FLOAT fHorizontalScale); FX_BOOL SetVerticalScale(FX_FLOAT fVerticalScale); FX_BOOL SetLetterSpacing(FX_FLOAT fLetterSpacing, XFA_UNIT eUnit); FX_BOOL SetLineThrough(int32_t iLineThrough); FX_BOOL SetLineThroughPeriod(int32_t iLineThroughPeriod); FX_BOOL SetOverline(int32_t iOverline); FX_BOOL SetOverlinePeriod(int32_t iOverlinePeriod); FX_BOOL SetUnderline(int32_t iUnderline); FX_BOOL SetUnderlinePeriod(int32_t iUnderlinePeriod); }; class CXFA_Caption : public CXFA_Data { public: CXFA_Caption(CXFA_Node* pNode); int32_t GetPresence(); int32_t GetPlacementType(); FX_FLOAT GetReserve(); CXFA_Margin GetMargin(); CXFA_Font GetFont(); CXFA_Value GetValue(); CXFA_Para GetPara(); FX_BOOL SetPresence(int32_t iPresence); FX_BOOL SetPlacementType(int32_t iType); FX_BOOL SetReserve(FX_FLOAT fReserve); }; class CXFA_Para : public CXFA_Data { public: CXFA_Para(CXFA_Node* pNode); int32_t GetHorizontalAlign(); int32_t GetVerticalAlign(); FX_FLOAT GetLineHeight(); FX_FLOAT GetMarginLeft(); FX_FLOAT GetMarginRight(); int32_t GetOrphans(); FX_FLOAT GetRadixOffset(); FX_FLOAT GetSpaceAbove(); FX_FLOAT GetSpaceBelow(); FX_FLOAT GetTextIndent(); int32_t GetWidows(); FX_BOOL SetHorizontalAlign(int32_t iHorizontalAlign); FX_BOOL SetVerticalAlign(int32_t iVerticalAlign); FX_BOOL SetLineHeight(FX_FLOAT fLineHeight); FX_BOOL SetMarginLeft(FX_FLOAT fMarginLeft); FX_BOOL SetMarginRight(FX_FLOAT fMarginRight); FX_BOOL SetOrphans(int32_t iOrphans); FX_BOOL SetRadixOffset(FX_FLOAT fRadixOffset); FX_BOOL SetSpaceAbove(FX_FLOAT fSpaceAbove); FX_BOOL SetSpaceBelow(FX_FLOAT fSpaceBelow); FX_BOOL SetTextIndent(FX_FLOAT fTextIndent); FX_BOOL SetWidows(int32_t iWidows); }; class CXFA_Keep : public CXFA_Data { public: CXFA_Keep(CXFA_Node* pNode, CXFA_Node* pParent); int32_t GetIntact(); int32_t GetNext(); int32_t GetPrevious(); FX_BOOL SetIntact(int32_t iIntact); FX_BOOL SetNext(int32_t iNext); FX_BOOL SetPrevious(int32_t iPrevious); private: CXFA_Node* m_pParent; }; enum XFA_TEXTENCODING { XFA_TEXTENCODING_None, XFA_TEXTENCODING_Big5, XFA_TEXTENCODING_FontSpecific, XFA_TEXTENCODING_GBK, XFA_TEXTENCODING_GB18030, XFA_TEXTENCODING_GB2312, XFA_TEXTENCODING_ISO8859NN, XFA_TEXTENCODING_KSC5601, XFA_TEXTENCODING_ShiftJIS, XFA_TEXTENCODING_UCS2, XFA_TEXTENCODING_UTF16, XFA_TEXTENCODING_UTF8 }; class CXFA_Event : public CXFA_Data { public: CXFA_Event(CXFA_Node* pNode); int32_t GetActivity(); int32_t GetEventType(); void GetRef(CFX_WideStringC& wsRef); int32_t GetExecuteRunAt(); int32_t GetExecuteType(); void GetExecuteConnection(CFX_WideString& wsConnection); CXFA_Script GetScript(); CXFA_Submit GetSubmit(); int32_t GetSignDataOperation(); void GetSignDataTarget(CFX_WideString& wsTarget); FX_BOOL SetActivity(int32_t iActivity); FX_BOOL SetEventType(int32_t iEventType); FX_BOOL SetExecuteRunAt(int32_t iExecuteRunAt); FX_BOOL SetExecuteType(int32_t iExecuteType); FX_BOOL SetExecuteConnection(const CFX_WideString& wsConnection); FX_BOOL SetSignDataOperation(int32_t iOperation); FX_BOOL SetSignDataTarget(const CFX_WideString& wsTarget); }; enum XFA_SCRIPTTYPE { XFA_SCRIPTTYPE_Formcalc = 0, XFA_SCRIPTTYPE_Javascript, XFA_SCRIPTTYPE_Unkown, }; class CXFA_Script : public CXFA_Data { public: CXFA_Script(CXFA_Node* pNode); void GetBinding(CFX_WideString& wsBinding); XFA_SCRIPTTYPE GetContentType(); int32_t GetRunAt(); void GetExpression(CFX_WideString& wsExpression); FX_BOOL SetBinding(const CFX_WideString& wsBinding); FX_BOOL SetContentType(XFA_SCRIPTTYPE eType); FX_BOOL SetRunAt(int32_t iRunAt); FX_BOOL SetExpression(const CFX_WideString& wsExpression); }; class CXFA_Submit : public CXFA_Data { public: CXFA_Submit(CXFA_Node* pNode); FX_BOOL IsSubmitEmbedPDF(); int32_t GetSubmitFormat(); void GetSubmitTarget(CFX_WideStringC& wsTarget); XFA_TEXTENCODING GetSubmitTextEncoding(); void GetSubmitXDPContent(CFX_WideStringC& wsContent); FX_BOOL SetSubmitFormat(int32_t iSubmitFormat); FX_BOOL SetSubmitTarget(const CFX_WideString& wsTarget); FX_BOOL SetSubmitTextEncoding(XFA_TEXTENCODING eTextEncoding); FX_BOOL SetSubmitXDPContent(const CFX_WideString& wsContent); }; class CXFA_Value : public CXFA_Data { public: CXFA_Value(CXFA_Node* pNode) : CXFA_Data(pNode) {} XFA_ELEMENT GetChildValueClassID(); FX_BOOL GetChildValueContent(CFX_WideString& wsContent); CXFA_Arc GetArc(); CXFA_Line GetLine(); CXFA_Rectangle GetRectangle(); CXFA_Text GetText(); CXFA_ExData GetExData(); CXFA_Image GetImage(); FX_BOOL SetChildValueContent(const CFX_WideString& wsContent, FX_BOOL bNotify = FALSE, XFA_ELEMENT iType = XFA_ELEMENT_UNKNOWN); }; class CXFA_Line : public CXFA_Data { public: CXFA_Line(CXFA_Node* pNode) : CXFA_Data(pNode) {} int32_t GetHand(); FX_BOOL GetSlop(); CXFA_Edge GetEdge(); FX_BOOL SetHand(int32_t iHand); FX_BOOL SetSlop(int32_t iSlop); }; class CXFA_Text : public CXFA_Data { public: CXFA_Text(CXFA_Node* pNode); void GetName(CFX_WideStringC& wsName); int32_t GetMaxChars(); void GetRid(CFX_WideStringC& wsRid); void GetContent(CFX_WideString& wsText); void SetContent(CFX_WideString wsText, FX_BOOL bNotify = TRUE); FX_BOOL SetName(const CFX_WideString& wsName); FX_BOOL SetMaxChars(int32_t iMaxChars); FX_BOOL SetRid(const CFX_WideString& wsRid); }; class CXFA_ExData : public CXFA_Data { public: CXFA_ExData(CXFA_Node* pNode); void GetContentType(CFX_WideStringC& wsContentType); void GetHref(CFX_WideStringC& wsHref); int32_t GetMaxLength(); void GetRid(CFX_WideStringC& wsRid); int32_t GetTransferEncoding(); void GetContent(CFX_WideString& wsText); FX_BOOL SetContentType(const CFX_WideString& wsContentType); FX_BOOL SetHref(const CFX_WideString& wsHref); FX_BOOL SetMaxLength(int32_t iMaxLength); FX_BOOL SetRid(const CFX_WideString& wsRid); FX_BOOL SetTransferEncoding(int32_t iTransferEncoding); FX_BOOL SetContent(const CFX_WideString& wsText, FX_BOOL bNotify = FALSE, FX_BOOL bScriptModify = FALSE, FX_BOOL bSyncData = TRUE); }; class CXFA_Image : public CXFA_Data { public: CXFA_Image(CXFA_Node* pNode, FX_BOOL bDefValue); int32_t GetAspect(); FX_BOOL GetContentType(CFX_WideString& wsContentType); FX_BOOL GetHref(CFX_WideString& wsHref); int32_t GetTransferEncoding(); FX_BOOL GetContent(CFX_WideString& wsText); FX_BOOL SetAspect(int32_t iAspect); FX_BOOL SetContentType(const CFX_WideString& wsContentType); FX_BOOL SetHref(const CFX_WideString& wsHref); FX_BOOL SetTransferEncoding(int32_t iTransferEncoding); FX_BOOL SetContent(const CFX_WideString& wsText); protected: FX_BOOL m_bDefValue; }; class CXFA_Calculate : public CXFA_Data { public: CXFA_Calculate(CXFA_Node* pNode); int32_t GetOverride(); CXFA_Script GetScript(); void GetMessageText(CFX_WideString& wsMessage); FX_BOOL SetOverride(int32_t iOverride); FX_BOOL SetMessageText(const CFX_WideString& wsMessage); }; class CXFA_Validate : public CXFA_Data { public: CXFA_Validate(CXFA_Node* pNode); int32_t GetFormatTest(); FX_BOOL SetFormatTest(CFX_WideString wsValue); int32_t GetNullTest(); FX_BOOL SetNullTest(CFX_WideString wsValue); int32_t GetScriptTest(); void GetFormatMessageText(CFX_WideString& wsMessage); void SetFormatMessageText(CFX_WideString wsMessage); void GetNullMessageText(CFX_WideString& wsMessage); void SetNullMessageText(CFX_WideString wsMessage); void GetScriptMessageText(CFX_WideString& wsMessage); void SetScriptMessageText(CFX_WideString wsMessage); void GetPicture(CFX_WideString& wsPicture); CXFA_Script GetScript(); protected: void GetMessageText(CFX_WideString& wsMessage, const CFX_WideStringC& wsMessageType); void SetMessageText(CFX_WideString& wsMessage, const CFX_WideStringC& wsMessageType); FX_BOOL SetTestValue(int32_t iType, CFX_WideString& wsValue, XFA_ATTRIBUTEENUM eName); }; class CXFA_Variables : public CXFA_Data { public: CXFA_Variables(CXFA_Node* pNode); int32_t CountScripts(); CXFA_Script GetScript(int32_t nIndex); }; class CXFA_Bind : public CXFA_Data { public: CXFA_Bind(CXFA_Node* pNode); int32_t GetMatch(); void GetRef(CFX_WideStringC& wsRef); void GetPicture(CFX_WideString& wsPicture); FX_BOOL SetMatch(int32_t iMatch); FX_BOOL SetRef(const CFX_WideString& wsRef); FX_BOOL SetPicture(const CFX_WideString& wsPicture); }; class CXFA_Assist : public CXFA_Data { public: CXFA_Assist(CXFA_Node* pNode); CXFA_ToolTip GetToolTip(); }; class CXFA_ToolTip : public CXFA_Data { public: CXFA_ToolTip(CXFA_Node* pNode); FX_BOOL GetTip(CFX_WideString& wsTip); FX_BOOL SetTip(const CFX_WideString& wsTip); }; class CXFA_BindItems : public CXFA_Data { public: CXFA_BindItems(CXFA_Node* pNode); void GetConnection(CFX_WideStringC& wsConnection); void GetLabelRef(CFX_WideStringC& wsLabelRef); void GetValueRef(CFX_WideStringC& wsValueRef); void GetRef(CFX_WideStringC& wsRef); FX_BOOL SetConnection(const CFX_WideString& wsConnection); FX_BOOL SetLabelRef(const CFX_WideString& wsLabelRef); FX_BOOL SetValueRef(const CFX_WideString& wsValueRef); FX_BOOL SetRef(const CFX_WideString& wsRef); }; #define XFA_STROKE_SAMESTYLE_NoPresence 1 #define XFA_STROKE_SAMESTYLE_Corner 2 class CXFA_Stroke : public CXFA_Data { public: CXFA_Stroke(CXFA_Node* pNode) : CXFA_Data(pNode) {} FX_BOOL IsCorner() const { return GetClassID() == XFA_ELEMENT_Corner; } FX_BOOL IsEdge() const { return GetClassID() == XFA_ELEMENT_Edge; } int32_t GetPresence() const; FX_BOOL IsVisible() const { return GetPresence() == XFA_ATTRIBUTEENUM_Visible; } int32_t GetCapType() const; int32_t GetStrokeType() const; FX_FLOAT GetThickness() const; CXFA_Measurement GetMSThickness() const; void SetThickness(FX_FLOAT fThickness); void SetMSThickness(CXFA_Measurement msThinkness); FX_ARGB GetColor() const; void SetColor(FX_ARGB argb); int32_t GetJoinType() const; FX_BOOL IsInverted() const; FX_FLOAT GetRadius() const; FX_BOOL SameStyles(CXFA_Stroke stroke, FX_DWORD dwFlags = 0) const; }; class CXFA_Corner : public CXFA_Stroke { public: CXFA_Corner(CXFA_Node* pNode) : CXFA_Stroke(pNode) {} }; class CXFA_Edge : public CXFA_Stroke { public: CXFA_Edge(CXFA_Node* pNode) : CXFA_Stroke(pNode) {} }; typedef CFX_ArrayTemplate CXFA_StrokeArray; typedef CFX_ArrayTemplate CXFA_EdgeArray; typedef CFX_ArrayTemplate CXFA_CornerArray; class CXFA_Box : public CXFA_Data { public: CXFA_Box(CXFA_Node* pNode) : CXFA_Data(pNode) {} FX_BOOL IsArc() const { return GetClassID() == XFA_ELEMENT_Arc; } FX_BOOL IsBorder() const { return GetClassID() == XFA_ELEMENT_Border; } FX_BOOL IsRectangle() const { return GetClassID() == XFA_ELEMENT_Rectangle; } int32_t GetBreak() const; int32_t GetHand() const; int32_t GetPresence() const; int32_t CountCorners() const; CXFA_Corner GetCorner(int32_t nIndex) const; int32_t CountEdges() const; CXFA_Edge GetEdge(int32_t nIndex = 0) const; void GetStrokes(CXFA_StrokeArray& strokes) const; FX_BOOL IsCircular() const; FX_BOOL GetStartAngle(FX_FLOAT& fStartAngle) const; FX_FLOAT GetStartAngle() const { FX_FLOAT fStartAngle; GetStartAngle(fStartAngle); return fStartAngle; } FX_BOOL GetSweepAngle(FX_FLOAT& fSweepAngle) const; FX_FLOAT GetSweepAngle() const { FX_FLOAT fSweepAngle; GetSweepAngle(fSweepAngle); return fSweepAngle; } CXFA_Fill GetFill(FX_BOOL bModified = FALSE) const; CXFA_Margin GetMargin() const; FX_BOOL SameStyles() const; int32_t Get3DStyle(FX_BOOL& bVisible, FX_FLOAT& fThickness) const; }; class CXFA_Arc : public CXFA_Box { public: CXFA_Arc(CXFA_Node* pNode) : CXFA_Box(pNode) {} }; class CXFA_Border : public CXFA_Box { public: CXFA_Border(CXFA_Node* pNode) : CXFA_Box(pNode) {} }; class CXFA_Rectangle : public CXFA_Box { public: CXFA_Rectangle(CXFA_Node* pNode) : CXFA_Box(pNode) {} }; 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 CXFA_WidgetData : public CXFA_Data { public: CXFA_WidgetData(CXFA_Node* pNode); CXFA_Node* GetUIChild(); XFA_ELEMENT GetUIType(); CFX_WideString GetRawValue(); int32_t GetAccess(FX_BOOL bTemplate = FALSE); FX_BOOL GetAccessKey(CFX_WideStringC& wsAccessKey); int32_t GetAnchorType(); int32_t GetColSpan(); int32_t GetPresence(); int32_t GetRotate(); CXFA_Border GetBorder(FX_BOOL bModified = FALSE); CXFA_Caption GetCaption(FX_BOOL bModified = FALSE); CXFA_Font GetFont(FX_BOOL bModified = FALSE); CXFA_Margin GetMargin(FX_BOOL bModified = FALSE); CXFA_Para GetPara(FX_BOOL bModified = FALSE); CXFA_Keep GetKeep(FX_BOOL bModified = FALSE); void GetEventList(CXFA_NodeArray& events); int32_t GetEventByActivity(int32_t iActivity, CXFA_NodeArray& events, FX_BOOL bIsFormReady = FALSE); CXFA_Value GetDefaultValue(FX_BOOL bModified = FALSE); CXFA_Value GetFormValue(FX_BOOL bModified = FALSE); CXFA_Calculate GetCalculate(FX_BOOL bModified = FALSE); CXFA_Validate GetValidate(FX_BOOL bModified = FALSE); CXFA_Variables GetVariables(FX_BOOL bModified = FALSE); CXFA_Bind GetBind(FX_BOOL bModified = FALSE); CXFA_Assist GetAssist(FX_BOOL bModified = FALSE); void GetRelevant(CFX_WideStringC& wsRelevant); FX_DWORD GetRelevantStatus(); FX_BOOL GetWidth(FX_FLOAT& fWidth); FX_BOOL GetHeight(FX_FLOAT& fHeight); FX_BOOL GetMinWidth(FX_FLOAT& fMinWidth); FX_BOOL GetMinHeight(FX_FLOAT& fMinHeight); FX_BOOL GetMaxWidth(FX_FLOAT& fMaxWidth); FX_BOOL GetMaxHeight(FX_FLOAT& fMaxHeight); CXFA_BindItems GetBindItems(); FX_BOOL SetAccess(int32_t iAccess, FX_BOOL bNotify = TRUE); FX_BOOL SetAccessKey(const CFX_WideString& wsAccessKey); FX_BOOL SetAnchorType(int32_t iType); FX_BOOL SetColSpan(int32_t iColSpan); FX_BOOL SetPresence(int32_t iPresence); FX_BOOL SetRotate(int32_t iRotate); FX_BOOL SetRelevant(const CFX_WideString& wsRelevant); FX_BOOL SetStatus(FX_DWORD dwStatus); FX_BOOL SetWidth(FX_FLOAT fWidth); FX_BOOL SetHeight(FX_FLOAT fHeight); FX_BOOL SetMinWidth(FX_FLOAT fMinWidth); FX_BOOL SetMinHeight(FX_FLOAT fMinHeight); FX_BOOL SetMaxWidth(FX_FLOAT fMaxWidth); FX_BOOL SetMaxHeight(FX_FLOAT fMaxHeight); FX_BOOL SetPos(FX_FLOAT x, FX_FLOAT y); FX_BOOL SetName(const CFX_WideString& wsName); FX_BOOL SetButtonHighlight(int32_t iButtonHighlight); FX_BOOL SetButtonRollover(const CFX_WideString& wsRollover, FX_BOOL bRichText); FX_BOOL SetButtonDown(const CFX_WideString& wsDown, FX_BOOL bRichText); FX_BOOL SetCheckButtonShape(int32_t iCheckButtonShape); FX_BOOL SetCheckButtonMark(int32_t iCheckButtonMark); FX_BOOL SetCheckButtonSize(FX_FLOAT fCheckButtonMark); CXFA_Border GetUIBorder(FX_BOOL bModified = FALSE); CXFA_Margin GetUIMargin(FX_BOOL bModified = FALSE); void GetUIMargin(CFX_RectF& rtUIMargin); int32_t GetButtonHighlight(); FX_BOOL GetButtonRollover(CFX_WideString& wsRollover, FX_BOOL& bRichText); FX_BOOL GetButtonDown(CFX_WideString& wsDown, FX_BOOL& bRichText); int32_t GetCheckButtonShape(); int32_t GetCheckButtonMark(); FX_FLOAT GetCheckButtonSize(); FX_BOOL IsAllowNeutral(); FX_BOOL IsRadioButton(); XFA_CHECKSTATE GetCheckState(); void SetCheckState(XFA_CHECKSTATE eCheckState, FX_BOOL bNotify = TRUE); CXFA_Node* GetExclGroupNode(); CXFA_Node* GetSelectedMember(); CXFA_Node* SetSelectedMember(const CFX_WideStringC& wsName, FX_BOOL bNotify = TRUE); void SetSelectedMemberByValue(const CFX_WideStringC& wsValue, FX_BOOL bNotify = TRUE, FX_BOOL bScriptModify = FALSE, FX_BOOL bSyncData = TRUE); CXFA_Node* GetExclGroupFirstMember(); CXFA_Node* GetExclGroupNextMember(CXFA_Node* pNode); int32_t GetChoiceListCommitOn(); FX_BOOL IsChoiceListAllowTextEntry(); int32_t GetChoiceListOpen(); FX_BOOL IsListBox(); int32_t CountChoiceListItems(FX_BOOL bSaveValue = FALSE); FX_BOOL GetChoiceListItem(CFX_WideString& wsText, int32_t nIndex, FX_BOOL bSaveValue = FALSE); void GetChoiceListItems(CFX_WideStringArray& wsTextArray, FX_BOOL bSaveValue = FALSE); int32_t CountSelectedItems(); int32_t GetSelectedItem(int32_t nIndex = 0); void GetSelectedItems(CFX_Int32Array& iSelArray); void GetSelectedItemsValue(CFX_WideStringArray& wsSelTextArray); FX_BOOL GetItemState(int32_t nIndex); void SetItemState(int32_t nIndex, FX_BOOL bSelected, FX_BOOL bNotify = FALSE, FX_BOOL bScriptModify = FALSE, FX_BOOL bSyncData = TRUE); void SetSelectdItems(CFX_Int32Array& iSelArray, FX_BOOL bNotify = FALSE, FX_BOOL bScriptModify = FALSE, FX_BOOL bSyncData = TRUE); void ClearAllSelections(); void InsertItem(const CFX_WideString& wsLabel, const CFX_WideString& wsValue, int32_t nIndex = -1, FX_BOOL bNotify = FALSE); void GetItemLabel(const CFX_WideStringC& wsValue, CFX_WideString& wsLabel); void GetItemValue(const CFX_WideStringC& wsLabel, CFX_WideString& wsValue); FX_BOOL DeleteItem(int32_t nIndex, FX_BOOL bNotify = FALSE, FX_BOOL bScriptModify = FALSE, FX_BOOL bSyncData = TRUE); int32_t GetHorizontalScrollPolicy(); int32_t GetNumberOfCells(); FX_BOOL IsDateTimeEditUsePicker(); FX_BOOL SetValue(const CFX_WideString& wsValue, XFA_VALUEPICTURE eValueType); FX_BOOL GetPictureContent(CFX_WideString& wsPicture, XFA_VALUEPICTURE ePicture); IFX_Locale* GetLocal(); FX_BOOL GetValue(CFX_WideString& wsValue, XFA_VALUEPICTURE eValueType); FX_BOOL GetNormalizeDataValue(const CFX_WideStringC& wsValue, CFX_WideString& wsNormalizeValue); FX_BOOL GetFormatDataValue(const CFX_WideStringC& wsValue, CFX_WideString& wsFormatedValue); void NormalizeNumStr(const CFX_WideString& wsValue, CFX_WideString& wsOutput); CFX_WideString GetBarcodeType(); FX_BOOL GetBarcodeAttribute_CharEncoding(int32_t& val); FX_BOOL GetBarcodeAttribute_Checksum(int32_t& val); FX_BOOL GetBarcodeAttribute_DataLength(int32_t& val); FX_BOOL GetBarcodeAttribute_StartChar(FX_CHAR& val); FX_BOOL GetBarcodeAttribute_EndChar(FX_CHAR& val); FX_BOOL GetBarcodeAttribute_ECLevel(int32_t& val); FX_BOOL GetBarcodeAttribute_ModuleWidth(int32_t& val); FX_BOOL GetBarcodeAttribute_ModuleHeight(int32_t& val); FX_BOOL GetBarcodeAttribute_PrintChecksum(FX_BOOL& val); FX_BOOL GetBarcodeAttribute_TextLocation(int32_t& val); FX_BOOL GetBarcodeAttribute_Truncate(FX_BOOL& val); FX_BOOL GetBarcodeAttribute_WideNarrowRatio(FX_FLOAT& val); void GetPasswordChar(CFX_WideString& wsPassWord); FX_BOOL IsAllowRichText(); FX_BOOL IsMultiLine(); int32_t GetVerticalScrollPolicy(); int32_t GetMaxChars(XFA_ELEMENT& eType); FX_BOOL GetFracDigits(int32_t& iFracDigits); FX_BOOL GetLeadDigits(int32_t& iLeadDigits); CXFA_Filter GetFilter(FX_BOOL bModified = FALSE); CXFA_Manifest GetManifest(FX_BOOL bModified = FALSE); FX_BOOL m_bIsNull; FX_BOOL m_bPreNull; protected: void SyncValue(const CFX_WideString& wsValue, FX_BOOL bNotify); void InsertListTextItem(CXFA_Node* pItems, const CFX_WideStringC& wsText, int32_t nIndex = -1); void FormatNumStr(const CFX_WideString& wsValue, IFX_Locale* pLocale, CFX_WideString& wsOutput); CXFA_Node* m_pUiChildNode; XFA_ELEMENT m_eUIType; }; class CXFA_Occur : public CXFA_Data { public: CXFA_Occur(CXFA_Node* pNode); int32_t GetMax(); int32_t GetMin(); int32_t GetInitial(); FX_BOOL GetOccurInfo(int32_t& iMin, int32_t& iMax, int32_t& iInit); void SetMax(int32_t iMax); void SetMin(int32_t iMin); }; class CXFA_Filter : public CXFA_Data { public: CXFA_Filter(CXFA_Node* pNode) : CXFA_Data(pNode) {} CFX_WideString GetFilterString(XFA_ATTRIBUTE eAttribute); XFA_ATTRIBUTEENUM GetAppearanceFilterType(); CFX_WideString GetAppearanceFilterContent(); XFA_ATTRIBUTEENUM GetCertificatesCredentialServerPolicy(); CFX_WideString GetCertificatesURL(); CFX_WideString GetCertificatesURLPolicy(); CXFA_WrapCertificate GetCertificatesEncryption(FX_BOOL bModified = FALSE); CXFA_WrapCertificate GetCertificatesIssuers(FX_BOOL bModified = FALSE); CFX_WideString GetCertificatesKeyUsageString(XFA_ATTRIBUTE eAttribute); CXFA_Oids GetCertificatesOids(); CXFA_WrapCertificate GetCertificatesSigning(FX_BOOL bModified = FALSE); CXFA_DigestMethods GetDigestMethods(FX_BOOL bModified = FALSE); CXFA_Encodings GetEncodings(FX_BOOL bModified = FALSE); CXFA_EncryptionMethods GetEncryptionMethods(FX_BOOL bModified = FALSE); XFA_ATTRIBUTEENUM GetHandlerType(); CFX_WideString GetHandlerContent(); XFA_ATTRIBUTEENUM GetlockDocumentType(); CFX_WideString GetlockDocumentContent(); int32_t GetMDPPermissions(); XFA_ATTRIBUTEENUM GetMDPSignatureType(); CXFA_Reasons GetReasons(FX_BOOL bModified = FALSE); CFX_WideString GetTimeStampServer(); XFA_ATTRIBUTEENUM GetTimeStampType(); }; class CXFA_Certificate : public CXFA_Data { public: CXFA_Certificate(CXFA_Node* pNode) : CXFA_Data(pNode) {} CFX_WideString GetCertificateName(); CFX_WideString GetCertificateContent(); }; class CXFA_WrapCertificate : public CXFA_Data { public: CXFA_WrapCertificate(CXFA_Node* pNode) : CXFA_Data(pNode) {} XFA_ATTRIBUTEENUM GetType(); int32_t CountCertificates(); CXFA_Certificate GetCertificate(int32_t nIndex); }; class CXFA_Oids : public CXFA_Data { public: CXFA_Oids(CXFA_Node* pNode) : CXFA_Data(pNode) {} XFA_ATTRIBUTEENUM GetOidsType(); int32_t CountOids(); CFX_WideString GetOidContent(int32_t nIndex); }; class CXFA_SubjectDNs : public CXFA_Data { public: CXFA_SubjectDNs(CXFA_Node* pNode) : CXFA_Data(pNode) {} XFA_ATTRIBUTEENUM GetSubjectDNsType(); int32_t CountSubjectDNs(); CFX_WideString GetSubjectDNString(int32_t nIndex, XFA_ATTRIBUTE eAttribute); CFX_WideString GetSubjectDNContent(int32_t nIndex); }; class CXFA_DigestMethods : public CXFA_Data { public: CXFA_DigestMethods(CXFA_Node* pNode) : CXFA_Data(pNode) {} XFA_ATTRIBUTEENUM GetDigestMethodsType(); int32_t CountDigestMethods(); CFX_WideString GetDigestMethodContent(int32_t nIndex); }; class CXFA_Encodings : public CXFA_Data { public: CXFA_Encodings(CXFA_Node* pNode) : CXFA_Data(pNode) {} XFA_ATTRIBUTEENUM GetEncodingsType(); int32_t CountEncodings(); CFX_WideString GetEncodingContent(int32_t nIndex); }; class CXFA_EncryptionMethods : public CXFA_Data { public: CXFA_EncryptionMethods(CXFA_Node* pNode) : CXFA_Data(pNode) {} XFA_ATTRIBUTEENUM GetEncryptionMethodsType(); int32_t CountEncryptionMethods(); CFX_WideString GetEncryptionMethodContent(int32_t nIndex); }; class CXFA_Reasons : public CXFA_Data { public: CXFA_Reasons(CXFA_Node* pNode) : CXFA_Data(pNode) {} XFA_ATTRIBUTEENUM GetReasonsType(); int32_t CountReasons(); CFX_WideString GetReasonContent(int32_t nIndex); }; class CXFA_Manifest : public CXFA_Data { public: CXFA_Manifest(CXFA_Node* pNode) : CXFA_Data(pNode) {} XFA_ATTRIBUTEENUM GetAction(); int32_t CountReives(); CFX_WideString GetRefContent(int32_t nIndex); }; #endif // FXFA_OBJECTACC_H_