From fdc00a7042d912aafaabddae4d9c84199921ef23 Mon Sep 17 00:00:00 2001 From: Bo Xu Date: Tue, 28 Oct 2014 23:03:33 -0700 Subject: Merge XFA to PDFium master at 4dc95e7 on 10/28/2014 --- xfa/include/fxfa/fxfa_objectacc.h | 931 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 931 insertions(+) create mode 100644 xfa/include/fxfa/fxfa_objectacc.h (limited to 'xfa/include/fxfa/fxfa_objectacc.h') diff --git a/xfa/include/fxfa/fxfa_objectacc.h b/xfa/include/fxfa/fxfa_objectacc.h new file mode 100644 index 0000000000..14bd1ed69d --- /dev/null +++ b/xfa/include/fxfa/fxfa_objectacc.h @@ -0,0 +1,931 @@ +// 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_NODEACC_H +#define _FXFA_NODEACC_H +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 CFX_Object +{ +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(); + + FX_INT32 GetPresence(); + + FX_ARGB GetColor(FX_BOOL bText = FALSE); + + void SetColor(FX_ARGB color); + + + FX_INT32 GetFillType(); + + FX_INT32 GetPattern(FX_ARGB& foreColor); + + FX_INT32 GetStipple(FX_ARGB& stippleColor); + + FX_INT32 GetLinear(FX_ARGB& endColor); + + FX_INT32 GetRadial(FX_ARGB& endColor); + FX_BOOL SetPresence(FX_INT32 iPresence); + FX_BOOL SetFillType(FX_INT32 iType); + FX_BOOL SetPattern(FX_INT32 iPattern, FX_ARGB foreColor); + FX_BOOL SetStipple(FX_INT32 iStipple, FX_ARGB stippleColor); + FX_BOOL SetLinear(FX_INT32 iLinear, FX_ARGB endColor); + FX_BOOL SetRadial(FX_INT32 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(); + + FX_INT32 GetLineThrough(); + + FX_INT32 GetLineThroughPeriod(); + + FX_INT32 GetOverline(); + + FX_INT32 GetOverlinePeriod(); + + FX_INT32 GetUnderline(); + + FX_INT32 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(FX_INT32 iLineThrough); + FX_BOOL SetLineThroughPeriod(FX_INT32 iLineThroughPeriod); + FX_BOOL SetOverline(FX_INT32 iOverline); + FX_BOOL SetOverlinePeriod(FX_INT32 iOverlinePeriod); + FX_BOOL SetUnderline(FX_INT32 iUnderline); + FX_BOOL SetUnderlinePeriod(FX_INT32 iUnderlinePeriod); +}; +class CXFA_Caption : public CXFA_Data +{ +public: + CXFA_Caption(CXFA_Node* pNode); + + FX_INT32 GetPresence(); + + FX_INT32 GetPlacementType(); + + FX_FLOAT GetReserve(); + + CXFA_Margin GetMargin(); + + CXFA_Font GetFont(); + + CXFA_Value GetValue(); + + CXFA_Para GetPara(); + FX_BOOL SetPresence(FX_INT32 iPresence); + FX_BOOL SetPlacementType(FX_INT32 iType); + FX_BOOL SetReserve(FX_FLOAT fReserve); +}; +class CXFA_Para : public CXFA_Data +{ +public: + CXFA_Para(CXFA_Node* pNode); + + FX_INT32 GetHorizontalAlign(); + + FX_INT32 GetVerticalAlign(); + + FX_FLOAT GetLineHeight(); + FX_FLOAT GetMarginLeft(); + FX_FLOAT GetMarginRight(); + FX_INT32 GetOrphans(); + FX_FLOAT GetRadixOffset(); + FX_FLOAT GetSpaceAbove(); + FX_FLOAT GetSpaceBelow(); + FX_FLOAT GetTextIndent(); + FX_INT32 GetWidows(); + FX_BOOL SetHorizontalAlign(FX_INT32 iHorizontalAlign); + FX_BOOL SetVerticalAlign(FX_INT32 iVerticalAlign); + FX_BOOL SetLineHeight(FX_FLOAT fLineHeight); + FX_BOOL SetMarginLeft(FX_FLOAT fMarginLeft); + FX_BOOL SetMarginRight(FX_FLOAT fMarginRight); + FX_BOOL SetOrphans(FX_INT32 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(FX_INT32 iWidows); +}; +class CXFA_Keep : public CXFA_Data +{ +public: + CXFA_Keep(CXFA_Node *pNode, CXFA_Node *pParent); + + FX_INT32 GetIntact(); + FX_INT32 GetNext(); + FX_INT32 GetPrevious(); + FX_BOOL SetIntact(FX_INT32 iIntact); + FX_BOOL SetNext(FX_INT32 iNext); + FX_BOOL SetPrevious(FX_INT32 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); + + + FX_INT32 GetActivity(); + + FX_INT32 GetEventType(); + void GetRef(CFX_WideStringC &wsRef); + + FX_INT32 GetExecuteRunAt(); + FX_INT32 GetExecuteType(); + void GetExecuteConnection(CFX_WideString &wsConnection); + + + CXFA_Script GetScript(); + + + CXFA_Submit GetSubmit(); + + + FX_INT32 GetSignDataOperation(); + void GetSignDataTarget(CFX_WideString &wsTarget); + FX_BOOL SetActivity(FX_INT32 iActivity); + FX_BOOL SetEventType(FX_INT32 iEventType); + FX_BOOL SetExecuteRunAt(FX_INT32 iExecuteRunAt); + FX_BOOL SetExecuteType(FX_INT32 iExecuteType); + FX_BOOL SetExecuteConnection(const CFX_WideString& wsConnection); + FX_BOOL SetSignDataOperation(FX_INT32 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(); + FX_INT32 GetRunAt(); + void GetExpression(CFX_WideString &wsExpression); + FX_BOOL SetBinding(const CFX_WideString& wsBinding); + FX_BOOL SetContentType(XFA_SCRIPTTYPE eType); + FX_BOOL SetRunAt(FX_INT32 iRunAt); + FX_BOOL SetExpression(const CFX_WideString& wsExpression); +}; +class CXFA_Submit : public CXFA_Data +{ +public: + CXFA_Submit(CXFA_Node* pNode); + FX_BOOL IsSubmitEmbedPDF(); + FX_INT32 GetSubmitFormat(); + void GetSubmitTarget(CFX_WideStringC &wsTarget); + XFA_TEXTENCODING GetSubmitTextEncoding(); + void GetSubmitXDPContent(CFX_WideStringC &wsContent); + FX_BOOL SetSubmitFormat(FX_INT32 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) {} + FX_INT32 GetHand(); + FX_BOOL GetSlop(); + CXFA_Edge GetEdge(); + FX_BOOL SetHand(FX_INT32 iHand); + FX_BOOL SetSlop(FX_INT32 iSlop); +}; +class CXFA_Text : public CXFA_Data +{ +public: + CXFA_Text(CXFA_Node* pNode); + void GetName(CFX_WideStringC &wsName); + FX_INT32 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(FX_INT32 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); + FX_INT32 GetMaxLength(); + void GetRid(CFX_WideStringC &wsRid); + FX_INT32 GetTransferEncoding(); + void GetContent(CFX_WideString &wsText); + FX_BOOL SetContentType(const CFX_WideString& wsContentType); + FX_BOOL SetHref(const CFX_WideString& wsHref); + FX_BOOL SetMaxLength(FX_INT32 iMaxLength); + FX_BOOL SetRid(const CFX_WideString& wsRid); + FX_BOOL SetTransferEncoding(FX_INT32 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); + FX_INT32 GetAspect(); + FX_BOOL GetContentType(CFX_WideString &wsContentType); + FX_BOOL GetHref(CFX_WideString &wsHref); + FX_INT32 GetTransferEncoding(); + FX_BOOL GetContent(CFX_WideString &wsText); + FX_BOOL SetAspect(FX_INT32 iAspect); + FX_BOOL SetContentType(const CFX_WideString& wsContentType); + FX_BOOL SetHref(const CFX_WideString& wsHref); + FX_BOOL SetTransferEncoding(FX_INT32 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); + + FX_INT32 GetOverride(); + CXFA_Script GetScript(); + void GetMessageText(CFX_WideString &wsMessage); + FX_BOOL SetOverride(FX_INT32 iOverride); + FX_BOOL SetMessageText(const CFX_WideString& wsMessage); +}; +class CXFA_Validate : public CXFA_Data +{ +public: + CXFA_Validate(CXFA_Node* pNode); + FX_INT32 GetFormatTest(); + FX_BOOL SetFormatTest(CFX_WideString wsValue); + FX_INT32 GetNullTest(); + FX_BOOL SetNullTest(CFX_WideString wsValue); + FX_INT32 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, FX_WSTR wsMessageType); + void SetMessageText(CFX_WideString &wsMessage, FX_WSTR wsMessageType); + FX_BOOL SetTestValue(FX_INT32 iType, CFX_WideString &wsValue, XFA_ATTRIBUTEENUM eName); +}; +class CXFA_Variables : public CXFA_Data +{ +public: + CXFA_Variables(CXFA_Node* pNode); + + FX_INT32 CountScripts(); + CXFA_Script GetScript(FX_INT32 nIndex); +}; +class CXFA_Bind : public CXFA_Data +{ +public: + CXFA_Bind(CXFA_Node* pNode); + FX_INT32 GetMatch(); + void GetRef(CFX_WideStringC &wsRef); + void GetPicture(CFX_WideString &wsPicture); + FX_BOOL SetMatch(FX_INT32 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; + } + + FX_INT32 GetPresence() const; + FX_BOOL IsVisible() const + { + return GetPresence() == XFA_ATTRIBUTEENUM_Visible; + } + + FX_INT32 GetCapType() const; + + FX_INT32 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); + + FX_INT32 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; + } + + FX_INT32 GetBreak() const; + + FX_INT32 GetHand() const; + + FX_INT32 GetPresence() const; + + FX_INT32 CountCorners() const; + + CXFA_Corner GetCorner(FX_INT32 nIndex) const; + + FX_INT32 CountEdges() const; + + CXFA_Edge GetEdge(FX_INT32 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; + + FX_INT32 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(); + + FX_INT32 GetAccess(FX_BOOL bTemplate = FALSE); + + FX_BOOL GetAccessKey(CFX_WideStringC &wsAccessKey); + + FX_INT32 GetAnchorType(); + + FX_INT32 GetColSpan(); + + FX_INT32 GetPresence(); + + FX_INT32 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); + FX_INT32 GetEventByActivity(FX_INT32 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(FX_INT32 iAccess, FX_BOOL bNotify = TRUE); + FX_BOOL SetAccessKey(const CFX_WideString& wsAccessKey); + FX_BOOL SetAnchorType(FX_INT32 iType); + FX_BOOL SetColSpan(FX_INT32 iColSpan); + FX_BOOL SetPresence(FX_INT32 iPresence); + FX_BOOL SetRotate(FX_INT32 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(FX_INT32 iButtonHighlight); + FX_BOOL SetButtonRollover(const CFX_WideString &wsRollover, FX_BOOL bRichText); + FX_BOOL SetButtonDown(const CFX_WideString& wsDown, FX_BOOL bRichText); + FX_BOOL SetCheckButtonShape(FX_INT32 iCheckButtonShape); + FX_BOOL SetCheckButtonMark(FX_INT32 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); + + FX_INT32 GetButtonHighlight(); + FX_BOOL GetButtonRollover(CFX_WideString &wsRollover, FX_BOOL &bRichText); + FX_BOOL GetButtonDown(CFX_WideString &wsDown, FX_BOOL &bRichText); + + + FX_INT32 GetCheckButtonShape(); + + FX_INT32 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(FX_WSTR wsName, FX_BOOL bNotify = TRUE); + + void SetSelectedMemberByValue(FX_WSTR wsValue, FX_BOOL bNotify = TRUE, FX_BOOL bScriptModify = FALSE, FX_BOOL bSyncData = TRUE); + CXFA_Node* GetExclGroupFirstMember(); + CXFA_Node* GetExclGroupNextMember(CXFA_Node* pNode); + + FX_INT32 GetChoiceListCommitOn(); + + FX_BOOL IsChoiceListAllowTextEntry(); + + FX_INT32 GetChoiceListOpen(); + FX_BOOL IsListBox(); + FX_INT32 CountChoiceListItems(FX_BOOL bSaveValue = FALSE); + + FX_BOOL GetChoiceListItem(CFX_WideString &wsText, FX_INT32 nIndex, FX_BOOL bSaveValue = FALSE); + void GetChoiceListItems(CFX_WideStringArray &wsTextArray, FX_BOOL bSaveValue = FALSE); + + FX_INT32 CountSelectedItems(); + + FX_INT32 GetSelectedItem(FX_INT32 nIndex = 0); + void GetSelectedItems(CFX_Int32Array &iSelArray); + void GetSelectedItemsValue(CFX_WideStringArray &wsSelTextArray); + + FX_BOOL GetItemState(FX_INT32 nIndex); + + void SetItemState(FX_INT32 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, FX_INT32 nIndex = -1, FX_BOOL bNotify = FALSE); + void GetItemLabel(FX_WSTR wsValue, CFX_WideString &wsLabel); + void GetItemValue(FX_WSTR wsLabel, CFX_WideString &wsValue); + FX_BOOL DeleteItem(FX_INT32 nIndex, FX_BOOL bNotify = FALSE, FX_BOOL bScriptModify = FALSE, FX_BOOL bSyncData = TRUE); + + FX_INT32 GetHorizontalScrollPolicy(); + + FX_INT32 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(FX_WSTR wsValue, CFX_WideString &wsNormalizeValue); + FX_BOOL GetFormatDataValue(FX_WSTR wsValue, CFX_WideString &wsFormatedValue); + void NormalizeNumStr(const CFX_WideString& wsValue, CFX_WideString& wsOutput); + + CFX_WideString GetBarcodeType(); + FX_BOOL GetBarcodeAttribute_CharEncoding(FX_INT32& val); + FX_BOOL GetBarcodeAttribute_Checksum(FX_INT32& val); + FX_BOOL GetBarcodeAttribute_DataLength(FX_INT32& val); + FX_BOOL GetBarcodeAttribute_StartChar(FX_CHAR& val); + FX_BOOL GetBarcodeAttribute_EndChar(FX_CHAR& val); + FX_BOOL GetBarcodeAttribute_ECLevel(FX_INT32& val); + FX_BOOL GetBarcodeAttribute_ModuleWidth(FX_INT32& val); + FX_BOOL GetBarcodeAttribute_ModuleHeight(FX_INT32& val); + FX_BOOL GetBarcodeAttribute_PrintChecksum(FX_BOOL& val); + FX_BOOL GetBarcodeAttribute_TextLocation(FX_INT32& 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(); + + FX_INT32 GetVerticalScrollPolicy(); + + FX_INT32 GetMaxChars(XFA_ELEMENT& eType); + + FX_BOOL GetFracDigits(FX_INT32 &iFracDigits); + + FX_BOOL GetLeadDigits(FX_INT32 &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, FX_WSTR wsText, FX_INT32 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); + FX_INT32 GetMax(); + FX_INT32 GetMin(); + FX_INT32 GetInitial(); + FX_BOOL GetOccurInfo(FX_INT32& iMin, FX_INT32& iMax, FX_INT32& iInit); + void SetMax(FX_INT32 iMax); + void SetMin(FX_INT32 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(); + FX_INT32 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(); + FX_INT32 CountCertificates(); + CXFA_Certificate GetCertificate(FX_INT32 nIndex); +}; +class CXFA_Oids : public CXFA_Data +{ +public: + CXFA_Oids(CXFA_Node* pNode) : CXFA_Data(pNode) {} + XFA_ATTRIBUTEENUM GetOidsType(); + FX_INT32 CountOids(); + CFX_WideString GetOidContent(FX_INT32 nIndex); +}; +class CXFA_SubjectDNs : public CXFA_Data +{ +public: + CXFA_SubjectDNs(CXFA_Node* pNode) : CXFA_Data(pNode) {} + XFA_ATTRIBUTEENUM GetSubjectDNsType(); + FX_INT32 CountSubjectDNs(); + CFX_WideString GetSubjectDNString(FX_INT32 nIndex, XFA_ATTRIBUTE eAttribute); + CFX_WideString GetSubjectDNContent(FX_INT32 nIndex); +}; +class CXFA_DigestMethods : public CXFA_Data +{ +public: + CXFA_DigestMethods(CXFA_Node* pNode) : CXFA_Data(pNode) {} + XFA_ATTRIBUTEENUM GetDigestMethodsType(); + FX_INT32 CountDigestMethods(); + CFX_WideString GetDigestMethodContent(FX_INT32 nIndex); +}; +class CXFA_Encodings : public CXFA_Data +{ +public: + CXFA_Encodings(CXFA_Node* pNode) : CXFA_Data(pNode) {} + XFA_ATTRIBUTEENUM GetEncodingsType(); + FX_INT32 CountEncodings(); + CFX_WideString GetEncodingContent(FX_INT32 nIndex); +}; +class CXFA_EncryptionMethods : public CXFA_Data +{ +public: + CXFA_EncryptionMethods(CXFA_Node* pNode) : CXFA_Data(pNode) {} + XFA_ATTRIBUTEENUM GetEncryptionMethodsType(); + FX_INT32 CountEncryptionMethods(); + CFX_WideString GetEncryptionMethodContent(FX_INT32 nIndex); +}; +class CXFA_Reasons : public CXFA_Data +{ +public: + CXFA_Reasons(CXFA_Node* pNode) : CXFA_Data(pNode) {} + XFA_ATTRIBUTEENUM GetReasonsType(); + FX_INT32 CountReasons(); + CFX_WideString GetReasonContent(FX_INT32 nIndex); +}; +class CXFA_Manifest : public CXFA_Data +{ +public: + CXFA_Manifest(CXFA_Node* pNode) : CXFA_Data(pNode) {} + XFA_ATTRIBUTEENUM GetAction(); + FX_INT32 CountReives(); + CFX_WideString GetRefContent(FX_INT32 nIndex); +}; +#endif -- cgit v1.2.3