diff options
Diffstat (limited to 'xfa/fxfa/parser/xfa_layout_itemlayout.h')
-rw-r--r-- | xfa/fxfa/parser/xfa_layout_itemlayout.h | 188 |
1 files changed, 0 insertions, 188 deletions
diff --git a/xfa/fxfa/parser/xfa_layout_itemlayout.h b/xfa/fxfa/parser/xfa_layout_itemlayout.h deleted file mode 100644 index 9b8cd2f31a..0000000000 --- a/xfa/fxfa/parser/xfa_layout_itemlayout.h +++ /dev/null @@ -1,188 +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_ITEMLAYOUT_H_ -#define XFA_FXFA_PARSER_XFA_LAYOUT_ITEMLAYOUT_H_ - -#include <float.h> - -#include <list> -#include <map> -#include <tuple> -#include <vector> - -#include "core/fxcrt/fx_basic.h" -#include "core/fxcrt/fx_coordinates.h" -#include "xfa/fxfa/fxfa_basic.h" - -#define XFA_LAYOUT_INVALIDNODE ((CXFA_Node*)(intptr_t)-1) -#define XFA_LAYOUT_FLOAT_PERCISION (0.0005f) - -class CXFA_ContainerLayoutItem; -class CXFA_ContentLayoutItem; -class CXFA_ItemLayoutProcessor; -class CXFA_LayoutPageMgr; -class CXFA_LayoutProcessor; -class CXFA_Node; - -enum class XFA_ItemLayoutProcessorResult { - Done, - PageFullBreak, - RowFullBreak, - ManualBreak, -}; - -enum class XFA_ItemLayoutProcessorStages { - None, - BookendLeader, - BreakBefore, - Keep, - Container, - BreakAfter, - BookendTrailer, - Done, -}; - -class CXFA_LayoutContext { - public: - CXFA_LayoutContext() - : m_prgSpecifiedColumnWidths(nullptr), - m_fCurColumnWidth(0), - m_bCurColumnWidthAvaiable(false), - m_pOverflowProcessor(nullptr), - m_pOverflowNode(nullptr) {} - ~CXFA_LayoutContext() {} - - std::vector<float>* m_prgSpecifiedColumnWidths; - float m_fCurColumnWidth; - bool m_bCurColumnWidthAvaiable; - CXFA_ItemLayoutProcessor* m_pOverflowProcessor; - CXFA_Node* m_pOverflowNode; -}; - -bool XFA_ItemLayoutProcessor_IsTakingSpace(CXFA_Node* pNode); - -class CXFA_ItemLayoutProcessor { - public: - static bool IncrementRelayoutNode(CXFA_LayoutProcessor* pLayoutProcessor, - CXFA_Node* pNode, - CXFA_Node* pParentNode); - - CXFA_ItemLayoutProcessor(CXFA_Node* pNode, CXFA_LayoutPageMgr* pPageMgr); - ~CXFA_ItemLayoutProcessor(); - - XFA_ItemLayoutProcessorResult DoLayout(bool bUseBreakControl, - float fHeightLimit, - float fRealHeight, - CXFA_LayoutContext* pContext); - void DoLayoutPageArea(CXFA_ContainerLayoutItem* pPageAreaLayoutItem); - - CFX_SizeF GetCurrentComponentSize(); - CXFA_Node* GetFormNode() { return m_pFormNode; } - bool HasLayoutItem() const { return !!m_pLayoutItem; } - CXFA_ContentLayoutItem* ExtractLayoutItem(); - void SplitLayoutItem(float fSplitPos); - - float FindSplitPos(float fProposedSplitPos); - - bool ProcessKeepForSplit( - CXFA_ItemLayoutProcessor* pParentProcessor, - CXFA_ItemLayoutProcessor* pChildProcessor, - XFA_ItemLayoutProcessorResult eRetValue, - std::vector<CXFA_ContentLayoutItem*>* rgCurLineLayoutItem, - float* fContentCurRowAvailWidth, - float* fContentCurRowHeight, - float* fContentCurRowY, - bool* bAddedItemInRow, - bool* bForceEndPage, - XFA_ItemLayoutProcessorResult* result); - void ProcessUnUseOverFlow(CXFA_Node* pLeaderNode, - CXFA_Node* pTrailerNode, - CXFA_ContentLayoutItem* pTrailerItem, - CXFA_Node* pFormNode); - bool IsAddNewRowForTrailer(CXFA_ContentLayoutItem* pTrailerItem); - bool JudgeLeaderOrTrailerForOccur(CXFA_Node* pFormNode); - - CXFA_ContentLayoutItem* CreateContentLayoutItem(CXFA_Node* pFormNode); - - CXFA_Node* m_pFormNode; - CXFA_ContentLayoutItem* m_pLayoutItem; - CXFA_Node* m_pCurChildNode; - float m_fUsedSize; - CXFA_LayoutPageMgr* m_pPageMgr; - std::list<CXFA_Node*> m_PendingNodes; - bool m_bBreakPending; - std::vector<float> m_rgSpecifiedColumnWidths; - std::vector<CXFA_ContentLayoutItem*> m_arrayKeepItems; - float m_fLastRowWidth; - float m_fLastRowY; - bool m_bUseInheriated; - XFA_ItemLayoutProcessorResult m_ePreProcessRs; - - private: - void SetCurrentComponentPos(const CFX_PointF& pos); - void SetCurrentComponentSize(const CFX_SizeF& size); - - void SplitLayoutItem(CXFA_ContentLayoutItem* pLayoutItem, - CXFA_ContentLayoutItem* pSecondParent, - float fSplitPos); - float InsertKeepLayoutItems(); - bool CalculateRowChildPosition( - std::vector<CXFA_ContentLayoutItem*> (&rgCurLineLayoutItems)[3], - XFA_ATTRIBUTEENUM eFlowStrategy, - bool bContainerHeightAutoSize, - bool bContainerWidthAutoSize, - float* fContentCalculatedWidth, - float* fContentCalculatedHeight, - float* fContentCurRowY, - float fContentCurRowHeight, - float fContentWidthLimit, - bool bRootForceTb); - void ProcessUnUseBinds(CXFA_Node* pFormNode); - bool JudgePutNextPage(CXFA_ContentLayoutItem* pParentLayoutItem, - float fChildHeight, - std::vector<CXFA_ContentLayoutItem*>* pKeepItems); - - void DoLayoutPositionedContainer(CXFA_LayoutContext* pContext); - void DoLayoutTableContainer(CXFA_Node* pLayoutNode); - XFA_ItemLayoutProcessorResult DoLayoutFlowedContainer( - bool bUseBreakControl, - XFA_ATTRIBUTEENUM eFlowStrategy, - float fHeightLimit, - float fRealHeight, - CXFA_LayoutContext* pContext, - bool bRootForceTb); - void DoLayoutField(); - - void GotoNextContainerNode(CXFA_Node*& pCurActionNode, - XFA_ItemLayoutProcessorStages& nCurStage, - CXFA_Node* pParentContainer, - bool bUsePageBreak); - - bool ProcessKeepNodesForCheckNext(CXFA_Node*& pCurActionNode, - XFA_ItemLayoutProcessorStages& nCurStage, - CXFA_Node*& pNextContainer, - bool& bLastKeepNode); - - bool ProcessKeepNodesForBreakBefore(CXFA_Node*& pCurActionNode, - XFA_ItemLayoutProcessorStages& nCurStage, - CXFA_Node* pContainerNode); - - CXFA_Node* GetSubformSetParent(CXFA_Node* pSubformSet); - - bool m_bKeepBreakFinish; - bool m_bIsProcessKeep; - CXFA_Node* m_pKeepHeadNode; - CXFA_Node* m_pKeepTailNode; - CXFA_ContentLayoutItem* m_pOldLayoutItem; - CXFA_ItemLayoutProcessor* m_pCurChildPreprocessor; - XFA_ItemLayoutProcessorStages m_nCurChildNodeStage; - std::map<CXFA_Node*, int32_t> m_PendingNodesCount; - float m_fWidthLimite; - bool m_bHasAvailHeight; -}; - -#endif // XFA_FXFA_PARSER_XFA_LAYOUT_ITEMLAYOUT_H_ |