Merge XFA to PDFium master at 4dc95e7 on 10/28/2014
[pdfium.git] / xfa / src / fxfa / src / parser / xfa_script_nodehelper.h
1 // Copyright 2014 PDFium Authors. All rights reserved.\r
2 // Use of this source code is governed by a BSD-style license that can be\r
3 // found in the LICENSE file.\r
4 \r
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com\r
6 \r
7 #ifndef _XFA_NODEHELPER_H_\r
8 #define _XFA_NODEHELPER_H_\r
9 class CXFA_ScriptContext;\r
10 enum  XFA_LOGIC_TYPE {\r
11     XFA_LOGIC_NoTransparent,\r
12     XFA_LOGIC_Transparent,\r
13 };\r
14 class CXFA_NodeHelper : public CFX_Object\r
15 {\r
16 public:\r
17     CXFA_NodeHelper(void);\r
18     ~CXFA_NodeHelper(void);\r
19     CXFA_Node*  XFA_ResolveNodes_GetOneChild(CXFA_Node* parent, FX_LPCWSTR pwsName, FX_BOOL bIsClassName = FALSE);\r
20     CXFA_Node*  XFA_ResolveNodes_GetParent(CXFA_Node* pNode, XFA_LOGIC_TYPE eLogicType = XFA_LOGIC_NoTransparent);\r
21 \r
22     FX_INT32    XFA_NodeAcc_TraverseSiblings(CXFA_Node* parent, FX_DWORD dNameHash, CXFA_NodeArray* pSiblings, XFA_LOGIC_TYPE eLogicType, FX_BOOL bIsClassName = FALSE, FX_BOOL bIsFindProperty = TRUE);\r
23     FX_INT32    XFA_NodeAcc_TraverseAnySiblings(CXFA_Node* parent, FX_DWORD dNameHash, CXFA_NodeArray* pSiblings, FX_BOOL bIsClassName = FALSE);\r
24     FX_INT32    XFA_CountSiblings(CXFA_Node* pNode, XFA_LOGIC_TYPE eLogicType, CXFA_NodeArray *pSiblings, FX_BOOL bIsClassName = FALSE);\r
25     FX_INT32    XFA_GetIndex(CXFA_Node* pNode, XFA_LOGIC_TYPE eLogicType = XFA_LOGIC_NoTransparent, FX_BOOL bIsProperty = FALSE, FX_BOOL bIsClassIndex = FALSE);\r
26     void                XFA_GetNameExpression(CXFA_Node* refNode, CFX_WideString &wsName, FX_BOOL bIsAllPath, XFA_LOGIC_TYPE eLogicType = XFA_LOGIC_NoTransparent);\r
27     FX_BOOL             XFA_NodeIsTransparent(CXFA_Node* refNode);\r
28     FX_BOOL             XFA_ResolveNodes_CreateNode(CFX_WideString wsName, CFX_WideString wsCondition, FX_BOOL bLastNode, CXFA_ScriptContext* pScriptContext);\r
29     FX_BOOL             XFA_CreateNode_ForCondition(CFX_WideString & wsCondition);\r
30     void                XFA_SetCreateNodeType(CXFA_Node* refNode);\r
31     FX_BOOL             XFA_NodeIsProperty(CXFA_Node* refNode);\r
32 public:\r
33     XFA_ELEMENT                                 m_eLastCreateType;\r
34     CXFA_Node*                                  m_pCreateParent;\r
35     FX_INT32                                    m_iCreateCount;\r
36     XFA_RESOVENODE_RSTYPE               m_iCreateFlag;\r
37     FX_INT32                                    m_iCurAllStart;\r
38     CXFA_Node*                                  m_pAllStartParent;\r
39 \r
40 };\r
41 #endif\r