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:
[legend]
Collaboration diagram for SwFlowFrame:
[legend]

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

SwFlowFramem_pFollow
 
SwFlowFramem_pPrecede
 
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

SwFramem_rThis
 

Static Private Attributes

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

Friends

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

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 
)
protected

◆ 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

#i26250

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

i#26250

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)
static

◆ CastFlowFrame() [2/2]

SwFlowFrame * SwFlowFrame::CastFlowFrame ( SwFrame pFrame)
static

◆ CheckKeep()

void SwFlowFrame::CheckKeep ( )

◆ CheckMoveFwd()

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

◆ CutTree()

SwLayoutFrame * SwFlowFrame::CutTree ( SwFrame pStart)
staticprivate

◆ 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 ( )
inline

Definition at line 170 of file flowfrm.hxx.

References m_pFollow.

◆ GetFollow() [2/2]

const SwFlowFrame * SwFlowFrame::GetFollow ( ) const
inline

◆ GetFrame() [1/2]

SwFrame & SwFlowFrame::GetFrame ( )
inline

Definition at line 153 of file flowfrm.hxx.

References m_rThis.

◆ GetFrame() [2/2]

const SwFrame & SwFlowFrame::GetFrame ( ) const
inline

◆ GetPrecede() [1/2]

SwFlowFrame * SwFlowFrame::GetPrecede ( )
inline

Definition at line 174 of file flowfrm.hxx.

References m_pPrecede.

◆ GetPrecede() [2/2]

const SwFlowFrame * SwFlowFrame::GetPrecede ( ) const
inline

◆ GetPrevFrameForUpperSpaceCalc_()

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

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

#i11860#

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

i#11860

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
private

◆ GetUpperSpaceAmountConsideredForPrevFrame()

SwTwips SwFlowFrame::GetUpperSpaceAmountConsideredForPrevFrame ( ) const
private

◆ GetUpperSpaceAmountConsideredForPrevFrameAndPageGrid()

SwTwips SwFlowFrame::GetUpperSpaceAmountConsideredForPrevFrameAndPageGrid ( ) const

◆ HasFollow()

bool SwFlowFrame::HasFollow ( ) const
inline

◆ HasLockedFollow()

bool SwFlowFrame::HasLockedFollow ( ) const
Returns
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
inline

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
inline

Definition at line 231 of file flowfrm.hxx.

References m_bFlyLock.

Referenced by SwContentNotify::ImplDestroy().

◆ IsFollow()

bool SwFlowFrame::IsFollow ( ) const
inline

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
inlineprotected

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
inline

◆ IsKeep()

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

◆ IsKeepFwdMoveAllowed()

bool SwFlowFrame::IsKeepFwdMoveAllowed ( bool  bIgnoreMyOwnKeepValue = false)
protected

◆ IsMoveBwdJump()

static bool SwFlowFrame::IsMoveBwdJump ( )
inlinestatic

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
inline

◆ LockJoin()

void SwFlowFrame::LockJoin ( )
inlineprotected

◆ MoveBwd()

bool SwFlowFrame::MoveBwd ( bool &  rbReformat)
protected

Return value tells whether any changes have been made.

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

Note
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 
)
protected

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 
)
staticprivate

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)
inline

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)
inlinestatic

◆ SetUndersized()

void SwFlowFrame::SetUndersized ( const bool  bNew)
inline

◆ ShouldBwdMoved()

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

Implemented in SwContentFrame, SwSectionFrame, and SwTabFrame.

Referenced by MoveBwd().

◆ UnlockJoin()

void SwFlowFrame::UnlockJoin ( )
inlineprotected

Friends And Related Function Documentation

◆ CalcContent

void CalcContent ( SwLayoutFrame pLay,
bool  bNoColl = false 
)
friend

Definition at line 1423 of file fly.cxx.

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

◆ FlowFrameJoinLockGuard

friend class FlowFrameJoinLockGuard
friend

Definition at line 68 of file flowfrm.hxx.

◆ MakeFrames

void MakeFrames ( SwDoc pDoc,
SwNode rSttIdx,
SwNode rEndIdx 
)
friend

Definition at line 2013 of file frmtool.cxx.

◆ PrepareLock

void PrepareLock ( SwFlowFrame pTab)
friend

Definition at line 208 of file calcmove.cxx.

◆ PrepareUnlock

void PrepareUnlock ( SwFlowFrame pTab)
friend

Definition at line 212 of file calcmove.cxx.

◆ SwNode2LayImpl

friend class SwNode2LayImpl
friend

Definition at line 75 of file flowfrm.hxx.

◆ SwObjectFormatterTextFrame

friend class SwObjectFormatterTextFrame
friend

Definition at line 67 of file flowfrm.hxx.

◆ TableSplitRecalcLock

void TableSplitRecalcLock ( SwFlowFrame pTab)
friend

Definition at line 643 of file tabfrm.cxx.

◆ TableSplitRecalcUnlock

void TableSplitRecalcUnlock ( SwFlowFrame pTab)
friend

Definition at line 644 of file tabfrm.cxx.

◆ UnsetFollow

void UnsetFollow ( SwFlowFrame pFlow)
friend

Definition at line 2153 of file tblsel.cxx.

Member Data Documentation

◆ m_bFlyLock

bool SwFlowFrame::m_bFlyLock
protected

Definition at line 123 of file flowfrm.hxx.

Referenced by IsFlyLock(), and SetFlyLock().

◆ m_bLockJoin

bool SwFlowFrame::m_bLockJoin
protected

Definition at line 121 of file flowfrm.hxx.

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

◆ m_bUndersized

bool SwFlowFrame::m_bUndersized
protected

Definition at line 122 of file flowfrm.hxx.

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

◆ m_pFollow

SwFlowFrame* SwFlowFrame::m_pFollow
protected

◆ m_pPrecede

SwFlowFrame* SwFlowFrame::m_pPrecede
protected

◆ m_rThis

SwFrame& SwFlowFrame::m_rThis
private

◆ s_bMoveBwdJump

bool SwFlowFrame::s_bMoveBwdJump = false
staticprivate

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: