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 tells us whether the Frame has changed the page. More...
 
bool MoveBwd (bool &rbReformat)
 Return value tells whether the Frame should change the page. 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 m_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 *, 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.

SwFlowFrame::~SwFlowFrame ( )
virtual

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

OD 2004-07-16 #i26250#

Definition at line 1709 of file flowfrm.cxx.

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

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)
static
const SwFlowFrame * SwFlowFrame::CastFlowFrame ( const SwFrame pFrame)
static
void SwFlowFrame::CheckKeep ( )
bool SwFlowFrame::CheckMoveFwd ( bool &  rbMakePage,
bool  bKeep,
bool  bIgnoreMyOwnKeepValue 
)
protected
SwLayoutFrame * SwFlowFrame::CutTree ( SwFrame pStart)
staticprivate
bool SwFlowFrame::ForbiddenForFootnoteCntFwd ( ) const

Definition at line 1830 of file flowfrm.cxx.

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

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

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

Definition at line 169 of file flowfrm.hxx.

References m_pFollow.

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

Definition at line 152 of file flowfrm.hxx.

References m_rThis.

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

Definition at line 173 of file flowfrm.hxx.

References m_pPrecede.

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.

OD 2004-03-10 #i11860#

Definition at line 1285 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
private
SwTwips SwFlowFrame::GetUpperSpaceAmountConsideredForPrevFrame ( ) const
private

method to determine the upper space amount, which is considered for the previous frame

#i11860#

OD 2004-03-11 #i11860#

Definition at line 1613 of file flowfrm.cxx.

References IDocumentSettingAccess::get(), SwLayoutFrame::GetFormat(), SwFormat::getIDocumentSettingAccess(), GetPrevFrameForUpperSpaceCalc_(), GetSpacingValuesOfFrame(), SwFrame::GetUpper(), m_rThis, OLD_LINE_SPACING, and PARA_SPACE_MAX.

Referenced by GetUpperSpaceAmountConsideredForPrevFrameAndPageGrid().

SwTwips SwFlowFrame::GetUpperSpaceAmountConsideredForPrevFrameAndPageGrid ( ) const
bool SwFlowFrame::HasFollow ( ) const
inline
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().

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

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

Definition at line 230 of file flowfrm.hxx.

References m_bFlyLock.

Referenced by SwContentNotify::~SwContentNotify().

bool SwFlowFrame::IsFollow ( ) const
inline

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(), SwTableLine::ChgFrameFormat(), 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(), SwTextNode::fillSoftPageBreakList(), SwTextFrame::FindFootnoteRef(), SwSectionFrame::FindLastContent(), SwContentFrame::FindMaster(), SwSectionFrame::FindMaster(), SwTabFrame::FindMaster(), SwPageFrame::FindPageDesc(), SwFrame::FindPrevCnt_(), SwCellFrame::FindStartEndOfRowSpanCell(), WidowsAndOrphans::FindWidows(), SwTextFrame::Format(), SwTextFrame::Format_(), SwTextFrame::FormatAdjust(), SwObjectFormatterTextFrame::FormatAnchorFrameAndItsPrevs(), SwObjectFormatter::FormatObjsAtFrame_(), GetAutoSumSel(), GetBodyTextNode(), SwTextFrame::GetCharRect(), SwLayoutFrame::GetContentPos(), SwCellFrame::GetCursorOfst(), SwDrawContact::GetDrawObjectByAnchorFrame(), SwTabFrame::GetFirstNonHeadlineRow(), SwTextFlyCnt::GetFlyFrame_(), SwTextFrame::GetFootnoteFrameHeight(), SwTextFrame::GetFootnoteFrameHeight_(), GetFrameInPage(), GetFrameOfModify(), SwTabFrame::GetInfo(), SwTextFrame::GetInfo(), SwCellFrame::GetLayoutRowSpan(), SwTextFly::GetMaster_(), GetMergeSel(), SwTextFrame::GetParHeight(), SwTableLine::GetTableLineHeight(), GetTableSel(), SwTableLine::hasSoftPageBreak(), SwTextFrame::HideAndShowObjects(), SwFEShell::ImpEndCreate(), 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(), SwRowFrame::Modify(), SwTabFrame::Modify(), SwFlyAtContentFrame::Modify(), MoveBwd(), SwNode2LayImpl::NextFrame(), Notify_Background(), 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(), 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(), SwFrame::WrongPageDesc(), SwContentNotify::~SwContentNotify(), and SwFrameNotify::~SwFrameNotify().

bool SwFlowFrame::IsFwdMoveAllowed ( ) const
inlineprotected

Definition at line 240 of file flowfrm.hxx.

References SwFrame::GetIndPrev(), and m_rThis.

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

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

Definition at line 154 of file flowfrm.hxx.

References m_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 1139 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
inline
void SwFlowFrame::LockJoin ( )
inlineprotected
bool SwFlowFrame::MoveBwd ( bool &  rbReformat)
protected

Return value tells whether the Frame should change the page.

Note
This should be called by derived classes.
The actual moving must be implemented in the subclasses.

Definition at line 2039 of file flowfrm.cxx.

References 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(), SwFootnoteFrame::GetMaster(), SwFrame::GetNext(), SwViewShell::GetOut(), SwFormatPageDesc::GetPageDesc(), SwFrame::GetPageDescItem(), SwPageFrame::GetPhyPageNum(), SwFrame::GetPhyPageNum(), GetPrecede(), SwFrame::GetPrev(), SwFootnoteFrame::GetRef(), SwFrame::getRootFrame(), 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(), PREP_BOSS_CHGD, SwFrame::Prepare(), PROTOCOL_ENTER, SAL_WARN_IF, SwFootnoteFrame::SetFollow(), SwFrameAreaDefinition::setFrameAreaPositionValid(), SwFootnoteFrame::SetMaster(), 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 
)
protected

Return value tells us whether the Frame has changed the page.

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

Definition at line 1836 of file flowfrm.cxx.

References SwFrame::Calc(), SwFrame::CheckPageDescs(), SwSectionFrame::ColLock(), SwSectionFrame::ColUnlock(), SwLayoutFrame::ContainsAny(), SwFrame::FindColFrame(), SwFrame::FindFootnoteBossFrame(), SwFrame::FindPageFrame(), SwFrame::FindSctFrame(), SwFrame::FindTabFrame(), 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, PREP_BOSS_CHGD, 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 
)
staticprivate
void SwFlowFrame::SetFlyLock ( bool  bNew)
inline

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)
inlinestatic
void SwFlowFrame::SetUndersized ( const bool  bNew)
inline
virtual bool SwFlowFrame::ShouldBwdMoved ( SwLayoutFrame pNewUpper,
bool &  rReformat 
)
protectedpure virtual

Implemented in SwTabFrame, SwSectionFrame, and SwContentFrame.

Referenced by MoveBwd().

void SwFlowFrame::UnlockJoin ( )
inlineprotected

Friends And Related Function Documentation

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

Definition at line 1362 of file fly.cxx.

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

friend class FlowFrameJoinLockGuard
friend

Definition at line 67 of file flowfrm.hxx.

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

Definition at line 1831 of file frmtool.cxx.

void PrepareLock ( SwFlowFrame pTab)
friend

Definition at line 203 of file calcmove.cxx.

void PrepareUnlock ( SwFlowFrame pTab)
friend

Definition at line 207 of file calcmove.cxx.

friend class SwNode2LayImpl
friend

Definition at line 74 of file flowfrm.hxx.

friend class SwObjectFormatterTextFrame
friend

Definition at line 66 of file flowfrm.hxx.

void TableSplitRecalcLock ( SwFlowFrame pTab)
friend

Definition at line 630 of file tabfrm.cxx.

void TableSplitRecalcUnlock ( SwFlowFrame pTab)
friend

Definition at line 631 of file tabfrm.cxx.

void UnsetFollow ( SwFlowFrame pFlow)
friend

Definition at line 2159 of file tblsel.cxx.

Member Data Documentation

bool SwFlowFrame::m_bFlyLock
protected

Definition at line 122 of file flowfrm.hxx.

Referenced by IsFlyLock(), and SetFlyLock().

bool SwFlowFrame::m_bLockJoin
protected

Definition at line 120 of file flowfrm.hxx.

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

bool SwFlowFrame::m_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 88 of file flowfrm.hxx.

Referenced by IsMoveBwdJump().

bool SwFlowFrame::m_bUndersized
protected

Definition at line 121 of file flowfrm.hxx.

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

SwFlowFrame* SwFlowFrame::m_pFollow
protected

Definition at line 117 of file flowfrm.hxx.

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

SwFlowFrame* SwFlowFrame::m_pPrecede
protected
SwFrame& SwFlowFrame::m_rThis
private

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