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