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 *, SwNode &, SwNode &)
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 59 of file flowfrm.hxx.

Constructor & Destructor Documentation

◆ SwFlowFrame()

SwFlowFrame::SwFlowFrame ( SwFrame rFrame)

Definition at line 70 of file flowfrm.cxx.

◆ ~SwFlowFrame()

SwFlowFrame::~SwFlowFrame ( )

Definition at line 79 of file flowfrm.cxx.

References m_pFollow, and m_pPrecede.

Member Function Documentation

◆ BwdMoveNecessary()

sal_uInt8 SwFlowFrame::BwdMoveNecessary ( const SwPageFrame pPage,
const SwRect rRect 

◆ CalcAddLowerSpaceAsLastInTableCell()

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(), IDocumentSettingAccess::get(), 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().

◆ CalcLowerSpace()

SwTwips SwFlowFrame::CalcLowerSpace ( const SwBorderAttrs _pAttrs = nullptr) const

◆ CalcUpperSpace()

SwTwips SwFlowFrame::CalcUpperSpace ( const SwBorderAttrs pAttrs = nullptr,
const SwFrame pPr = nullptr,
const bool  _bConsiderGrid = true 
) const

◆ CastFlowFrame() [1/2]

const SwFlowFrame * SwFlowFrame::CastFlowFrame ( const SwFrame pFrame)

◆ CastFlowFrame() [2/2]

SwFlowFrame * SwFlowFrame::CastFlowFrame ( SwFrame pFrame)

◆ CheckKeep()

void SwFlowFrame::CheckKeep ( )

◆ CheckMoveFwd()

bool SwFlowFrame::CheckMoveFwd ( bool &  rbMakePage,
bool  bKeep,
bool  bIgnoreMyOwnKeepValue 

◆ CutTree()

SwLayoutFrame * SwFlowFrame::CutTree ( SwFrame pStart)

◆ ForbiddenForFootnoteCntFwd()

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().

◆ GetFollow() [1/2]

SwFlowFrame * SwFlowFrame::GetFollow ( )

Definition at line 170 of file flowfrm.hxx.

References m_pFollow.

◆ GetFollow() [2/2]

const SwFlowFrame * SwFlowFrame::GetFollow ( ) const

◆ GetFrame() [1/2]

SwFrame & SwFlowFrame::GetFrame ( )

Definition at line 153 of file flowfrm.hxx.

References m_rThis.

◆ GetFrame() [2/2]

const SwFrame & SwFlowFrame::GetFrame ( ) const

◆ GetPrecede() [1/2]

SwFlowFrame * SwFlowFrame::GetPrecede ( )

Definition at line 174 of file flowfrm.hxx.

References m_pPrecede.

◆ GetPrecede() [2/2]

const SwFlowFrame * SwFlowFrame::GetPrecede ( ) const

◆ GetPrevFrameForUpperSpaceCalc_()

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(), SwSectionFrame::GetSection(), SwLayoutFrame::IsAnLower(), SwTextFrame::IsHiddenNow(), SwFrame::IsInFootnote(), SwFrame::IsInSct(), SwFrame::IsInTab(), SwFrame::IsSctFrame(), SwFrame::IsTextFrame(), and m_rThis.

Referenced by CalcUpperSpace(), and GetUpperSpaceAmountConsideredForPrevFrame().

◆ GetUpperSpaceAmountConsideredForPageGrid_()

SwTwips SwFlowFrame::GetUpperSpaceAmountConsideredForPageGrid_ ( const SwTwips  _nUpperSpaceWithoutGrid) const

◆ GetUpperSpaceAmountConsideredForPrevFrame()

SwTwips SwFlowFrame::GetUpperSpaceAmountConsideredForPrevFrame ( ) const

◆ GetUpperSpaceAmountConsideredForPrevFrameAndPageGrid()

SwTwips SwFlowFrame::GetUpperSpaceAmountConsideredForPrevFrameAndPageGrid ( ) const

◆ HasFollow()

bool SwFlowFrame::HasFollow ( ) const

◆ HasLockedFollow()

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().

◆ HasParaSpaceAtPages()

bool SwFlowFrame::HasParaSpaceAtPages ( bool  bSct) const

◆ IsAnFollow()

bool SwFlowFrame::IsAnFollow ( const SwFlowFrame pFlow) const

◆ IsAnyJoinLocked()

bool SwFlowFrame::IsAnyJoinLocked ( ) const

Definition at line 177 of file flowfrm.hxx.

References HasLockedFollow(), and m_bLockJoin.

◆ IsColBreak()

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(), SwTextFrame::IsHiddenNow(), SwFrame::IsInDocBody(), SwFrame::IsInFly(), SwFrame::IsMoveable(), SwFrame::IsTextFrame(), and m_rThis.

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

◆ IsFlyLock()

bool SwFlowFrame::IsFlyLock ( ) const

Definition at line 231 of file flowfrm.hxx.

References m_bFlyLock.

Referenced by SwContentNotify::ImplDestroy().

◆ IsFollow()

bool SwFlowFrame::IsFollow ( ) const

Definition at line 167 of file flowfrm.hxx.

References m_pPrecede.

Referenced by SwTextFrame::AdjustFrame(), SwTaggedPDFHelper::BeginBlockStructureElements(), SwTaggedPDFHelper::BeginNumberedListStructureElements(), SwTaggedPDFHelper::BeginTag(), SwTabFrame::CalcHeightOfFirstContentLine(), CalcHeightWithFlys(), SwContentFrame::CalcLowers(), SwLayAction::CheckFirstVisPage(), SwFEShell::CheckHeadline(), SwLayHelper::CheckInsertPage(), SwObjectFormatterTextFrame::CheckMovedFwdCondition(), SwTaggedPDFHelper::CheckReopenTag(), CheckSplitCells(), SwDoc::ChgAnchor(), ChkChartSel(), SwPageNumAndTypeOfAnchors::Collect(), SwLayoutCache::CompareLayout(), SwObjectFormatterTextFrame::CreateObjFormatter(), SwTextFly::CtorInitTextFly(), SwTextMargin::CtorInitTextMargin(), SwContentFrame::Cut(), SwRowFrame::Cut(), SwTabFrame::Cut(), SwSectionFrame::DelEmpty(), SwContentNode::DelFrames(), SwTableNode::DelFrames(), FndBox_::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_(), GetBodyTextNode(), SwTextFrame::GetCharRect(), SwLayoutFrame::GetContentPos(), SwDrawContact::GetDrawObjectByAnchorFrame(), SwTabFrame::GetFirstNonHeadlineRow(), SwTextFlyCnt::GetFlyFrame_(), SwTextFrame::GetFootnoteFrameHeight(), SwTextFrame::GetFootnoteFrameHeight_(), GetFrameInPage(), GetFrameOfModify(), SwTextFrame::GetInfo(), SwTabFrame::GetInfo(), SwCellFrame::GetLayoutRowSpan(), SwTextFly::GetMaster_(), GetMergeSel(), SwCellFrame::GetModelPositionForViewPoint(), SwTextFrame::GetParHeight(), SwCellFrame::GetPreviousCell(), SwTableLine::GetTableLineHeight(), GetTableSel(), SwTableLine::hasSoftPageBreak(), SwTextFrame::HideAndShowObjects(), SwFEShell::ImpEndCreate(), SwFrameNotify::ImplDestroy(), SwLayNotify::ImplDestroy(), SwContentNotify::ImplDestroy(), InsertCnt_(), SwFrame::InsertPage(), SwAccessibleCell::InvalidateCursorPos_(), IsColBreak(), SwFrame::IsFootnoteAllowed(), SwFrame::IsInFollowFlowRow(), SwContentAtPos::IsInRTLText(), IsPageBreak(), lcl_AdjustPositioningAttr(), lcl_ArrangeLowers(), lcl_CalcHeightOfFirstContentLine(), lcl_calcHeightOfRowBeforeThisFrame(), lcl_FindStartEndCol(), lcl_GetCellFrameForBorderAttrs(), lcl_GetFootnoteLower(), lcl_InsertRow(), lcl_IsFirstRowInFollowTableWithoutRepeatedHeadlines(), lcl_IsInRepeatedHeadline(), lcl_IsLineOfTableFrame(), lcl_ModifyOfst(), lcl_RecalcSplitLine(), lcl_SetWrong(), lcl_UpdateRepeatedHeadlines(), SwTextFrame::LeftMargin(), SwContentFrame::MakeAll(), SwFlyAtContentFrame::MakeAll(), SwTabFrame::MakeAll(), FndBox_::MakeNewFrames(), MakeSelUnions(), SwRootFrame::MakeTableCursors(), MoveBwd(), SwNode2LayImpl::NextFrame(), Notify_Background(), SwRowFrame::OnFrameSize(), SwFEShell::Paste(), SwContentFrame::Paste(), SwSectionFrame::Paste(), SwTabFrame::Paste(), SwTextFrame::Prepare(), SwFrame::PrepareCursor(), SwFrame::PrepareMake(), SwTextFrame::PrepWidows(), SwTextFrame::RecalcAllLines(), SwFootnoteBossFrame::RemoveFootnote(), SwCursorShell::SelTable(), SwFEShell::SelTableRowCol(), SwCursorShell::SelTableRowOrCol(), SwFlyAtContentFrame::SetAbsPos(), SwTaggedPDFHelper::SetAttributes(), SwDoc::SetTabBorders(), SwTableCellInfo::Impl::setTable(), SwDoc::SetTabLineStyle(), SwLayoutFrame::ShrinkFrame(), SwRowFrame::ShrinkFrame(), SwFlyAtContentFrame::SwClientNotify(), SwRowFrame::SwClientNotify(), SwTabFrame::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().

◆ IsFwdMoveAllowed()

bool SwFlowFrame::IsFwdMoveAllowed ( ) const

Definition at line 241 of file flowfrm.hxx.

References SwFrame::GetIndPrev(), and m_rThis.

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

◆ IsJoinLocked()

bool SwFlowFrame::IsJoinLocked ( ) const

◆ IsKeep()

bool SwFlowFrame::IsKeep ( SvxFormatKeepItem const &  rKeep,
SvxFormatBreakItem const &  rBreak,
bool  bBreakCheck = false 
) const

◆ IsKeepFwdMoveAllowed()

bool SwFlowFrame::IsKeepFwdMoveAllowed ( bool  bIgnoreMyOwnKeepValue = false)

◆ IsMoveBwdJump()

static bool SwFlowFrame::IsMoveBwdJump ( )

Definition at line 155 of file flowfrm.hxx.

References s_bMoveBwdJump.

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

◆ IsPageBreak()

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(), SwTextFrame::IsHiddenNow(), 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().

◆ IsPrevObjMove()

bool SwFlowFrame::IsPrevObjMove ( ) const

◆ IsUndersized()

bool SwFlowFrame::IsUndersized ( ) const

◆ LockJoin()

void SwFlowFrame::LockJoin ( )

◆ MoveBwd()

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(), SwSectionFrame::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(), SwFrame::GetPhyPageNum(), SwPageFrame::GetPhyPageNum(), GetPrecede(), SwFrame::GetPrev(), SwFootnoteFrame::GetRef(), SwFrame::getRootFrame(), SwSectionFrame::GetSection(), SwFrame::GetType(), SwFrame::GetUpper(), SwViewShell::GetViewOptions(), HasFollow(), SwTabFrame::HasFollowFlowLine(), 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(), SwPageFrame::IsEmptyPage(), 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, SwFootnoteFrame::Paste(), SwSectionFrame::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().

◆ MoveFwd()

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(), SwLayoutFrame::ContainsContent(), 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(), 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(), and SwTabFrame::MakeAll().

◆ MoveSubTree()

void SwFlowFrame::MoveSubTree ( SwLayoutFrame pParent,
SwFrame pSibling = nullptr 

◆ PasteTree()

bool SwFlowFrame::PasteTree ( SwFrame pStart,
SwLayoutFrame pParent,
SwFrame pSibling,
SwFrame pOldParent 

A specialized form of Paste(), which relocates a whole chain (this and the following, in particular).

During this process, only the minimum operations and notifications are done.

Definition at line 519 of file flowfrm.cxx.

References SwFrame::GetPrev(), SwFrame::InvalidatePos_(), SwFrame::InvalidatePrt_(), SwLayoutFrame::m_pLower, SwFrame::mpNext, and SwFrame::mpPrev.

Referenced by MoveSubTree().

◆ SetFlyLock()

void SwFlowFrame::SetFlyLock ( bool  bNew)

Definition at line 230 of file flowfrm.hxx.

References m_bFlyLock.

Referenced by SwContentFrame::MakeAll().

◆ SetFollow()

void SwFlowFrame::SetFollow ( SwFlowFrame *const  pFollow)

◆ SetMoveBwdJump()

static void SwFlowFrame::SetMoveBwdJump ( bool  bNew)

◆ SetUndersized()

void SwFlowFrame::SetUndersized ( const bool  bNew)

◆ ShouldBwdMoved()

virtual bool SwFlowFrame::ShouldBwdMoved ( SwLayoutFrame pNewUpper,
bool &  rReformat 
protectedpure virtual

Implemented in SwContentFrame, SwSectionFrame, and SwTabFrame.

Referenced by MoveBwd().

◆ UnlockJoin()

void SwFlowFrame::UnlockJoin ( )

Friends And Related Function Documentation

◆ CalcContent

void CalcContent ( SwLayoutFrame pLay,
bool  bNoColl = false 

Definition at line 1423 of file fly.cxx.

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

◆ FlowFrameJoinLockGuard

friend class FlowFrameJoinLockGuard

Definition at line 68 of file flowfrm.hxx.

◆ MakeFrames

void MakeFrames ( SwDoc pDoc,
SwNode rSttIdx,
SwNode rEndIdx 

Definition at line 2013 of file frmtool.cxx.

◆ PrepareLock

void PrepareLock ( SwFlowFrame pTab)

Definition at line 208 of file calcmove.cxx.

◆ PrepareUnlock

void PrepareUnlock ( SwFlowFrame pTab)

Definition at line 212 of file calcmove.cxx.

◆ SwNode2LayImpl

friend class SwNode2LayImpl

Definition at line 75 of file flowfrm.hxx.

◆ SwObjectFormatterTextFrame

friend class SwObjectFormatterTextFrame

Definition at line 67 of file flowfrm.hxx.

◆ TableSplitRecalcLock

void TableSplitRecalcLock ( SwFlowFrame pTab)

Definition at line 643 of file tabfrm.cxx.

◆ TableSplitRecalcUnlock

void TableSplitRecalcUnlock ( SwFlowFrame pTab)

Definition at line 644 of file tabfrm.cxx.

◆ UnsetFollow

void UnsetFollow ( SwFlowFrame pFlow)

Definition at line 2153 of file tblsel.cxx.

Member Data Documentation

◆ m_bFlyLock

bool SwFlowFrame::m_bFlyLock

Definition at line 123 of file flowfrm.hxx.

Referenced by IsFlyLock(), and SetFlyLock().

◆ m_bLockJoin

bool SwFlowFrame::m_bLockJoin

Definition at line 121 of file flowfrm.hxx.

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

◆ m_bUndersized

bool SwFlowFrame::m_bUndersized

Definition at line 122 of file flowfrm.hxx.

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

◆ m_pFollow

SwFlowFrame* SwFlowFrame::m_pFollow

◆ m_pPrecede

SwFlowFrame* SwFlowFrame::m_pPrecede

◆ m_rThis

SwFrame& SwFlowFrame::m_rThis

◆ s_bMoveBwdJump

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 89 of file flowfrm.hxx.

Referenced by IsMoveBwdJump(), and SetMoveBwdJump().

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