| Index: xfa/src/fxfa/src/parser/xfa_layout_pagemgr_new.h
|
| diff --git a/xfa/src/fxfa/src/parser/xfa_layout_pagemgr_new.h b/xfa/src/fxfa/src/parser/xfa_layout_pagemgr_new.h
|
| index b0c96a89b568abbbea85b5b073420d73ba31e948..1bbe9fa0c78d439c3e64b26ccfbd705b532405a5 100644
|
| --- a/xfa/src/fxfa/src/parser/xfa_layout_pagemgr_new.h
|
| +++ b/xfa/src/fxfa/src/parser/xfa_layout_pagemgr_new.h
|
| @@ -1,152 +1,152 @@
|
| -// 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_LAYOUT_PAGEMGR_H_
|
| -#define _XFA_LAYOUT_PAGEMGR_H_
|
| -class CXFA_ContainerRecord {
|
| - public:
|
| - CXFA_ContainerRecord(CXFA_ContainerLayoutItem* pPageSet = NULL,
|
| - CXFA_ContainerLayoutItem* pPageArea = NULL,
|
| - CXFA_ContainerLayoutItem* pContentArea = NULL)
|
| - : pCurPageSet(pPageSet),
|
| - pCurPageArea(pPageArea),
|
| - pCurContentArea(pContentArea) {}
|
| - CXFA_ContainerLayoutItem* pCurPageSet;
|
| - CXFA_ContainerLayoutItem* pCurPageArea;
|
| - CXFA_ContainerLayoutItem* pCurContentArea;
|
| -};
|
| -class CXFA_LayoutPageMgr {
|
| - public:
|
| - CXFA_LayoutPageMgr(CXFA_LayoutProcessor* pLayoutProcessor);
|
| - ~CXFA_LayoutPageMgr();
|
| - FX_BOOL InitLayoutPage(CXFA_Node* pFormNode);
|
| - FX_BOOL PrepareFirstPage(CXFA_Node* pRootSubform);
|
| - FX_FLOAT GetAvailHeight();
|
| - FX_BOOL GetNextAvailContentHeight(FX_FLOAT fChildHeight);
|
| - void SubmitContentItem(CXFA_ContentLayoutItem* pContentLayoutItem,
|
| - XFA_ItemLayoutProcessorResult eStatus);
|
| - void FinishPaginatedPageSets();
|
| - void SyncLayoutData();
|
| - int32_t GetPageCount() const;
|
| - IXFA_LayoutPage* GetPage(int32_t index) const;
|
| - int32_t GetPageIndex(const IXFA_LayoutPage* pPage) const;
|
| - inline CXFA_ContainerLayoutItem* GetRootLayoutItem() const {
|
| - return m_pPageSetLayoutItemRoot;
|
| - }
|
| - FX_BOOL ProcessBreakBeforeOrAfter(CXFA_Node* pBreakNode,
|
| - FX_BOOL bBefore,
|
| - CXFA_Node*& pBreakLeaderNode,
|
| - CXFA_Node*& pBreakTrailerNode,
|
| - FX_BOOL& bCreatePage);
|
| - FX_BOOL ProcessOverflow(CXFA_Node* pFormNode,
|
| - CXFA_Node*& pLeaderNode,
|
| - CXFA_Node*& pTrailerNode,
|
| - FX_BOOL bDataMerge = FALSE,
|
| - FX_BOOL bCreatePage = TRUE);
|
| - CXFA_Node* QueryOverflow(CXFA_Node* pFormNode,
|
| - CXFA_LayoutContext* pLayoutContext = NULL);
|
| - FX_BOOL ProcessBookendLeaderOrTrailer(CXFA_Node* pBookendNode,
|
| - FX_BOOL bLeader,
|
| - CXFA_Node*& pBookendAppendNode);
|
| - CXFA_LayoutItem* FindOrCreateLayoutItem(CXFA_Node* pFormNode);
|
| -
|
| - protected:
|
| - FX_BOOL AppendNewPage(FX_BOOL bFirstTemPage = FALSE);
|
| - void ReorderPendingLayoutRecordToTail(CXFA_ContainerRecord* pNewRecord,
|
| - CXFA_ContainerRecord* pPrevRecord);
|
| - void RemoveLayoutRecord(CXFA_ContainerRecord* pNewRecord,
|
| - CXFA_ContainerRecord* pPrevRecord);
|
| - inline CXFA_ContainerRecord* GetCurrentContainerRecord() {
|
| - CXFA_ContainerRecord* result =
|
| - ((CXFA_ContainerRecord*)m_rgProposedContainerRecord.GetAt(
|
| - m_pCurrentContainerRecord));
|
| - ASSERT(result);
|
| - return result;
|
| - }
|
| - CXFA_ContainerRecord* CreateContainerRecord(CXFA_Node* pPageNode = NULL,
|
| - FX_BOOL bCreateNew = FALSE);
|
| - void AddPageAreaLayoutItem(CXFA_ContainerRecord* pNewRecord,
|
| - CXFA_Node* pNewPageArea);
|
| - void AddContentAreaLayoutItem(CXFA_ContainerRecord* pNewRecord,
|
| - CXFA_Node* pContentArea);
|
| - FX_BOOL RunBreak(XFA_ELEMENT eBreakType,
|
| - XFA_ATTRIBUTEENUM eTargetType,
|
| - CXFA_Node* pTarget,
|
| - FX_BOOL bStartNew);
|
| - CXFA_Node* BreakOverflow(CXFA_Node* pOverflowNode,
|
| - CXFA_Node*& pLeaderTemplate,
|
| - CXFA_Node*& pTrailerTemplate,
|
| - FX_BOOL bCreatePage = TRUE);
|
| - FX_BOOL ResolveBookendLeaderOrTrailer(CXFA_Node* pBookendNode,
|
| - FX_BOOL bLeader,
|
| - CXFA_Node*& pBookendAppendTemplate);
|
| - FX_BOOL ExecuteBreakBeforeOrAfter(CXFA_Node* pCurNode,
|
| - FX_BOOL bBefore,
|
| - CXFA_Node*& pBreakLeaderTemplate,
|
| - CXFA_Node*& pBreakTrailerTemplate);
|
| -
|
| - int32_t CreateMinPageRecord(CXFA_Node* pPageArea,
|
| - FX_BOOL bTargetPageArea,
|
| - FX_BOOL bCreateLast = FALSE);
|
| - void CreateMinPageSetRecord(CXFA_Node* pPageSet, FX_BOOL bCreateAll = FALSE);
|
| - void CreateNextMinRecord(CXFA_Node* pRecordNode);
|
| - FX_BOOL FindPageAreaFromPageSet(CXFA_Node* pPageSet,
|
| - CXFA_Node* pStartChild,
|
| - CXFA_Node* pTargetPageArea = NULL,
|
| - CXFA_Node* pTargetContentArea = NULL,
|
| - FX_BOOL bNewPage = FALSE,
|
| - FX_BOOL bQuery = FALSE);
|
| - FX_BOOL FindPageAreaFromPageSet_Ordered(CXFA_Node* pPageSet,
|
| - CXFA_Node* pStartChild,
|
| - CXFA_Node* pTargetPageArea = NULL,
|
| - CXFA_Node* pTargetContentArea = NULL,
|
| - FX_BOOL bNewPage = FALSE,
|
| - FX_BOOL bQuery = FALSE);
|
| - FX_BOOL FindPageAreaFromPageSet_SimplexDuplex(
|
| - CXFA_Node* pPageSet,
|
| - CXFA_Node* pStartChild,
|
| - CXFA_Node* pTargetPageArea = NULL,
|
| - CXFA_Node* pTargetContentArea = NULL,
|
| - FX_BOOL bNewPage = FALSE,
|
| - FX_BOOL bQuery = FALSE,
|
| - XFA_ATTRIBUTEENUM ePreferredPosition = XFA_ATTRIBUTEENUM_First);
|
| - FX_BOOL MatchPageAreaOddOrEven(CXFA_Node* pPageArea, FX_BOOL bLastMatch);
|
| - CXFA_Node* GetNextAvailPageArea(CXFA_Node* pTargetPageArea,
|
| - CXFA_Node* pTargetContentArea = NULL,
|
| - FX_BOOL bNewPage = FALSE,
|
| - FX_BOOL bQuery = FALSE);
|
| - FX_BOOL GetNextContentArea(CXFA_Node* pTargetContentArea);
|
| - void InitPageSetMap();
|
| - void ProcessLastPageSet();
|
| - inline FX_BOOL IsPageSetRootOrderedOccurrence() {
|
| - return m_ePageSetMode == XFA_ATTRIBUTEENUM_OrderedOccurrence;
|
| - }
|
| - void ClearData();
|
| - void ClearRecordList();
|
| - void MergePageSetContents();
|
| - void LayoutPageSetContents();
|
| - void PrepareLayout();
|
| -#if defined(_XFA_LAYOUTITEM_MAPCACHE_) || defined(_XFA_LAYOUTITEM_ProcessCACHE_)
|
| - void SaveLayoutItem(CXFA_LayoutItem* pParentLayoutItem);
|
| -#endif
|
| - CXFA_LayoutProcessor* m_pLayoutProcessor;
|
| - CXFA_Node* m_pTemplatePageSetRoot;
|
| - CXFA_ContainerLayoutItem* m_pPageSetLayoutItemRoot;
|
| - CXFA_ContainerLayoutItem* m_pPageSetCurRoot;
|
| - FX_POSITION m_pCurrentContainerRecord;
|
| - CFX_PtrList m_rgProposedContainerRecord;
|
| - CXFA_Node* m_pCurPageArea;
|
| - int32_t m_nAvailPages;
|
| - int32_t m_nCurPageCount;
|
| - XFA_ATTRIBUTEENUM m_ePageSetMode;
|
| - FX_BOOL m_bCreateOverFlowPage;
|
| - CFX_MapPtrTemplate<CXFA_Node*, int32_t> m_pPageSetMap;
|
| - CFX_ArrayTemplate<CXFA_ContainerLayoutItem*> m_PageArray;
|
| -#ifdef _XFA_LAYOUTITEM_MAPCACHE_
|
| - CFX_MapPtrToPtr m_NodeToContent;
|
| -#endif
|
| -};
|
| -#endif
|
| +// 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_LAYOUT_PAGEMGR_H_
|
| +#define _XFA_LAYOUT_PAGEMGR_H_
|
| +class CXFA_ContainerRecord {
|
| + public:
|
| + CXFA_ContainerRecord(CXFA_ContainerLayoutItem* pPageSet = NULL,
|
| + CXFA_ContainerLayoutItem* pPageArea = NULL,
|
| + CXFA_ContainerLayoutItem* pContentArea = NULL)
|
| + : pCurPageSet(pPageSet),
|
| + pCurPageArea(pPageArea),
|
| + pCurContentArea(pContentArea) {}
|
| + CXFA_ContainerLayoutItem* pCurPageSet;
|
| + CXFA_ContainerLayoutItem* pCurPageArea;
|
| + CXFA_ContainerLayoutItem* pCurContentArea;
|
| +};
|
| +class CXFA_LayoutPageMgr {
|
| + public:
|
| + CXFA_LayoutPageMgr(CXFA_LayoutProcessor* pLayoutProcessor);
|
| + ~CXFA_LayoutPageMgr();
|
| + FX_BOOL InitLayoutPage(CXFA_Node* pFormNode);
|
| + FX_BOOL PrepareFirstPage(CXFA_Node* pRootSubform);
|
| + FX_FLOAT GetAvailHeight();
|
| + FX_BOOL GetNextAvailContentHeight(FX_FLOAT fChildHeight);
|
| + void SubmitContentItem(CXFA_ContentLayoutItem* pContentLayoutItem,
|
| + XFA_ItemLayoutProcessorResult eStatus);
|
| + void FinishPaginatedPageSets();
|
| + void SyncLayoutData();
|
| + int32_t GetPageCount() const;
|
| + IXFA_LayoutPage* GetPage(int32_t index) const;
|
| + int32_t GetPageIndex(const IXFA_LayoutPage* pPage) const;
|
| + inline CXFA_ContainerLayoutItem* GetRootLayoutItem() const {
|
| + return m_pPageSetLayoutItemRoot;
|
| + }
|
| + FX_BOOL ProcessBreakBeforeOrAfter(CXFA_Node* pBreakNode,
|
| + FX_BOOL bBefore,
|
| + CXFA_Node*& pBreakLeaderNode,
|
| + CXFA_Node*& pBreakTrailerNode,
|
| + FX_BOOL& bCreatePage);
|
| + FX_BOOL ProcessOverflow(CXFA_Node* pFormNode,
|
| + CXFA_Node*& pLeaderNode,
|
| + CXFA_Node*& pTrailerNode,
|
| + FX_BOOL bDataMerge = FALSE,
|
| + FX_BOOL bCreatePage = TRUE);
|
| + CXFA_Node* QueryOverflow(CXFA_Node* pFormNode,
|
| + CXFA_LayoutContext* pLayoutContext = NULL);
|
| + FX_BOOL ProcessBookendLeaderOrTrailer(CXFA_Node* pBookendNode,
|
| + FX_BOOL bLeader,
|
| + CXFA_Node*& pBookendAppendNode);
|
| + CXFA_LayoutItem* FindOrCreateLayoutItem(CXFA_Node* pFormNode);
|
| +
|
| + protected:
|
| + FX_BOOL AppendNewPage(FX_BOOL bFirstTemPage = FALSE);
|
| + void ReorderPendingLayoutRecordToTail(CXFA_ContainerRecord* pNewRecord,
|
| + CXFA_ContainerRecord* pPrevRecord);
|
| + void RemoveLayoutRecord(CXFA_ContainerRecord* pNewRecord,
|
| + CXFA_ContainerRecord* pPrevRecord);
|
| + inline CXFA_ContainerRecord* GetCurrentContainerRecord() {
|
| + CXFA_ContainerRecord* result =
|
| + ((CXFA_ContainerRecord*)m_rgProposedContainerRecord.GetAt(
|
| + m_pCurrentContainerRecord));
|
| + ASSERT(result);
|
| + return result;
|
| + }
|
| + CXFA_ContainerRecord* CreateContainerRecord(CXFA_Node* pPageNode = NULL,
|
| + FX_BOOL bCreateNew = FALSE);
|
| + void AddPageAreaLayoutItem(CXFA_ContainerRecord* pNewRecord,
|
| + CXFA_Node* pNewPageArea);
|
| + void AddContentAreaLayoutItem(CXFA_ContainerRecord* pNewRecord,
|
| + CXFA_Node* pContentArea);
|
| + FX_BOOL RunBreak(XFA_ELEMENT eBreakType,
|
| + XFA_ATTRIBUTEENUM eTargetType,
|
| + CXFA_Node* pTarget,
|
| + FX_BOOL bStartNew);
|
| + CXFA_Node* BreakOverflow(CXFA_Node* pOverflowNode,
|
| + CXFA_Node*& pLeaderTemplate,
|
| + CXFA_Node*& pTrailerTemplate,
|
| + FX_BOOL bCreatePage = TRUE);
|
| + FX_BOOL ResolveBookendLeaderOrTrailer(CXFA_Node* pBookendNode,
|
| + FX_BOOL bLeader,
|
| + CXFA_Node*& pBookendAppendTemplate);
|
| + FX_BOOL ExecuteBreakBeforeOrAfter(CXFA_Node* pCurNode,
|
| + FX_BOOL bBefore,
|
| + CXFA_Node*& pBreakLeaderTemplate,
|
| + CXFA_Node*& pBreakTrailerTemplate);
|
| +
|
| + int32_t CreateMinPageRecord(CXFA_Node* pPageArea,
|
| + FX_BOOL bTargetPageArea,
|
| + FX_BOOL bCreateLast = FALSE);
|
| + void CreateMinPageSetRecord(CXFA_Node* pPageSet, FX_BOOL bCreateAll = FALSE);
|
| + void CreateNextMinRecord(CXFA_Node* pRecordNode);
|
| + FX_BOOL FindPageAreaFromPageSet(CXFA_Node* pPageSet,
|
| + CXFA_Node* pStartChild,
|
| + CXFA_Node* pTargetPageArea = NULL,
|
| + CXFA_Node* pTargetContentArea = NULL,
|
| + FX_BOOL bNewPage = FALSE,
|
| + FX_BOOL bQuery = FALSE);
|
| + FX_BOOL FindPageAreaFromPageSet_Ordered(CXFA_Node* pPageSet,
|
| + CXFA_Node* pStartChild,
|
| + CXFA_Node* pTargetPageArea = NULL,
|
| + CXFA_Node* pTargetContentArea = NULL,
|
| + FX_BOOL bNewPage = FALSE,
|
| + FX_BOOL bQuery = FALSE);
|
| + FX_BOOL FindPageAreaFromPageSet_SimplexDuplex(
|
| + CXFA_Node* pPageSet,
|
| + CXFA_Node* pStartChild,
|
| + CXFA_Node* pTargetPageArea = NULL,
|
| + CXFA_Node* pTargetContentArea = NULL,
|
| + FX_BOOL bNewPage = FALSE,
|
| + FX_BOOL bQuery = FALSE,
|
| + XFA_ATTRIBUTEENUM ePreferredPosition = XFA_ATTRIBUTEENUM_First);
|
| + FX_BOOL MatchPageAreaOddOrEven(CXFA_Node* pPageArea, FX_BOOL bLastMatch);
|
| + CXFA_Node* GetNextAvailPageArea(CXFA_Node* pTargetPageArea,
|
| + CXFA_Node* pTargetContentArea = NULL,
|
| + FX_BOOL bNewPage = FALSE,
|
| + FX_BOOL bQuery = FALSE);
|
| + FX_BOOL GetNextContentArea(CXFA_Node* pTargetContentArea);
|
| + void InitPageSetMap();
|
| + void ProcessLastPageSet();
|
| + inline FX_BOOL IsPageSetRootOrderedOccurrence() {
|
| + return m_ePageSetMode == XFA_ATTRIBUTEENUM_OrderedOccurrence;
|
| + }
|
| + void ClearData();
|
| + void ClearRecordList();
|
| + void MergePageSetContents();
|
| + void LayoutPageSetContents();
|
| + void PrepareLayout();
|
| +#if defined(_XFA_LAYOUTITEM_MAPCACHE_) || defined(_XFA_LAYOUTITEM_ProcessCACHE_)
|
| + void SaveLayoutItem(CXFA_LayoutItem* pParentLayoutItem);
|
| +#endif
|
| + CXFA_LayoutProcessor* m_pLayoutProcessor;
|
| + CXFA_Node* m_pTemplatePageSetRoot;
|
| + CXFA_ContainerLayoutItem* m_pPageSetLayoutItemRoot;
|
| + CXFA_ContainerLayoutItem* m_pPageSetCurRoot;
|
| + FX_POSITION m_pCurrentContainerRecord;
|
| + CFX_PtrList m_rgProposedContainerRecord;
|
| + CXFA_Node* m_pCurPageArea;
|
| + int32_t m_nAvailPages;
|
| + int32_t m_nCurPageCount;
|
| + XFA_ATTRIBUTEENUM m_ePageSetMode;
|
| + FX_BOOL m_bCreateOverFlowPage;
|
| + CFX_MapPtrTemplate<CXFA_Node*, int32_t> m_pPageSetMap;
|
| + CFX_ArrayTemplate<CXFA_ContainerLayoutItem*> m_PageArray;
|
| +#ifdef _XFA_LAYOUTITEM_MAPCACHE_
|
| + CFX_MapPtrToPtr m_NodeToContent;
|
| +#endif
|
| +};
|
| +#endif
|
|
|