LibreOffice Module sw (master)  1
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
SwFlowFrame Class Referenceabstract

Base class that provides the general functionalities for frames that are allowed at page breaks (flow) and shall continue on the next page (can be split), e.g. More...

#include <flowfrm.hxx>

Inheritance diagram for SwFlowFrame:
Collaboration diagram for SwFlowFrame:

Public Member Functions

 SwFlowFrame (SwFrame &rFrame)
virtual ~SwFlowFrame ()
const SwFrameGetFrame () const
SwFrameGetFrame ()
void SetUndersized (const bool bNew)
bool IsUndersized () const
bool IsPrevObjMove () const
void MoveSubTree (SwLayoutFrame *pParent, SwFrame *pSibling=nullptr)
 hook tree onto new parent with minimal operations and notifications More...
bool HasFollow () const
bool IsFollow () const
bool IsAnFollow (const SwFlowFrame *pFlow) const
const SwFlowFrameGetFollow () const
SwFlowFrameGetFollow ()
void SetFollow (SwFlowFrame *const pFollow)
const SwFlowFrameGetPrecede () const
SwFlowFrameGetPrecede ()
bool IsJoinLocked () const
bool IsAnyJoinLocked () const
bool IsPageBreak (bool bAct) const
 |* If there's a hard page break before the Frame AND there's a |* predecessor on the same page, true is returned (we need to create a |* new PageBreak). More...
bool IsColBreak (bool bAct) const
 |* If there's a hard column break before the Frame AND there is |* a predecessor in the same column, we return true (we need to create |* a ColBreak). More...
bool IsKeep (SvxFormatKeepItem const &rKeep, SvxFormatBreakItem const &rBreak, bool bBreakCheck=false) const
 method to determine if a Keep needs to be considered (Breaks!) More...
bool HasLockedFollow () const
bool HasParaSpaceAtPages (bool bSct) const
SwTwips CalcUpperSpace (const SwBorderAttrs *pAttrs=nullptr, const SwFrame *pPr=nullptr, const bool _bConsiderGrid=true) const
 method to determine the upper space hold by the frame More...
SwTwips GetUpperSpaceAmountConsideredForPrevFrameAndPageGrid () const
 method to determine the upper space amount, which is considered for the previous frame and the page grid, if option 'Use former object positioning' is OFF More...
SwTwips CalcLowerSpace (const SwBorderAttrs *_pAttrs=nullptr) const
 calculation of lower space More...
SwTwips CalcAddLowerSpaceAsLastInTableCell (const SwBorderAttrs *_pAttrs=nullptr) const
 calculation of the additional space to be considered, if flow frame is the last inside a table cell More...
void CheckKeep ()
void SetFlyLock (bool bNew)
bool IsFlyLock () const
bool ForbiddenForFootnoteCntFwd () const

Static Public Member Functions

static bool IsMoveBwdJump ()
static void SetMoveBwdJump (bool bNew)
static SwFlowFrameCastFlowFrame (SwFrame *pFrame)
static const SwFlowFrameCastFlowFrame (const SwFrame *pFrame)

Protected Member Functions

bool IsFwdMoveAllowed () const
bool IsKeepFwdMoveAllowed (bool bIgnoreMyOwnKeepValue=false)
sal_uInt8 BwdMoveNecessary (const SwPageFrame *pPage, const SwRect &rRect)
 method to determine overlapping of an object that requests floating More...
void LockJoin ()
void UnlockJoin ()
bool CheckMoveFwd (bool &rbMakePage, bool bKeep, bool bIgnoreMyOwnKeepValue)
 Moves the Frame forward if it seems necessary regarding the current conditions and attributes. More...
bool MoveFwd (bool bMakePage, bool bPageBreak, bool bMoveAlways=false)
 Return value guarantees that a new page was not created, although false does not NECESSARILY indicate that a new page was created. More...
bool MoveBwd (bool &rbReformat)
 Return value tells whether any changes have been made. More...
virtual bool ShouldBwdMoved (SwLayoutFrame *pNewUpper, bool &rReformat)=0

Protected Attributes

bool m_bLockJoin:1
bool m_bUndersized:1
bool m_bFlyLock:1

Private Member Functions

const SwFrameGetPrevFrameForUpperSpaceCalc_ (const SwFrame *_pProposedPrevFrame=nullptr) const
 helper method to determine previous frame for calculation of the upper space More...
SwTwips GetUpperSpaceAmountConsideredForPrevFrame () const
 method to determine the upper space amount, which is considered for the previous frame More...
SwTwips GetUpperSpaceAmountConsideredForPageGrid_ (const SwTwips _nUpperSpaceWithoutGrid) const
 method to determine the upper space amount, which is considered for the page grid More...

Static Private Member Functions

static SwLayoutFrameCutTree (SwFrame *)
 A specialized form of Cut(), which relocates a whole chain (this and the following, in particular). More...
static bool PasteTree (SwFrame *, SwLayoutFrame *, SwFrame *, SwFrame *)
 A specialized form of Paste(), which relocates a whole chain (this and the following, in particular). More...

Private Attributes


Static Private Attributes

static bool s_bMoveBwdJump = false
 indicates that a backward move was done over multiple pages More...


class SwObjectFormatterTextFrame
class FlowFrameJoinLockGuard
class SwNode2LayImpl
void PrepareLock (SwFlowFrame *)
void PrepareUnlock (SwFlowFrame *)
void TableSplitRecalcLock (SwFlowFrame *)
void TableSplitRecalcUnlock (SwFlowFrame *)
void UnsetFollow (SwFlowFrame *pFlow)
void MakeFrames (SwDoc *, const SwNodeIndex &, const SwNodeIndex &)
void CalcContent (SwLayoutFrame *pLay, bool bNoColl)

Detailed Description

Base class that provides the general functionalities for frames that are allowed at page breaks (flow) and shall continue on the next page (can be split), e.g.

paragraphs (ContentFrame) or tables (TabFrame).

Some parts of these functionalities are implemented in FlowFrame while the specific ones are done in the corresponding Frame classes. The FlowFrame has to be seen as a base class. As such it is no Frame by itself and thus no direct instances of FlowFrame can exist.

Actually it is not even a real Frame. The obvious implementation would be a FlowFrame that is virtually inherited from SwFrame and that works with its own member data. Further classes would need to inherit from FlowFrame and (via multiple base classes since the class tree splits exactly at the branch from SwFrame to SwContentFrame and SwLayoutFrame) also virtually from SwFrame as well. Unfortunately, this leads - besides problems with compilers and debugging programs - to high additional costs, that we IMHO are not able to afford nowadays.

Hence, we use another technique: A FlowFrame keeps a reference to a SwFrame

Definition at line 58 of file flowfrm.hxx.

Constructor & Destructor Documentation

SwFlowFrame::SwFlowFrame ( SwFrame rFrame)

Definition at line 70 of file flowfrm.cxx.

References false.

SwFlowFrame::~SwFlowFrame ( )

Definition at line 79 of file flowfrm.cxx.

References m_pFollow, and m_pPrecede.

Member Function Documentation

sal_uInt8 SwFlowFrame::BwdMoveNecessary ( const SwPageFrame pPage,
const SwRect rRect 
SwTwips SwFlowFrame::CalcAddLowerSpaceAsLastInTableCell ( const SwBorderAttrs _pAttrs = nullptr) const

calculation of the additional space to be considered, if flow frame is the last inside a table cell


_pAttrsoptional input parameter - border attributes of the flow frame. Used for optimization, if caller has already determined the border attributes.


Definition at line 1801 of file flowfrm.cxx.

References ADD_PARA_LINE_SPACING_TO_TABLE_CELLS, ADD_PARA_SPACING_TO_TABLE_CELLS, SwBorderAttrs::CalcLineSpacing(), SwSectionFrame::FindLastContent(), SwFrame::FindTabFrame(), SwFrame::GetCache(), SwLayoutFrame::GetFormat(), SwFormat::getIDocumentSettingAccess(), SvxULSpaceItem::GetLower(), SwBorderAttrs::GetULSpace(), SwFrame::GetUpper(), SwLayoutFrame::IsAnLower(), SwFrame::IsInTab(), SwFrame::IsSctFrame(), and m_rThis.

Referenced by CalcLowerSpace(), SwTextFrameBreak::IsInside(), lcl_CalcHeightOfFirstContentLine(), and SwContentFrame::MakeAll().

SwTwips SwFlowFrame::CalcLowerSpace ( const SwBorderAttrs _pAttrs = nullptr) const
SwTwips SwFlowFrame::CalcUpperSpace ( const SwBorderAttrs pAttrs = nullptr,
const SwFrame pPr = nullptr,
const bool  _bConsiderGrid = true 
) const
SwFlowFrame * SwFlowFrame::CastFlowFrame ( SwFrame pFrame)
const SwFlowFrame * SwFlowFrame::CastFlowFrame ( const SwFrame pFrame)
void SwFlowFrame::CheckKeep ( )
bool SwFlowFrame::CheckMoveFwd ( bool &  rbMakePage,
bool  bKeep,
bool  bIgnoreMyOwnKeepValue 
SwLayoutFrame * SwFlowFrame::CutTree ( SwFrame pStart)
bool SwFlowFrame::ForbiddenForFootnoteCntFwd ( ) const

Definition at line 1930 of file flowfrm.cxx.

References SwFrame::IsInTab(), SwFrame::IsTabFrame(), and m_rThis.

Referenced by SwTabFrame::MakeAll(), and MoveFwd().

const SwFlowFrame* SwFlowFrame::GetFollow ( ) const
SwFlowFrame* SwFlowFrame::GetFollow ( )

Definition at line 169 of file flowfrm.hxx.

References m_pFollow.

const SwFrame& SwFlowFrame::GetFrame ( ) const
SwFrame& SwFlowFrame::GetFrame ( )

Definition at line 152 of file flowfrm.hxx.

References m_rThis.

const SwFlowFrame* SwFlowFrame::GetPrecede ( ) const
SwFlowFrame* SwFlowFrame::GetPrecede ( )

Definition at line 173 of file flowfrm.hxx.

References m_pPrecede.

const SwFrame * SwFlowFrame::GetPrevFrameForUpperSpaceCalc_ ( const SwFrame _pProposedPrevFrame = nullptr) const

helper method to determine previous frame for calculation of the upper space


_pProposedPrevFrameoptional input parameter - pointer to frame, which should be used instead of the direct previous frame.


Definition at line 1352 of file flowfrm.cxx.

References SwFrame::FindFootnoteFrame(), SwSectionFrame::FindLastContent(), SwFrame::FindSctFrame(), SwFrame::FindTabFrame(), SwLayoutFrame::GetLastLower(), SwFrame::GetPrev(), SwLayoutFrame::IsAnLower(), SwFrame::IsInFootnote(), SwFrame::IsInSct(), SwFrame::IsInTab(), SwFrame::IsSctFrame(), SwFrame::IsTextFrame(), and m_rThis.

Referenced by CalcUpperSpace(), and GetUpperSpaceAmountConsideredForPrevFrame().

SwTwips SwFlowFrame::GetUpperSpaceAmountConsideredForPageGrid_ ( const SwTwips  _nUpperSpaceWithoutGrid) const
SwTwips SwFlowFrame::GetUpperSpaceAmountConsideredForPrevFrame ( ) const
SwTwips SwFlowFrame::GetUpperSpaceAmountConsideredForPrevFrameAndPageGrid ( ) const
bool SwFlowFrame::HasFollow ( ) const
bool SwFlowFrame::HasLockedFollow ( ) const
true if any follow has the JoinLocked flag

Definition at line 111 of file flowfrm.cxx.

References GetFollow(), and IsJoinLocked().

Referenced by IsAnyJoinLocked().

bool SwFlowFrame::HasParaSpaceAtPages ( bool  bSct) const
bool SwFlowFrame::IsAnFollow ( const SwFlowFrame pFlow) const
bool SwFlowFrame::IsAnyJoinLocked ( ) const

Definition at line 176 of file flowfrm.hxx.

References HasLockedFollow(), and m_bLockJoin.

bool SwFlowFrame::IsColBreak ( bool  bAct) const

|* If there's a hard column break before the Frame AND there is |* a predecessor in the same column, we return true (we need to create |* a ColBreak).

Otherwise, we return false. |* If bAct is set to true, we return true if there's a ColBreak. |* Of course, we don't evaluate the hard column break for follows. |* |* The column break is in its own FrameFormat (BEFORE) or in the FrameFormat of the |* predecessor (AFTER). If there's no predecessor in the column, we don't |* need to think further. |* The implementation works only on ContentFrames! - the definition |* of the predecessor is not clear for LayoutFrames. |

Definition at line 1269 of file flowfrm.cxx.

References SwFrame::FindColFrame(), SwFrame::FindFooterOrHeader(), SwFrame::FindPrev(), SvxFormatBreakItem::GetBreak(), SwFrame::GetBreakItem(), IsFollow(), SwFrame::IsInDocBody(), SwFrame::IsInFly(), SwFrame::IsMoveable(), SwFrame::IsTextFrame(), and m_rThis.

Referenced by CheckMoveFwd(), HasParaSpaceAtPages(), MoveBwd(), and SwColumnFrame::PaintBreak().

bool SwFlowFrame::IsFlyLock ( ) const

Definition at line 230 of file flowfrm.hxx.

References m_bFlyLock.

Referenced by SwContentNotify::ImplDestroy().

bool SwFlowFrame::IsFollow ( ) const

Definition at line 166 of file flowfrm.hxx.

References m_pPrecede.

Referenced by SwTextFrame::AdjustFrame(), SwTaggedPDFHelper::BeginBlockStructureElements(), SwTaggedPDFHelper::BeginTag(), CalcContent(), SwTabFrame::CalcHeightOfFirstContentLine(), SwContentFrame::CalcLowers(), SwLayAction::CheckFirstVisPage(), SwFEShell::CheckHeadline(), SwLayHelper::CheckInsertPage(), SwTaggedPDFHelper::CheckReopenTag(), CheckSplitCells(), ChkChartSel(), SwPageNumAndTypeOfAnchors::Collect(), SwLayoutCache::CompareLayout(), SwObjectFormatterTextFrame::CreateObjFormatter(), SwTextFly::CtorInitTextFly(), SwTextMargin::CtorInitTextMargin(), SwRowFrame::Cut(), SwContentFrame::Cut(), SwTabFrame::Cut(), SwSectionFrame::DelEmpty(), FndBox_::DelFrames(), SwContentNode::DelFrames(), SwTableNode::DelFrames(), SwSectionFrame::DestroyImpl(), SwObjectFormatterTextFrame::DoFormatObj(), SwObjectFormatterTextFrame::DoFormatObjs(), SwFrame::dumpAsXml(), SwTextNode::fillSoftPageBreakList(), SwTextFrame::FindFootnoteRef(), SwSectionFrame::FindLastContent(), SwContentFrame::FindMaster(), SwSectionFrame::FindMaster(), SwTabFrame::FindMaster(), sw::FindNeighbourFrameForNode(), SwPageFrame::FindPageDesc(), SwFrame::FindPrevCnt_(), SwCellFrame::FindStartEndOfRowSpanCell(), WidowsAndOrphans::FindWidows(), SwTextFrame::Format(), SwTextFrame::Format_(), SwTextFrame::FormatAdjust(), SwObjectFormatterTextFrame::FormatAnchorFrameAndItsPrevs(), SwObjectFormatter::FormatObjsAtFrame_(), GetAutoSumSel(), GetBodyTextNode(), SwTextFrame::GetCharRect(), SwLayoutFrame::GetContentPos(), SwDrawContact::GetDrawObjectByAnchorFrame(), SwTabFrame::GetFirstNonHeadlineRow(), SwTextFlyCnt::GetFlyFrame_(), SwTextFrame::GetFootnoteFrameHeight(), SwTextFrame::GetFootnoteFrameHeight_(), GetFrameInPage(), GetFrameOfModify(), SwTabFrame::GetInfo(), SwTextFrame::GetInfo(), SwCellFrame::GetLayoutRowSpan(), SwTextFly::GetMaster_(), GetMergeSel(), SwCellFrame::GetModelPositionForViewPoint(), SwTextFrame::GetParHeight(), SwTableLine::GetTableLineHeight(), GetTableSel(), SwTableLine::hasSoftPageBreak(), SwTextFrame::HideAndShowObjects(), SwFEShell::ImpEndCreate(), SwFrameNotify::ImplDestroy(), SwContentNotify::ImplDestroy(), InsertCnt_(), IsColBreak(), SwFrame::IsFootnoteAllowed(), SwFrame::IsInFollowFlowRow(), SwContentAtPos::IsInRTLText(), IsPageBreak(), lcl_ArrangeLowers(), lcl_calcHeightOfRowBeforeThisFrame(), lcl_FindStartEndCol(), lcl_GetCellFrameForBorderAttrs(), lcl_GetFootnoteLower(), lcl_IsFirstRowInFollowTableWithoutRepeatedHeadlines(), lcl_IsInRepeatedHeadline(), lcl_IsLineOfTableFrame(), lcl_ModifyOfst(), lcl_RecalcSplitLine(), lcl_SetWrong(), lcl_UpdateRepeatedHeadlines(), SwTextFrame::LeftMargin(), SwContentFrame::MakeAll(), SwTabFrame::MakeAll(), SwFlyAtContentFrame::MakeAll(), MakeFrames(), MakeSelUnions(), SwRootFrame::MakeTableCursors(), MoveBwd(), SwNode2LayImpl::NextFrame(), Notify_Background(), SwRowFrame::OnFrameSize(), SwContentFrame::Paste(), SwSectionFrame::Paste(), SwTabFrame::Paste(), SwFEShell::Paste(), SwTextFrame::Prepare(), SwFrame::PrepareCursor(), SwFrame::PrepareMake(), SwTextFrame::PrepWidows(), SwTextFrame::RecalcAllLines(), SwFootnoteBossFrame::RemoveFootnote(), SwCursorShell::SelTable(), SwFEShell::SelTableRowCol(), SwCursorShell::SelTableRowOrCol(), SwFlyAtContentFrame::SetAbsPos(), SwDoc::SetTabBorders(), SwTableCellInfo::Impl::setTable(), SwDoc::SetTabLineStyle(), SwRowFrame::ShrinkFrame(), SwLayoutFrame::ShrinkFrame(), sw_ChangeOffset(), SwRowFrame::SwClientNotify(), SwTabFrame::SwClientNotify(), SwFlyAtContentFrame::SwClientNotify(), SwTextFrame::SwClientNotify(), SwSectionFrame::SwSectionFrame(), SwTextFrameBreak::SwTextFrameBreak(), SwTextFrame::UnitDown_(), SwTextFrame::UnitUp_(), SwTabFrame::UpdateAttr_(), SwCursorShell::UpdateCursor(), SwTextFrame::VisitPortions(), SwFrame::WannaRightPage(), SwTextFormatter::WhichFirstPortion(), WidowsAndOrphans::WidowsAndOrphans(), WidowsAndOrphans::WouldFit(), SwLayoutCache::Write(), and SwFrame::WrongPageDesc().

bool SwFlowFrame::IsFwdMoveAllowed ( ) const

Definition at line 240 of file flowfrm.hxx.

References SwFrame::GetIndPrev(), and m_rThis.

Referenced by SwContentFrame::MakeAll(), and MoveFwd().

bool SwFlowFrame::IsJoinLocked ( ) const
bool SwFlowFrame::IsKeep ( SvxFormatKeepItem const &  rKeep,
SvxFormatBreakItem const &  rBreak,
bool  bBreakCheck = false 
) const
bool SwFlowFrame::IsKeepFwdMoveAllowed ( bool  bIgnoreMyOwnKeepValue = false)
static bool SwFlowFrame::IsMoveBwdJump ( )

Definition at line 154 of file flowfrm.hxx.

References s_bMoveBwdJump.

Referenced by MoveBwd(), SwContentFrame::ShouldBwdMoved(), and SwTabFrame::ShouldBwdMoved().

bool SwFlowFrame::IsPageBreak ( bool  bAct) const

|* If there's a hard page break before the Frame AND there's a |* predecessor on the same page, true is returned (we need to create a |* new PageBreak).

Otherwise, returns false. |* If bAct is set to true, this function returns true if |* there's a PageBreak. |* Of course, we don't evaluate the hard page break for follows. |* The page break is in its own FrameFormat (BEFORE) or in the FrameFormat of the |* predecessor (AFTER). If there's no predecessor on the page, we don't |* need to think further. |* Also, a page break (or the need for one) is also present if |* the FrameFormat contains a PageDesc. |* The implementation works only on ContentFrames! - the definition |* of the predecessor is not clear for LayoutFrames. |

Definition at line 1206 of file flowfrm.cxx.

References SwFrame::FindColFrame(), SwFrame::FindPageFrame(), SwFrame::FindPrev(), IDocumentSettingAccess::get(), SvxFormatBreakItem::GetBreak(), SwFrame::GetBreakItem(), SwViewOption::getBrowseMode(), SwRootFrame::GetCurrShell(), SwLayoutFrame::GetFormat(), SwFormat::getIDocumentSettingAccess(), SwFormatPageDesc::GetPageDesc(), SwFrame::GetPageDescItem(), SwFrame::getRootFrame(), SwFrame::GetUpper(), SwViewShell::GetViewOptions(), IsFollow(), SwFrame::IsInDocBody(), SwFrame::IsInTab(), SwFrame::IsTabFrame(), SwFrame::IsTextFrame(), m_rThis, and TREAT_SINGLE_COLUMN_BREAK_AS_PAGE_BREAK.

Referenced by CheckMoveFwd(), SwTextNode::fillSoftPageBreakList(), HasParaSpaceAtPages(), SwTableLine::hasSoftPageBreak(), MoveBwd(), and SwPageFrame::PaintBreak().

bool SwFlowFrame::IsPrevObjMove ( ) const
bool SwFlowFrame::IsUndersized ( ) const
void SwFlowFrame::LockJoin ( )
bool SwFlowFrame::MoveBwd ( bool &  rbReformat)

Return value tells whether any changes have been made.

If true, the frame has moved backwards to an earlier column/section/frame/page etc.

This should be called by derived classes.
The actual moving must be implemented in the subclasses via Cut()/Paste().

Definition at line 2143 of file flowfrm.cxx.

References BossChanged, SwFrame::Calc(), CastFlowFrame(), SwFrame::CheckPageDescs(), SwSectionFrame::ColLock(), SwSectionFrame::ColUnlock(), SwLayoutFrame::ContainsAny(), SwLayoutFrame::ContainsContent(), CONTINUOUS_ENDNOTES, SwLayoutFrame::Cut(), SwFrame::Cut(), SwSectionFrame::DelEmpty(), SwFrame::DestroyFrame(), SwFrame::FindColFrame(), SwFrame::FindFootnoteBossFrame(), SwFrame::FindFootnoteFrame(), SwPageFrame::FindLastBodyContent(), SwSectionFrame::FindLastContent(), SwFrame::FindPageFrame(), SwFrame::FindPrev(), SwFrame::FindSctFrame(), SwFrame::FindTabFrame(), SwLayouter::FrameMovedFwdByObjPos(), IDocumentSettingAccess::get(), SwFootnoteFrame::GetAttr(), SwFrame::GetAttrSet(), SwViewOption::getBrowseMode(), SwRootFrame::GetCurrShell(), SwFormat::GetDoc(), SwAttrSet::GetDoc(), SwViewShell::GetDoc(), SwFrame::GetDrawObjs(), SwTabFrame::GetFirstNonHeadlineRow(), GetFollow(), SwTextAttr::GetFootnote(), SwLayoutFrame::GetFormat(), SwDoc::getIDocumentFieldsAccess(), SwDoc::getIDocumentSettingAccess(), SwFrame::GetIndNext(), SwAttrSet::GetKeep(), SwRootFrame::GetLastPage(), SwFrame::GetLeaf(), SwFrame::GetNext(), SwViewShell::GetOut(), SwFormatPageDesc::GetPageDesc(), SwFrame::GetPageDescItem(), SwPageFrame::GetPhyPageNum(), SwFrame::GetPhyPageNum(), GetPrecede(), SwFrame::GetPrev(), SwFootnoteFrame::GetRef(), SwFrame::getRootFrame(), SwSectionFrame::GetSection(), SwFrame::GetType(), SwFrame::GetUpper(), SwViewShell::GetViewOptions(), HasFollow(), SwViewShell::Imp(), SwSectionFrame::Init(), SwPageFrame::InvalidateAutoCompleteWords(), SwFrame::InvalidateSize(), SwPageFrame::InvalidateSmartTags(), SwPageFrame::InvalidateSpelling(), SwPageFrame::InvalidateWordCount(), SwFootnoteFrame::IsBackMoveLocked(), SwLayoutFrame::IsBefore(), SwFrame::IsCellFrame(), SwFrame::IsColBodyFrame(), IsColBreak(), SwFrame::IsColLocked(), SwFrame::IsColumnFrame(), SwFrame::IsDeleteForbidden(), SwSectionFrame::IsEndnAtEnd(), SwFormatFootnote::IsEndNote(), SwFrame::IsFlowFrame(), IsFollow(), SwFrame::IsFootnoteContFrame(), SwFrame::IsFootnoteFrame(), SwFrame::IsInDocBody(), SwFrame::IsInFootnote(), SwFrame::IsInSct(), SwFrame::IsInTab(), IsJoinLocked(), IsMoveBwdJump(), IsPageBreak(), SwFrame::IsRowFrame(), SwFrame::IsSctFrame(), SwFrame::IsTabFrame(), SwFrame::IsTextFrame(), SwViewShellImp::IsUpdateExpFields(), LastCnt, Lower, SwLayoutFrame::Lower(), m_rThis, MAKEPAGE_FTN, MAKEPAGE_INSERT, MAKEPAGE_NONE, MAKEPAGE_NOSECTION, MoveBack, SwLayouter::MoveBwdSuppressed(), NONE, SwSectionFrame::Paste(), SwFootnoteFrame::Paste(), SwFrame::Paste(), SwFrame::Prepare(), SwFootnoteContFrame::PrependChained(), PROTOCOL_ENTER, SAL_WARN_IF, SwFrameAreaDefinition::setFrameAreaPositionValid(), SetMoveBwdJump(), IDocumentFieldsAccess::SetNewFieldLst(), ShouldBwdMoved(), SwSectionFrame::SimpleFormat(), and SwFrame::WrongPageDesc().

Referenced by SwContentFrame::MakeAll(), and SwTabFrame::MakeAll().

bool SwFlowFrame::MoveFwd ( bool  bMakePage,
bool  bPageBreak,
bool  bMoveAlways = false 

Return value guarantees that a new page was not created, although false does not NECESSARILY indicate that a new page was created.

Either false or true(MoveFootnoteCntFwd) can be returned if no changes were made

!!!MoveFootnoteCntFwd might need to be updated as well.

Definition at line 1938 of file flowfrm.cxx.

References BossChanged, SwFrame::Calc(), SwFrame::CheckPageDescs(), SwSectionFrame::ColLock(), SwSectionFrame::ColUnlock(), SwLayoutFrame::ContainsAny(), SwFrame::FindColFrame(), SwFrame::FindFootnoteBossFrame(), SwFrame::FindPageFrame(), SwFrame::FindSctFrame(), ForbiddenForFootnoteCntFwd(), SwRectFnSet::GetBottom(), SwViewOption::getBrowseMode(), SwRootFrame::GetCurrShell(), SwViewShell::GetDoc(), SwPageDesc::GetFollow(), SwFrameAreaDefinition::getFrameArea(), SwDoc::getIDocumentFieldsAccess(), SwFrame::GetLeaf(), SwFrame::GetNext(), SwFrame::GetNextCellLeaf(), SwViewShell::GetOut(), SwFormatPageDesc::GetPageDesc(), SwPageFrame::GetPageDesc(), SwFrame::GetPageDescItem(), SwFrame::GetPrev(), SwFrame::getRootFrame(), SwSectionFrame::GetSection(), SwFrame::GetUpper(), SwViewShell::GetViewOptions(), HasFollow(), SwViewShell::Imp(), SwPageFrame::InvalidateAutoCompleteWords(), SwPageFrame::InvalidateSmartTags(), SwPageFrame::InvalidateSpelling(), SwPageFrame::InvalidateWordCount(), SwFrame::IsCellFrame(), SwFrame::IsColLocked(), SwFrame::IsContentFrame(), IsFwdMoveAllowed(), SwFrame::IsInFootnote(), SwFrame::IsInSct(), SwFrame::IsInTab(), SwFrame::IsSctFrame(), SwFrame::IsTabFrame(), SwFrame::IsTextFrame(), SwViewShellImp::IsUpdateExpFields(), Lower, SwLayoutFrame::Lower(), m_rThis, MAKEPAGE_INSERT, MAKEPAGE_NONE, MoveFwd, SwLayoutFrame::MoveLowerFootnotes(), MoveSubTree(), NONE, SwFrame::Prepare(), PROTOCOL_ENTER, SAL_WARN, IDocumentFieldsAccess::SetNewFieldLst(), SwSectionFrame::SimpleFormat(), and SwPageFrame::UpdateFootnoteNum().

Referenced by CheckMoveFwd(), SwContentFrame::MakeAll(), SwTabFrame::MakeAll(), and MakeFrames().

void SwFlowFrame::MoveSubTree ( SwLayoutFrame pParent,
SwFrame pSibling = nullptr 
bool SwFlowFrame::PasteTree ( SwFrame pStart,
SwLayoutFrame pParent,
SwFrame pSibling,
SwFrame pOldParent 
void SwFlowFrame::SetFlyLock ( bool  bNew)

Definition at line 229 of file flowfrm.hxx.

References m_bFlyLock.

Referenced by SwContentFrame::MakeAll().

void SwFlowFrame::SetFollow ( SwFlowFrame *const  pFollow)
static void SwFlowFrame::SetMoveBwdJump ( bool  bNew)
void SwFlowFrame::SetUndersized ( const bool  bNew)
virtual bool SwFlowFrame::ShouldBwdMoved ( SwLayoutFrame pNewUpper,
bool &  rReformat 
protectedpure virtual

Implemented in SwTabFrame, SwSectionFrame, and SwContentFrame.

Referenced by MoveBwd().

void SwFlowFrame::UnlockJoin ( )

Friends And Related Function Documentation

void CalcContent ( SwLayoutFrame pLay,
bool  bNoColl = false 

Definition at line 1421 of file fly.cxx.

Referenced by SwSectionFrame::CheckClipping(), and SwSectionFrame::Format().

friend class FlowFrameJoinLockGuard

Definition at line 67 of file flowfrm.hxx.

void MakeFrames ( SwDoc pDoc,
const SwNodeIndex rSttIdx,
const SwNodeIndex rEndIdx 

Definition at line 2014 of file frmtool.cxx.

void PrepareLock ( SwFlowFrame pTab)

Definition at line 208 of file calcmove.cxx.

void PrepareUnlock ( SwFlowFrame pTab)

Definition at line 212 of file calcmove.cxx.

friend class SwNode2LayImpl

Definition at line 74 of file flowfrm.hxx.

friend class SwObjectFormatterTextFrame

Definition at line 66 of file flowfrm.hxx.

void TableSplitRecalcLock ( SwFlowFrame pTab)

Definition at line 643 of file tabfrm.cxx.

void TableSplitRecalcUnlock ( SwFlowFrame pTab)

Definition at line 644 of file tabfrm.cxx.

void UnsetFollow ( SwFlowFrame pFlow)

Definition at line 2164 of file tblsel.cxx.

Member Data Documentation

bool SwFlowFrame::m_bFlyLock

Definition at line 122 of file flowfrm.hxx.

Referenced by IsFlyLock(), and SetFlyLock().

bool SwFlowFrame::m_bLockJoin

Definition at line 120 of file flowfrm.hxx.

Referenced by IsAnyJoinLocked(), IsJoinLocked(), LockJoin(), and UnlockJoin().

bool SwFlowFrame::m_bUndersized

Definition at line 121 of file flowfrm.hxx.

Referenced by IsUndersized(), SetUndersized(), and SwSectionFrame::Undersize().

SwFlowFrame* SwFlowFrame::m_pFollow

Definition at line 117 of file flowfrm.hxx.

Referenced by SwTextFrame::FormatQuick(), GetFollow(), IsKeep(), SetFollow(), and ~SwFlowFrame().

SwFlowFrame* SwFlowFrame::m_pPrecede
SwFrame& SwFlowFrame::m_rThis
bool SwFlowFrame::s_bMoveBwdJump = false

indicates that a backward move was done over multiple pages

Needed for the interaction of _GetPrevxxx and MoveBwd so that multiple pages can be skipped at the same time. In addition, it is evaluated by the MoveBwd() method in TabFrame.

Definition at line 88 of file flowfrm.hxx.

Referenced by IsMoveBwdJump().

The documentation for this class was generated from the following files: