summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordsinclair <dsinclair@chromium.org>2016-08-03 10:20:32 -0700
committerCommit bot <commit-bot@chromium.org>2016-08-03 10:20:32 -0700
commit6ea5ba035a396bf0956b4b4ab3a5b3ee33b6c546 (patch)
tree04083808d748c93226f6c3752fb05f47fc0851cb
parente85f971fe9ba628e46bcb0709d5da4368c15d0b0 (diff)
downloadpdfium-6ea5ba035a396bf0956b4b4ab3a5b3ee33b6c546.tar.xz
Split xfa_layout_appadapter
This moves the needed traverse strategies into their own files, removes the unused one and cleans up the includes. Review-Url: https://codereview.chromium.org/2207033002
-rw-r--r--BUILD.gn4
-rw-r--r--xfa.gyp4
-rw-r--r--xfa/fxfa/parser/cscript_layoutpseudomodel.cpp2
-rw-r--r--xfa/fxfa/parser/cxfa_layoutitem.cpp23
-rw-r--r--xfa/fxfa/parser/cxfa_layoutitem.h2
-rw-r--r--xfa/fxfa/parser/cxfa_layoutprocessor.cpp2
-rw-r--r--xfa/fxfa/parser/cxfa_traversestrategy_contentareacontainerlayoutitem.h44
-rw-r--r--xfa/fxfa/parser/cxfa_traversestrategy_contentlayoutitem.h30
-rw-r--r--xfa/fxfa/parser/xfa_layout_appadapter.cpp36
-rw-r--r--xfa/fxfa/parser/xfa_layout_appadapter.h81
-rw-r--r--xfa/fxfa/parser/xfa_layout_itemlayout.cpp3
-rw-r--r--xfa/fxfa/parser/xfa_layout_pagemgr_new.cpp4
12 files changed, 110 insertions, 125 deletions
diff --git a/BUILD.gn b/BUILD.gn
index a03102aa7a..0b9b4e0a95 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -1473,6 +1473,8 @@ if (pdf_enable_xfa) {
"xfa/fxfa/parser/cxfa_thisproxy.cpp",
"xfa/fxfa/parser/cxfa_tooltip.cpp",
"xfa/fxfa/parser/cxfa_tooltip.h",
+ "xfa/fxfa/parser/cxfa_traversestrategy_contentareacontainerlayoutitem.h",
+ "xfa/fxfa/parser/cxfa_traversestrategy_contentlayoutitem.h",
"xfa/fxfa/parser/cxfa_traversestrategy_layoutitem.h",
"xfa/fxfa/parser/cxfa_validate.cpp",
"xfa/fxfa/parser/cxfa_validate.h",
@@ -1496,8 +1498,6 @@ if (pdf_enable_xfa) {
"xfa/fxfa/parser/xfa_basic_data_packets.cpp",
"xfa/fxfa/parser/xfa_document_datamerger_imp.cpp",
"xfa/fxfa/parser/xfa_document_datamerger_imp.h",
- "xfa/fxfa/parser/xfa_layout_appadapter.cpp",
- "xfa/fxfa/parser/xfa_layout_appadapter.h",
"xfa/fxfa/parser/xfa_layout_itemlayout.cpp",
"xfa/fxfa/parser/xfa_layout_itemlayout.h",
"xfa/fxfa/parser/xfa_layout_pagemgr_new.cpp",
diff --git a/xfa.gyp b/xfa.gyp
index b3114580ba..1a1849425f 100644
--- a/xfa.gyp
+++ b/xfa.gyp
@@ -531,6 +531,8 @@
"xfa/fxfa/parser/cxfa_thisproxy.cpp",
"xfa/fxfa/parser/cxfa_tooltip.cpp",
"xfa/fxfa/parser/cxfa_tooltip.h",
+ "xfa/fxfa/parser/cxfa_traversestrategy_contentareacontainerlayoutitem.h",
+ "xfa/fxfa/parser/cxfa_traversestrategy_contentlayoutitem.h",
"xfa/fxfa/parser/cxfa_traversestrategy_layoutitem.h",
"xfa/fxfa/parser/cxfa_validate.cpp",
"xfa/fxfa/parser/cxfa_validate.h",
@@ -554,8 +556,6 @@
"xfa/fxfa/parser/xfa_basic_data.h",
"xfa/fxfa/parser/xfa_document_datamerger_imp.cpp",
"xfa/fxfa/parser/xfa_document_datamerger_imp.h",
- "xfa/fxfa/parser/xfa_layout_appadapter.cpp",
- "xfa/fxfa/parser/xfa_layout_appadapter.h",
"xfa/fxfa/parser/xfa_layout_itemlayout.cpp",
"xfa/fxfa/parser/xfa_layout_itemlayout.h",
"xfa/fxfa/parser/xfa_layout_pagemgr_new.cpp",
diff --git a/xfa/fxfa/parser/cscript_layoutpseudomodel.cpp b/xfa/fxfa/parser/cscript_layoutpseudomodel.cpp
index 492e8d9db9..b8330ed909 100644
--- a/xfa/fxfa/parser/cscript_layoutpseudomodel.cpp
+++ b/xfa/fxfa/parser/cscript_layoutpseudomodel.cpp
@@ -18,7 +18,7 @@
#include "xfa/fxfa/parser/cxfa_layoutprocessor.h"
#include "xfa/fxfa/parser/cxfa_measurement.h"
#include "xfa/fxfa/parser/cxfa_scriptcontext.h"
-#include "xfa/fxfa/parser/xfa_layout_appadapter.h"
+#include "xfa/fxfa/parser/cxfa_traversestrategy_contentlayoutitem.h"
#include "xfa/fxfa/parser/xfa_localemgr.h"
#include "xfa/fxfa/parser/xfa_object.h"
#include "xfa/fxfa/parser/xfa_utils.h"
diff --git a/xfa/fxfa/parser/cxfa_layoutitem.cpp b/xfa/fxfa/parser/cxfa_layoutitem.cpp
index a9ba3490d8..ebe33b650f 100644
--- a/xfa/fxfa/parser/cxfa_layoutitem.cpp
+++ b/xfa/fxfa/parser/cxfa_layoutitem.cpp
@@ -6,9 +6,32 @@
#include "xfa/fxfa/parser/cxfa_layoutitem.h"
+#include "xfa/fxfa/app/xfa_ffnotify.h"
#include "xfa/fxfa/parser/cxfa_containerlayoutitem.h"
#include "xfa/fxfa/parser/cxfa_contentlayoutitem.h"
+void XFA_ReleaseLayoutItem(CXFA_LayoutItem* pLayoutItem) {
+ CXFA_LayoutItem* pNode = pLayoutItem->m_pFirstChild;
+ CXFA_FFNotify* pNotify = pLayoutItem->m_pFormNode->GetDocument()->GetNotify();
+ CXFA_LayoutProcessor* pDocLayout =
+ pLayoutItem->m_pFormNode->GetDocument()->GetDocLayout();
+ while (pNode) {
+ CXFA_LayoutItem* pNext = pNode->m_pNextSibling;
+ pNode->m_pParent = nullptr;
+ pNotify->OnLayoutItemRemoving(pDocLayout,
+ static_cast<CXFA_LayoutItem*>(pNode));
+ XFA_ReleaseLayoutItem(pNode);
+ pNode = pNext;
+ }
+
+ pNotify->OnLayoutItemRemoving(pDocLayout, pLayoutItem);
+ if (pLayoutItem->m_pFormNode->GetElementType() == XFA_Element::PageArea) {
+ pNotify->OnPageEvent(static_cast<CXFA_ContainerLayoutItem*>(pLayoutItem),
+ XFA_PAGEVIEWEVENT_PostRemoved);
+ }
+ delete pLayoutItem;
+}
+
CXFA_LayoutItem::CXFA_LayoutItem(CXFA_Node* pNode, FX_BOOL bIsContentLayoutItem)
: m_pFormNode(pNode),
m_pParent(nullptr),
diff --git a/xfa/fxfa/parser/cxfa_layoutitem.h b/xfa/fxfa/parser/cxfa_layoutitem.h
index c8b29811e8..bacb2b8682 100644
--- a/xfa/fxfa/parser/cxfa_layoutitem.h
+++ b/xfa/fxfa/parser/cxfa_layoutitem.h
@@ -13,6 +13,8 @@ class CXFA_ContainerLayoutItem;
class CXFA_ContentLayoutItem;
class CXFA_LayoutProcessor;
+void XFA_ReleaseLayoutItem(CXFA_LayoutItem* pLayoutItem);
+
class CXFA_LayoutItem {
public:
virtual ~CXFA_LayoutItem();
diff --git a/xfa/fxfa/parser/cxfa_layoutprocessor.cpp b/xfa/fxfa/parser/cxfa_layoutprocessor.cpp
index 89ea0ce5bb..875bcc6542 100644
--- a/xfa/fxfa/parser/cxfa_layoutprocessor.cpp
+++ b/xfa/fxfa/parser/cxfa_layoutprocessor.cpp
@@ -6,10 +6,10 @@
#include "xfa/fxfa/parser/cxfa_layoutprocessor.h"
+#include "xfa/fxfa/parser/cxfa_contentlayoutitem.h"
#include "xfa/fxfa/parser/cxfa_document.h"
#include "xfa/fxfa/parser/cxfa_measurement.h"
#include "xfa/fxfa/parser/xfa_document_datamerger_imp.h"
-#include "xfa/fxfa/parser/xfa_layout_appadapter.h"
#include "xfa/fxfa/parser/xfa_layout_itemlayout.h"
#include "xfa/fxfa/parser/xfa_layout_pagemgr_new.h"
#include "xfa/fxfa/parser/xfa_localemgr.h"
diff --git a/xfa/fxfa/parser/cxfa_traversestrategy_contentareacontainerlayoutitem.h b/xfa/fxfa/parser/cxfa_traversestrategy_contentareacontainerlayoutitem.h
new file mode 100644
index 0000000000..e0a584edf0
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_traversestrategy_contentareacontainerlayoutitem.h
@@ -0,0 +1,44 @@
+// Copyright 2016 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 XFA_FXFA_PARSER_CXFA_TRAVERSESTRATEGY_CONTENTAREACONTAINERLAYOUTITEM_H_
+#define XFA_FXFA_PARSER_CXFA_TRAVERSESTRATEGY_CONTENTAREACONTAINERLAYOUTITEM_H_
+
+#include "xfa/fxfa/parser/cxfa_containerlayoutitem.h"
+
+class CXFA_TraverseStrategy_ContentAreaContainerLayoutItem {
+ public:
+ static CXFA_ContainerLayoutItem* GetFirstChild(
+ CXFA_ContainerLayoutItem* pLayoutItem) {
+ for (CXFA_LayoutItem* pChildItem = pLayoutItem->m_pFirstChild; pChildItem;
+ pChildItem = pChildItem->m_pNextSibling) {
+ if (CXFA_ContainerLayoutItem* pContainer =
+ pChildItem->AsContainerLayoutItem()) {
+ return pContainer;
+ }
+ }
+ return nullptr;
+ }
+
+ static CXFA_ContainerLayoutItem* GetNextSibling(
+ CXFA_ContainerLayoutItem* pLayoutItem) {
+ for (CXFA_LayoutItem* pChildItem = pLayoutItem->m_pNextSibling; pChildItem;
+ pChildItem = pChildItem->m_pNextSibling) {
+ if (CXFA_ContainerLayoutItem* pContainer =
+ pChildItem->AsContainerLayoutItem()) {
+ return pContainer;
+ }
+ }
+ return nullptr;
+ }
+
+ static CXFA_ContainerLayoutItem* GetParent(
+ CXFA_ContainerLayoutItem* pLayoutItem) {
+ return static_cast<CXFA_ContainerLayoutItem*>(pLayoutItem->m_pParent);
+ }
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_TRAVERSESTRATEGY_CONTENTAREACONTAINERLAYOUTITEM_H_
diff --git a/xfa/fxfa/parser/cxfa_traversestrategy_contentlayoutitem.h b/xfa/fxfa/parser/cxfa_traversestrategy_contentlayoutitem.h
new file mode 100644
index 0000000000..de0d52ab10
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_traversestrategy_contentlayoutitem.h
@@ -0,0 +1,30 @@
+// Copyright 2016 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 XFA_FXFA_PARSER_CXFA_TRAVERSESTRATEGY_CONTENTLAYOUTITEM_H_
+#define XFA_FXFA_PARSER_CXFA_TRAVERSESTRATEGY_CONTENTLAYOUTITEM_H_
+
+#include "xfa/fxfa/parser/cxfa_contentlayoutitem.h"
+
+class CXFA_TraverseStrategy_ContentLayoutItem {
+ public:
+ static CXFA_ContentLayoutItem* GetFirstChild(
+ CXFA_ContentLayoutItem* pLayoutItem) {
+ return static_cast<CXFA_ContentLayoutItem*>(pLayoutItem->m_pFirstChild);
+ }
+
+ static CXFA_ContentLayoutItem* GetNextSibling(
+ CXFA_ContentLayoutItem* pLayoutItem) {
+ return static_cast<CXFA_ContentLayoutItem*>(pLayoutItem->m_pNextSibling);
+ }
+
+ static CXFA_ContentLayoutItem* GetParent(
+ CXFA_ContentLayoutItem* pLayoutItem) {
+ return static_cast<CXFA_ContentLayoutItem*>(pLayoutItem->m_pParent);
+ }
+};
+
+#endif // XFA_FXFA_PARSER_CXFA_TRAVERSESTRATEGY_CONTENTLAYOUTITEM_H_
diff --git a/xfa/fxfa/parser/xfa_layout_appadapter.cpp b/xfa/fxfa/parser/xfa_layout_appadapter.cpp
deleted file mode 100644
index fdf9a27d0b..0000000000
--- a/xfa/fxfa/parser/xfa_layout_appadapter.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-// 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
-
-#include "xfa/fxfa/parser/xfa_layout_appadapter.h"
-
-#include "xfa/fxfa/app/xfa_ffnotify.h"
-#include "xfa/fxfa/parser/cxfa_document.h"
-#include "xfa/fxfa/parser/xfa_layout_itemlayout.h"
-#include "xfa/fxfa/parser/xfa_layout_pagemgr_new.h"
-#include "xfa/fxfa/parser/xfa_localemgr.h"
-#include "xfa/fxfa/parser/xfa_object.h"
-#include "xfa/fxfa/parser/xfa_utils.h"
-
-void XFA_ReleaseLayoutItem(CXFA_LayoutItem* pLayoutItem) {
- CXFA_LayoutItem* pNode = pLayoutItem->m_pFirstChild;
- CXFA_FFNotify* pNotify = pLayoutItem->m_pFormNode->GetDocument()->GetNotify();
- CXFA_LayoutProcessor* pDocLayout =
- pLayoutItem->m_pFormNode->GetDocument()->GetDocLayout();
- while (pNode) {
- CXFA_LayoutItem* pNext = pNode->m_pNextSibling;
- pNode->m_pParent = nullptr;
- pNotify->OnLayoutItemRemoving(pDocLayout,
- static_cast<CXFA_LayoutItem*>(pNode));
- XFA_ReleaseLayoutItem(pNode);
- pNode = pNext;
- }
- pNotify->OnLayoutItemRemoving(pDocLayout, pLayoutItem);
- if (pLayoutItem->m_pFormNode->GetElementType() == XFA_Element::PageArea) {
- pNotify->OnPageEvent(static_cast<CXFA_ContainerLayoutItem*>(pLayoutItem),
- XFA_PAGEVIEWEVENT_PostRemoved);
- }
- delete pLayoutItem;
-}
diff --git a/xfa/fxfa/parser/xfa_layout_appadapter.h b/xfa/fxfa/parser/xfa_layout_appadapter.h
deleted file mode 100644
index 7de62e6282..0000000000
--- a/xfa/fxfa/parser/xfa_layout_appadapter.h
+++ /dev/null
@@ -1,81 +0,0 @@
-// 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 XFA_FXFA_PARSER_XFA_LAYOUT_APPADAPTER_H_
-#define XFA_FXFA_PARSER_XFA_LAYOUT_APPADAPTER_H_
-
-#include "xfa/fxfa/parser/cxfa_containerlayoutitem.h"
-#include "xfa/fxfa/parser/cxfa_contentlayoutitem.h"
-#include "xfa/fxfa/parser/cxfa_layoutitem.h"
-
-class CXFA_TraverseStrategy_PageAreaContainerLayoutItem {
- public:
- static inline CXFA_ContainerLayoutItem* GetFirstChild(
- CXFA_ContainerLayoutItem* pLayoutItem) {
- if (pLayoutItem->m_pFormNode->GetElementType() == XFA_Element::PageSet) {
- return static_cast<CXFA_ContainerLayoutItem*>(pLayoutItem->m_pFirstChild);
- }
- return nullptr;
- }
- static inline CXFA_ContainerLayoutItem* GetNextSibling(
- CXFA_ContainerLayoutItem* pLayoutItem) {
- return (CXFA_ContainerLayoutItem*)pLayoutItem->m_pNextSibling;
- }
- static inline CXFA_ContainerLayoutItem* GetParent(
- CXFA_ContainerLayoutItem* pLayoutItem) {
- return static_cast<CXFA_ContainerLayoutItem*>(pLayoutItem->m_pParent);
- }
-};
-
-class CXFA_TraverseStrategy_ContentAreaContainerLayoutItem {
- public:
- static inline CXFA_ContainerLayoutItem* GetFirstChild(
- CXFA_ContainerLayoutItem* pLayoutItem) {
- for (CXFA_LayoutItem* pChildItem = pLayoutItem->m_pFirstChild; pChildItem;
- pChildItem = pChildItem->m_pNextSibling) {
- if (CXFA_ContainerLayoutItem* pContainer =
- pChildItem->AsContainerLayoutItem()) {
- return pContainer;
- }
- }
- return nullptr;
- }
- static inline CXFA_ContainerLayoutItem* GetNextSibling(
- CXFA_ContainerLayoutItem* pLayoutItem) {
- for (CXFA_LayoutItem* pChildItem = pLayoutItem->m_pNextSibling; pChildItem;
- pChildItem = pChildItem->m_pNextSibling) {
- if (CXFA_ContainerLayoutItem* pContainer =
- pChildItem->AsContainerLayoutItem()) {
- return pContainer;
- }
- }
- return nullptr;
- }
- static inline CXFA_ContainerLayoutItem* GetParent(
- CXFA_ContainerLayoutItem* pLayoutItem) {
- return static_cast<CXFA_ContainerLayoutItem*>(pLayoutItem->m_pParent);
- }
-};
-
-class CXFA_TraverseStrategy_ContentLayoutItem {
- public:
- static inline CXFA_ContentLayoutItem* GetFirstChild(
- CXFA_ContentLayoutItem* pLayoutItem) {
- return static_cast<CXFA_ContentLayoutItem*>(pLayoutItem->m_pFirstChild);
- }
- static inline CXFA_ContentLayoutItem* GetNextSibling(
- CXFA_ContentLayoutItem* pLayoutItem) {
- return static_cast<CXFA_ContentLayoutItem*>(pLayoutItem->m_pNextSibling);
- }
- static inline CXFA_ContentLayoutItem* GetParent(
- CXFA_ContentLayoutItem* pLayoutItem) {
- return static_cast<CXFA_ContentLayoutItem*>(pLayoutItem->m_pParent);
- }
-};
-
-void XFA_ReleaseLayoutItem(CXFA_LayoutItem* pLayoutItem);
-
-#endif // XFA_FXFA_PARSER_XFA_LAYOUT_APPADAPTER_H_
diff --git a/xfa/fxfa/parser/xfa_layout_itemlayout.cpp b/xfa/fxfa/parser/xfa_layout_itemlayout.cpp
index 2a467a54f1..72a3ff4f18 100644
--- a/xfa/fxfa/parser/xfa_layout_itemlayout.cpp
+++ b/xfa/fxfa/parser/xfa_layout_itemlayout.cpp
@@ -10,10 +10,11 @@
#include <memory>
#include "xfa/fxfa/app/xfa_ffnotify.h"
+#include "xfa/fxfa/parser/cxfa_containerlayoutitem.h"
+#include "xfa/fxfa/parser/cxfa_contentlayoutitem.h"
#include "xfa/fxfa/parser/cxfa_document.h"
#include "xfa/fxfa/parser/cxfa_measurement.h"
#include "xfa/fxfa/parser/cxfa_occur.h"
-#include "xfa/fxfa/parser/xfa_layout_appadapter.h"
#include "xfa/fxfa/parser/xfa_layout_pagemgr_new.h"
#include "xfa/fxfa/parser/xfa_localemgr.h"
#include "xfa/fxfa/parser/xfa_object.h"
diff --git a/xfa/fxfa/parser/xfa_layout_pagemgr_new.cpp b/xfa/fxfa/parser/xfa_layout_pagemgr_new.cpp
index 914ce6fb36..a88ccce330 100644
--- a/xfa/fxfa/parser/xfa_layout_pagemgr_new.cpp
+++ b/xfa/fxfa/parser/xfa_layout_pagemgr_new.cpp
@@ -7,13 +7,15 @@
#include "xfa/fxfa/parser/xfa_layout_pagemgr_new.h"
#include "xfa/fxfa/app/xfa_ffnotify.h"
+#include "xfa/fxfa/parser/cxfa_containerlayoutitem.h"
+#include "xfa/fxfa/parser/cxfa_contentlayoutitem.h"
#include "xfa/fxfa/parser/cxfa_document.h"
#include "xfa/fxfa/parser/cxfa_layoutprocessor.h"
#include "xfa/fxfa/parser/cxfa_measurement.h"
#include "xfa/fxfa/parser/cxfa_scriptcontext.h"
+#include "xfa/fxfa/parser/cxfa_traversestrategy_contentareacontainerlayoutitem.h"
#include "xfa/fxfa/parser/cxfa_traversestrategy_layoutitem.h"
#include "xfa/fxfa/parser/xfa_document_datamerger_imp.h"
-#include "xfa/fxfa/parser/xfa_layout_appadapter.h"
#include "xfa/fxfa/parser/xfa_layout_itemlayout.h"
#include "xfa/fxfa/parser/xfa_localemgr.h"
#include "xfa/fxfa/parser/xfa_object.h"