20#ifndef INCLUDED_SW_SOURCE_CORE_INC_FLOWFRM_HXX
21#define INCLUDED_SW_SOURCE_CORE_INC_FLOWFRM_HXX
71 friend inline void UnsetFollow( SwFlowFrame *pFlow );
89 static bool s_bMoveBwdJump;
100 const SwFrame* GetPrevFrameForUpperSpaceCalc_(
const SwFrame* _pProposedPrevFrame =
nullptr )
const;
107 SwTwips GetUpperSpaceAmountConsideredForPrevFrame()
const;
114 SwTwips GetUpperSpaceAmountConsideredForPageGrid_(
115 const SwTwips _nUpperSpaceWithoutGrid )
const;
118 SwFlowFrame *m_pFollow;
119 SwFlowFrame *m_pPrecede;
122 bool m_bUndersized:1;
126 inline bool IsFwdMoveAllowed()
const;
129 bool IsKeepFwdMoveAllowed(
bool bIgnoreMyOwnKeepValue =
false );
140 void LockJoin() { m_bLockJoin =
true; }
141 void UnlockJoin() { m_bLockJoin =
false; }
143 bool CheckMoveFwd(
bool& rbMakePage,
bool bKeep,
bool bIgnoreMyOwnKeepValue );
144 bool MoveFwd(
bool bMakePage,
bool bPageBreak,
bool bMoveAlways =
false );
145 bool MoveBwd(
bool &rbReformat );
146 virtual bool ShouldBwdMoved(
SwLayoutFrame *pNewUpper,
bool &rReformat )=0;
149 SwFlowFrame(
SwFrame &rFrame );
150 virtual ~SwFlowFrame();
155 static bool IsMoveBwdJump() {
return s_bMoveBwdJump; }
156 static void SetMoveBwdJump(
bool bNew ){ s_bMoveBwdJump = bNew; }
158 void SetUndersized(
const bool bNew ) { m_bUndersized = bNew; }
159 bool IsUndersized()
const {
return m_bUndersized; }
161 bool IsPrevObjMove()
const;
166 bool HasFollow()
const {
return m_pFollow !=
nullptr; }
167 bool IsFollow()
const {
return nullptr != m_pPrecede; }
168 bool IsAnFollow(
const SwFlowFrame *pFlow )
const;
169 const SwFlowFrame *GetFollow()
const {
return m_pFollow; }
170 SwFlowFrame *GetFollow() {
return m_pFollow; }
171 void SetFollow(SwFlowFrame *
const pFollow);
173 const SwFlowFrame *GetPrecede()
const {
return m_pPrecede; }
174 SwFlowFrame *GetPrecede() {
return m_pPrecede; }
176 bool IsJoinLocked()
const {
return m_bLockJoin; }
177 bool IsAnyJoinLocked()
const {
return m_bLockJoin || HasLockedFollow(); }
179 bool IsPageBreak(
bool bAct )
const;
180 bool IsColBreak(
bool bAct )
const;
185 bool bBreakCheck =
false )
const;
187 bool HasLockedFollow()
const;
189 bool HasParaSpaceAtPages(
bool bSct )
const;
200 const bool _bConsiderGrid =
true )
const;
208 SwTwips GetUpperSpaceAmountConsideredForPrevFrameAndPageGrid()
const;
225 SwTwips CalcAddLowerSpaceAsLastInTableCell(
230 void SetFlyLock(
bool bNew ){ m_bFlyLock = bNew; }
231 bool IsFlyLock()
const {
return m_bFlyLock; }
233 bool ForbiddenForFootnoteCntFwd()
const;
237 static SwFlowFrame *CastFlowFrame(
SwFrame *pFrame );
238 static const SwFlowFrame *CastFlowFrame(
const SwFrame *pFrame );
241inline bool SwFlowFrame::IsFwdMoveAllowed()
const
243 return m_rThis.GetIndPrev() !=
nullptr;
259 m_pFlow = SwFlowFrame::CastFlowFrame(pFrame);
void PrepareLock(SwFlowFrame *pTab)
void PrepareUnlock(SwFlowFrame *pTab)
~FlowFrameJoinLockGuard()
FlowFrameJoinLockGuard(SwLayoutFrame *pFrame)
Base class of the Writer layout elements.
A layout frame is a frame that contains other frames (m_pLower), e.g. SwPageFrame or SwTabFrame.
The SwNode2LayImpl class does the actual work, the SwNode2Layout class is just the public interface.
SwFrame * GetFrame(const Point *pDocPos) const
Marks a node in the document model.
Base class of the Writer document model elements.
A page of the document layout.
Of course Writer needs its own rectangles.
class SAL_DLLPUBLIC_RTTI SAL_LOPLUGIN_ANNOTATE("crosscast") SwFlowFrame
Base class that provides the general functionalities for frames that are allowed at page breaks (flow...
void TableSplitRecalcLock(SwFlowFrame *pTab)
void TableSplitRecalcUnlock(SwFlowFrame *pTab)
void UnsetFollow(SwFlowFrame *pTab)