blob: 14bd1ed69ddba04b1dbb5410f207a5a07c49599e [file]
// 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_Node*> CXFA_NodeArray;
typedef CFX_ArrayTemplate<CXFA_Object*> 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_Stroke> CXFA_StrokeArray;
typedef CFX_ArrayTemplate<CXFA_Edge> CXFA_EdgeArray;
typedef CFX_ArrayTemplate<CXFA_Corner> 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