| OLD | NEW |
| (Empty) |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | |
| 6 | |
| 7 #ifndef XFA_FXFA_PARSER_XFA_LAYOUT_APPADAPTER_H_ | |
| 8 #define XFA_FXFA_PARSER_XFA_LAYOUT_APPADAPTER_H_ | |
| 9 | |
| 10 #include "xfa/fxfa/parser/cxfa_containerlayoutitem.h" | |
| 11 #include "xfa/fxfa/parser/cxfa_contentlayoutitem.h" | |
| 12 #include "xfa/fxfa/parser/cxfa_layoutitem.h" | |
| 13 | |
| 14 class CXFA_TraverseStrategy_PageAreaContainerLayoutItem { | |
| 15 public: | |
| 16 static inline CXFA_ContainerLayoutItem* GetFirstChild( | |
| 17 CXFA_ContainerLayoutItem* pLayoutItem) { | |
| 18 if (pLayoutItem->m_pFormNode->GetElementType() == XFA_Element::PageSet) { | |
| 19 return static_cast<CXFA_ContainerLayoutItem*>(pLayoutItem->m_pFirstChild); | |
| 20 } | |
| 21 return nullptr; | |
| 22 } | |
| 23 static inline CXFA_ContainerLayoutItem* GetNextSibling( | |
| 24 CXFA_ContainerLayoutItem* pLayoutItem) { | |
| 25 return (CXFA_ContainerLayoutItem*)pLayoutItem->m_pNextSibling; | |
| 26 } | |
| 27 static inline CXFA_ContainerLayoutItem* GetParent( | |
| 28 CXFA_ContainerLayoutItem* pLayoutItem) { | |
| 29 return static_cast<CXFA_ContainerLayoutItem*>(pLayoutItem->m_pParent); | |
| 30 } | |
| 31 }; | |
| 32 | |
| 33 class CXFA_TraverseStrategy_ContentAreaContainerLayoutItem { | |
| 34 public: | |
| 35 static inline CXFA_ContainerLayoutItem* GetFirstChild( | |
| 36 CXFA_ContainerLayoutItem* pLayoutItem) { | |
| 37 for (CXFA_LayoutItem* pChildItem = pLayoutItem->m_pFirstChild; pChildItem; | |
| 38 pChildItem = pChildItem->m_pNextSibling) { | |
| 39 if (CXFA_ContainerLayoutItem* pContainer = | |
| 40 pChildItem->AsContainerLayoutItem()) { | |
| 41 return pContainer; | |
| 42 } | |
| 43 } | |
| 44 return nullptr; | |
| 45 } | |
| 46 static inline CXFA_ContainerLayoutItem* GetNextSibling( | |
| 47 CXFA_ContainerLayoutItem* pLayoutItem) { | |
| 48 for (CXFA_LayoutItem* pChildItem = pLayoutItem->m_pNextSibling; pChildItem; | |
| 49 pChildItem = pChildItem->m_pNextSibling) { | |
| 50 if (CXFA_ContainerLayoutItem* pContainer = | |
| 51 pChildItem->AsContainerLayoutItem()) { | |
| 52 return pContainer; | |
| 53 } | |
| 54 } | |
| 55 return nullptr; | |
| 56 } | |
| 57 static inline CXFA_ContainerLayoutItem* GetParent( | |
| 58 CXFA_ContainerLayoutItem* pLayoutItem) { | |
| 59 return static_cast<CXFA_ContainerLayoutItem*>(pLayoutItem->m_pParent); | |
| 60 } | |
| 61 }; | |
| 62 | |
| 63 class CXFA_TraverseStrategy_ContentLayoutItem { | |
| 64 public: | |
| 65 static inline CXFA_ContentLayoutItem* GetFirstChild( | |
| 66 CXFA_ContentLayoutItem* pLayoutItem) { | |
| 67 return static_cast<CXFA_ContentLayoutItem*>(pLayoutItem->m_pFirstChild); | |
| 68 } | |
| 69 static inline CXFA_ContentLayoutItem* GetNextSibling( | |
| 70 CXFA_ContentLayoutItem* pLayoutItem) { | |
| 71 return static_cast<CXFA_ContentLayoutItem*>(pLayoutItem->m_pNextSibling); | |
| 72 } | |
| 73 static inline CXFA_ContentLayoutItem* GetParent( | |
| 74 CXFA_ContentLayoutItem* pLayoutItem) { | |
| 75 return static_cast<CXFA_ContentLayoutItem*>(pLayoutItem->m_pParent); | |
| 76 } | |
| 77 }; | |
| 78 | |
| 79 void XFA_ReleaseLayoutItem(CXFA_LayoutItem* pLayoutItem); | |
| 80 | |
| 81 #endif // XFA_FXFA_PARSER_XFA_LAYOUT_APPADAPTER_H_ | |
| OLD | NEW |