20#include <config_feature_desktop.h>
21#include <config_wasm_strip.h>
65#include <objectformatter.hxx>
79 ((std::clock() -
m_nStartTicks) * 1000 / CLOCKS_PER_SEC >= CLOCKS_PER_SEC/2) )
110 for (
size_t i = 0;
i < rObjs.
size() && !aTmp.empty(); ++
i )
128 if ( pSelfFly && pSelfFly->
IsLowerOf( pFly ) )
145 const bool bLowerOfSelf = pFly->
IsLowerOf( pSelfFly );
156 if ( pFly->
Lower() &&
175 bool bRetPaint =
false;
176 for (
const auto& rRegionRect : aTmp )
218 const bool bHeightDiff = nOldHeight != nNewHeight;
223 if( nOldHeight > nNewHeight )
225 aRectFnSet.
SetTop( aDrawRect, nOldBottom );
252 m_pOptTab( nullptr ),
253 m_nPreInvaPage( USHRT_MAX ),
254 m_nStartTicks(
std::clock() ),
256 m_nEndPage( USHRT_MAX ),
257 m_nCheckPageNum( USHRT_MAX )
272 OSL_ENSURE( !
m_pWait,
"Wait object not destroyed" );
416 bool bPageChgd =
false;
417 while ( pCnt && pCnt->IsFollow() )
419 if ( pCnt && pChk != pCnt )
431 while ( pCnt && pCnt->IsFollow() )
433 if ( pCnt && pCnt != pChk )
454 assert( pPageFrame );
461 pObj->UnlockPosition();
493 sal_uInt16 nPercentPageNum = 0;
495 auto lcl_isLayoutLooping = [&]()
497 const bool bAgain = this->
IsAgain();
498 if (bAgain && bNoLoop)
503 int nOuterLoopControlRuns = 0;
504 const int nOutermoopControlMax = 10000;
511 if (++nOuterLoopControlRuns > nOutermoopControlMax)
513 SAL_WARN(
"sw",
"SwLayAction::InternalAction has run too many loops");
520 if (!pPage || m_nCheckPageNum < pPage->GetPhyPageNum())
552 if (lcl_isLayoutLooping())
return;
574 if (lcl_isLayoutLooping())
return;
577 int nLoopControlRuns_1 = 0;
578 const int nLoopControlMax = 20;
584 if ( ++nLoopControlRuns_1 > nLoopControlMax )
586 OSL_FAIL(
"LoopControl_1 in SwLayAction::InternalAction" );
591 if (lcl_isLayoutLooping())
return;
604 if (lcl_isLayoutLooping())
return;
621 if (lcl_isLayoutLooping())
return;
686 if (lcl_isLayoutLooping())
return;
690 while ( pPage && pPage->
GetNext() &&
694 else if (bTakeShortcut)
716 if (lcl_isLayoutLooping())
return;
731 (
IsIdle() && pPg == pPage ) ) )
735 if (lcl_isLayoutLooping())
return;
738 int nLoopControlRuns_2 = 0;
739 const int nLoopControlMax = 20;
749 if (lcl_isLayoutLooping())
return;
759 int nLoopControlRuns_3 = 0;
765 if ( ++nLoopControlRuns_3 > nLoopControlMax )
767 OSL_FAIL(
"LoopControl_3 in Interrupt formatting in SwLayAction::InternalAction" );
772 if (lcl_isLayoutLooping())
return;
784 if ( ++nLoopControlRuns_2 > nLoopControlMax )
786 OSL_FAIL(
"LoopControl_2 in Interrupt formatting in SwLayAction::InternalAction" );
792 if (lcl_isLayoutLooping())
return;
899 OSL_ENSURE( pFrame->
IsLayoutFrame(),
"FindFirstInvaLay, no LayFrame" );
911 if (
nullptr != pTmp )
937 if (
auto pFly = pObj->DynCastFlyFrame() )
939 if ( pFly->IsFlyInContentFrame() )
944 if ( pFly->getFrameArea().Top() <= nBottom )
967 OSL_ENSURE( _pPage->
GetSortedObjs(),
"FindFirstInvaObj, no Objs" );
971 if (
auto pFly = pObj->DynCastFlyFrame() )
973 if ( pFly->getFrameArea().Top() <= _nBottom )
975 if ( pFly->IsInvalid() || pFly->IsCompletePaint() )
986 if ( !pDrawObject->IsValidPos() )
1021 prPage->
Calc(pRenderContext);
1023 while ( pPageLowerFrame )
1025 pPageLowerFrame->
Calc(pRenderContext);
1026 pPageLowerFrame = pPageLowerFrame->
GetNext();
1058 while ( p2ndPage && !pContent )
1071 bool bTstCnt =
true;
1075 const SwFrame *pLst = pContent;
1094 bool bPageChg =
false;
1101 pSct->
Calc(pRenderContext);
1113 pContent->
Calc(pRenderContext);
1122 if ( !bPageChg && pContent->
IsInTab() )
1127 pTab->
Calc(pRenderContext);
1137 if ( !bPageChg && pContent->
IsInSct() )
1142 pSct->
Calc(pRenderContext);
1176 if ( pObj->GetAnchorFrameContainingAnchPos() == pContent )
1188 if ( !bRet && bBrowse )
1199 const SwFrame* pFrame(
nullptr );
1220 OSL_ENSURE( !
IsAgain(),
"Attention to the invalid page." );
1224 bool bChanged =
false;
1225 bool bAlreadyPainted =
false;
1227 SwRect aFrameAtCompletePaint;
1235 SwRect aOldRect( aOldFrame );
1238 aOldRect =
static_cast<SwPageFrame*
>(pLay)->GetBoundRect(pRenderContext);
1243 pLay->
Calc(pRenderContext);
1249 bool bNoPaint =
false;
1273 if( bPageInBrowseMode )
1277 bPageInBrowseMode =
false;
1279 if( bPageInBrowseMode )
1292 for (
size_t i = 0;
i < aRegion.size(); ++
i )
1296 aRegion.push_back( aPaint );
1297 aRegion -= aOldRect;
1298 for (
size_t i = 0;
i < aRegion.size(); ++
i )
1305 bAlreadyPainted =
true;
1318 const bool bPrev = bLeftToRightViewLayout ? pLay->
GetPrev() : pLay->
GetNext();
1319 const bool bNext = bLeftToRightViewLayout ? pLay->
GetNext() : pLay->
GetPrev();
1334 SwRect aSpaceToPrevPage( aPageRect );
1335 aSpaceToPrevPage.
Top( aSpaceToPrevPage.
Top() - nHalfDocBorder );
1337 if(!aSpaceToPrevPage.
IsEmpty())
1341 aSpaceToPrevPage = aPageRect;
1342 aSpaceToPrevPage.
Left( aSpaceToPrevPage.
Left() - nHalfDocBorder );
1344 if(!aSpaceToPrevPage.
IsEmpty())
1350 SwRect aSpaceToNextPage( aPageRect );
1351 aSpaceToNextPage.
Bottom( aSpaceToNextPage.
Bottom() + nHalfDocBorder );
1353 if(!aSpaceToNextPage.
IsEmpty())
1357 aSpaceToNextPage = aPageRect;
1358 aSpaceToNextPage.
Right( aSpaceToNextPage.
Right() + nHalfDocBorder );
1360 if(!aSpaceToNextPage.
IsEmpty())
1379 if( bAlreadyPainted )
1393 bool bTabChanged =
false;
1394 while ( pLow && pLow->
GetUpper() == pLay )
1408 if (pTab->IsFollow())
1444 if ( bAlreadyPainted &&
1445 ( aBoundRect.
Width() > aFrameAtCompletePaint.
Width() ||
1451 return bChanged || bTabChanged;
1457 OSL_ENSURE( !
IsAgain(),
"Attention to the invalid page." );
1461 bool bChanged =
false;
1462 bool bAddRect =
true;
1468 pFly->
Calc(pRenderContext);
1505 OSL_ENSURE( !
IsAgain(),
"8-) Attention to the invalid page." );
1513 bool bChanged =
false;
1514 bool bPainted =
false;
1530 pTab->
Calc(pRenderContext);
1660 std::vector<std::pair<SwAnchoredObject*, SwPageFrame*>> moved;
1661 for (auto const pObj : *pObjs)
1663 assert(!pObj->AnchorFrame()->IsTextFrame()
1664 || !static_cast<SwTextFrame const*>(pObj->AnchorFrame())->IsFollow());
1665 SwPageFrame *const pAnchorPage(pObj->AnchorFrame()->FindPageFrame());
1666 assert(pAnchorPage);
1667 if (pAnchorPage != pPage
1668 && pPage->GetPhyPageNum() < pAnchorPage->GetPhyPageNum()
1669 && pObj->GetFrameFormat().GetAnchor().GetAnchorId()
1670 != RndStdIds::FLY_AS_CHAR)
1672 moved.emplace_back(pObj, pAnchorPage);
1675 for (
auto const& [pObj, pAnchorPage] : moved)
1677 SAL_INFO(
"sw.layout",
"SwLayAction::FormatContent: move anchored " << pObj <<
" from " << pPage->
GetPhyPageNum() <<
" to " << pAnchorPage->GetPhyPageNum());
1678 pObj->RegisterAtPage(*pAnchorPage);
1681 pObj->InvalidateObjPos();
1690 pContent->InvalidateSize();
1700 while ( pContent && pPage->IsAnLower( pContent ) )
1703 const bool bFull = !pContent->isFrameAreaDefinitionValid() || pContent->IsCompletePaint() ||
1704 pContent->IsRetouche() || pContent->GetDrawObjs();
1708 const bool bNxtCnt = IsCalcLayout() && !pContent->GetFollow();
1710 SwContentFrame*
const pContentPrev = pContent->
GetPrev() ? pContent->GetPrevContentFrame() :
nullptr;
1711 std::optional<SfxDeleteListener> oPrevDeleteListener;
1713 oPrevDeleteListener.emplace(*pContentPrev);
1718 const bool bOldPaint = IsPaint();
1719 m_bPaint = bOldPaint && !(pTab && pTab == m_pOptTab);
1720 FormatContent_( pContent, pPage );
1722 m_bPaint = bOldPaint;
1731 ( !IsInterrupt() || mbFormatContentOnInterrupt ) &&
1732 pContent->IsTextFrame() &&
1734 *(pContent->FindPageFrame()),
this ) )
1739 if ( !pContent->GetValidLineNumFlag() && pContent->IsTextFrame() )
1743 if ( IsPaintExtraData() && IsPaint() &&
1744 nAllLines !=
static_cast<const SwTextFrame*
>(pContent)->GetAllLines() )
1745 m_pImp->GetShell()->AddPaintRect( pContent->getFrameArea() );
1756 if (!pTab || !bInValid)
1760 if ( ( IsInterrupt() && !mbFormatContentOnInterrupt ) ||
1761 ( !bBrowse && pPage->IsInvalidLayout() ) ||
1763 ( pPage->GetSortedObjs() && pPage->IsInvalidFly() && !mbFormatContentOnInterrupt )
1767 if ( pOldUpper != pContent->GetUpper() )
1769 const sal_uInt16 nCurNum = pContent->FindPageFrame()->GetPhyPageNum();
1770 if ( nCurNum < pPage->GetPhyPageNum() )
1771 m_nPreInvaPage = nCurNum;
1775 if ( !IsCalcLayout() && pPage->GetPhyPageNum() > nCurNum+1 )
1777 SetNextCycle(
true );
1779 if ( !mbFormatContentOnInterrupt )
1789 bool bSetContent =
true;
1792 if (oPrevDeleteListener->WasDeleted())
1794 SAL_WARN(
"sw",
"ContentPrev was deleted");
1800 pPage->InvalidateContent();
1803 if ( pOldUpper != pContent->GetUpper() &&
1804 pPage->GetPhyPageNum() < pContent->FindPageFrame()->GetPhyPageNum() )
1806 pContent = pContentPrev;
1807 bSetContent =
false;
1812 if ( bBrowse && !IsIdle() && !IsCalcLayout() && !IsComplete() &&
1813 pContent->getFrameArea().Top() > m_pImp->GetShell()->VisArea().Bottom())
1815 const tools::Long nBottom = m_pImp->GetShell()->VisArea().Bottom();
1817 nBottom, pContent );
1820 if ( (!(pPage->GetSortedObjs() && pPage->IsInvalidFly()) ||
1822 (!pPage->IsInvalidLayout() ||
1824 SetBrowseActionStop(
true );
1826 if ( !mbFormatContentOnInterrupt )
1842 if ( !pContent->GetValidLineNumFlag() && pContent->IsTextFrame() )
1846 if ( IsPaintExtraData() && IsPaint() &&
1847 nAllLines !=
static_cast<const SwTextFrame*
>(pContent)->GetAllLines() )
1848 m_pImp->GetShell()->AddPaintRect( pContent->getFrameArea() );
1852 if ( pContent->IsTextFrame() &&
static_cast<const SwTextFrame*
>(pContent)->HasRepaint() &&
1854 PaintContent( pContent, pPage, pContent->getFrameArea(), pContent->getFrameArea().Bottom());
1859 if ( IsInterrupt() && !mbFormatContentOnInterrupt )
1862 if ( bBrowse && !IsIdle() && !IsCalcLayout() && !IsComplete() &&
1863 pContent->getFrameArea().Top() > m_pImp->GetShell()->VisArea().Bottom())
1865 const tools::Long nBottom = m_pImp->GetShell()->VisArea().Bottom();
1867 nBottom, pContent );
1870 if ( (!(pPage->GetSortedObjs() && pPage->IsInvalidFly()) ||
1872 (!pPage->IsInvalidLayout() ||
1874 SetBrowseActionStop(
true );
1876 if ( !mbFormatContentOnInterrupt )
1882 pContent = pContent->GetNextContentFrame();
1887 return !IsInterrupt() || mbFormatContentOnInterrupt;
1895 if ( !bDrawObjsOnly &&
IsPaint() )
1943 nAllLines !=
static_cast<const SwTextFrame*
>(pContent)->GetAllLines() )
1965 OSL_ENSURE( pCnt->
IsTextFrame(),
"NoText neighbour of Text" );
1974 bool bProcess =
false;
1975 for (
size_t i = 0; pTextNode; )
1997 if (i < pMerged->extents.size())
1999 if (pMerged->extents[
i].pNode != pTextNode)
2001 pTextNode = pMerged->extents[
i].pNode;
2007 pTextNode =
nullptr;
2013 pTextNode =
nullptr;
2023 if(
auto pCursorShell =
dynamic_cast<SwCursorShell *
>( pSh ) )
2024 if( !pCursorShell->IsTableMode() )
2026 SwPaM *pCursor = pCursorShell->GetCursor();
2052 const_cast<SwTextFrame*
>(pTextFrame)->CollectAutoCmplWrds(*pTextNode,
nPos);
2060 const sal_Int32 nEnd = pTextNode->
GetText().getLength();
2070 const SwRect aRepaint(
const_cast<SwTextFrame*
>(pTextFrame)->SmartTagScan(*pTextNode) );
2074 }
catch(
const css::uno::RuntimeException&) {
2091 if (
auto pFly = pObj->DynCastFlyFrame() )
2093 if ( pFly->IsFlyInContentFrame() )
2169 while (pContentFrame && pPage->
IsAnLower(pContentFrame))
2173 SAL_INFO(
"sw.idle",
"DoIdleJob " << sal_Int32(eJob) <<
" interrupted on page " << pPage->
GetPhyPageNum());
2181 i < pPage->GetSortedObjs()->
size(); ++
i )
2193 SAL_INFO(
"sw.idle",
"DoIdleJob " << sal_Int32(eJob) <<
" interrupted on page " << pPage->
GetPhyPageNum());
2232#if HAVE_FEATURE_DESKTOP && defined DBG_UTIL
2252#define SHOW_IDLE( Color ) ShowIdle( Color )
2254#define SHOW_IDLE( Color )
2261 , m_bIndicator( false )
2264 SAL_INFO(
"sw.idle",
"SwLayIdle() entry");
2283 std::vector<bool> aBools;
2286 ++rSh.mnStartAction;
2288 if (
auto pCursorShell =
dynamic_cast<SwCursorShell*
>( &rSh) )
2290 bVis = pCursorShell->GetCharRect().Overlaps(rSh.VisArea());
2292 aBools.push_back( bVis );
2295 bool bInterrupt(
false);
2307 bool bActions =
false;
2308 size_t nBoolIdx = 0;
2311 --rSh.mnStartAction;
2313 if ( rSh.Imp()->HasPaintRegion() )
2317 SwRect aTmp( rSh.VisArea() );
2326 bActions |= aTmp != rSh.VisArea();
2327 if ( aTmp == rSh.VisArea() )
2328 if (
auto pCursorShell =
dynamic_cast< SwCursorShell*
>( &rSh) )
2329 bActions |= aBools[nBoolIdx] != pCursorShell->GetCharRect().
Overlaps( rSh.VisArea() );
2351 bool bUnlock =
false;
2379 rSh.UnlockPaint(
true );
2394 bool bInValid =
false;
2418 }
while ( pPg && !bInValid );
2430#if !ENABLE_WASM_STRIP_ACCESSIBILITY
2435 SAL_INFO(
"sw.idle",
"SwLayIdle() return");
static bool AnyInput(VclInputFlags nType=VCL_INPUT_ANY)
virtual SdrLayerID GetHellId() const =0
virtual bool IsVisibleLayerId(SdrLayerID _nLayerId) const =0
method to determine, if a layer ID belongs to the visible ones.
Provides access to the layout of a document.
virtual SwLayouter * GetLayouter()=0
virtual const SwDocStat & GetDocStat() const =0
Document - Statistics.
Handle the background jobs of a Writer document.
virtual void BlockIdling()=0
Increment block count.
virtual void UnblockIdling()=0
Decrement block count.
void DrawRect(const tools::Rectangle &rRect)
void Push(vcl::PushFlags nFlags=vcl::PushFlags::ALL)
sal_uInt32 GetOrdNumDirect() const
virtual SdrLayerID GetLayer() const
bool IsHelpDocument() const
bool IsSmartTagsEnabled() const
class for the positioning of drawing objects
wrapper class for the positioning of Writer fly frames and drawing objects
virtual const SwFlyFrame * DynCastFlyFrame() const
virtual SwRect GetObjRect() const =0
SwContentFrame is the layout for content nodes: a common base class for text (paragraph) and non-text...
SwContentFrame * GetNextContentFrame() const
SwTextFrame * FindMaster() const
void EndCursorMove(const bool bIdleEnd=false)
static OUString GetEventName(sal_Int32 nId)
static SwAutoCompleteWord & GetAutoCompleteWords()
SwFootnoteIdxs & GetFootnoteIdxs()
SwDocShell * GetDocShell()
general base class for all free-flowing frames
const SwVirtFlyDrawObj * GetVirtDrawObj() const
virtual const SwFlyFrameFormat * GetFormat() const override
bool IsBackgroundTransparent() const
SwFlyFrame::IsBackgroundTransparent.
bool IsLowerOf(const SwLayoutFrame *pUpper) const
bool IsFlyInContentFrame() const
virtual void Calc(vcl::RenderContext *pRenderContext) const override
const SwRect & getFrameArea() const
bool isFrameAreaDefinitionValid() const
const SwRect & getFramePrintArea() const
Base class of the Writer layout elements.
SwRect GetPaintArea() const
|* The paintarea is the area, in which the content of a frame is allowed |* to be displayed.
SwSectionFrame * ImplFindSctFrame()
bool GetValidLineNumFlag() const
SwFlyFrame * FindFlyFrame()
SwSectionFrame * FindSctFrame()
SwTabFrame * FindTabFrame()
void ResetCompletePaint() const
SwTabFrame * ImplFindTabFrame()
virtual void Calc(vcl::RenderContext *pRenderContext) const
bool IsRetoucheFrame() const
const SwSortedObjs * GetDrawObjs() const
void ResetRetouche() const
static void CheckPageDescs(SwPageFrame *pStart, bool bNotifyFields=true, SwPageFrame **ppPrev=nullptr)
Check all pages (starting from the given one) if they use the appropriate frame format.
bool IsPageBodyFrame() const
SwRect UnionFrame(bool bBorder=false) const
|* The unionframe is the framearea (getFrameArea()) of a frame expanded by the |* printarea,...
bool IsFootnoteFrame() const
SwLayoutFrame * GetUpper()
bool IsCompletePaint() const
void InvalidatePage(const SwPageFrame *pPage=nullptr) const
Invalidates the page in which the Frame is currently placed.
SwRootFrame * getRootFrame()
bool IsNoTextFrame() const
void SetCompletePaint() const
SwPageFrame * FindPageFrame()
static void DestroyFrame(SwFrame *const pFrame)
this is the only way to delete a SwFrame instance
bool IsLayoutFrame() const
The usage of LayAction is always the same:
void FormatLayoutFly(SwFlyFrame *)
SwLayAction(SwRootFrame *pRt, SwViewShellImp *pImp)
std::clock_t m_nStartTicks
const SwTabFrame * m_pOptTab
void Action(OutputDevice *pRenderContext)
std::unique_ptr< SwWait > m_pWait
sal_uInt16 m_nPreInvaPage
void SetAgain(bool bAgain)
void FormatFlyContent(const SwFlyFrame *)
void SetInputType(VclInputFlags nNew)
VclInputFlags GetInputType() const
void SetCheckPages(bool bNew)
void PaintContent(const SwContentFrame *, const SwPageFrame *, const SwRect &rOldRect, tools::Long nOldBottom)
Depending of the type, the Content is output according to its changes, or the area to be outputted is...
bool FormatLayoutTab(SwTabFrame *, bool bAddRect)
bool TurboAction_(const SwContentFrame *)
bool IsWaitAllowed() const
sal_uInt16 m_nCheckPageNum
void SetWaitAllowed(bool bNew)
bool IsReschedule() const
void PushFormatLayout(SwFrame *pLow)
bool PaintWithoutFlys(const SwRect &, const SwContentFrame *, const SwPageFrame *)
void InternalAction(OutputDevice *pRenderContext)
std::vector< SwFrame * > m_aFrameStack
bool FormatContent(SwPageFrame *pPage)
bool IsShortCut(SwPageFrame *&)
bool IsBrowseActionStop() const
bool RemoveEmptyBrowserPages()
std::vector< std::unique_ptr< SwFrameDeleteGuard > > m_aFrameDeleteGuards
void SetStatBar(bool bNew)
void SetNextCycle(bool bNew)
bool IsPaintExtraData() const
bool PaintContent_(const SwContentFrame *, const SwPageFrame *, const SwRect &)
void FormatContent_(const SwContentFrame *pContent, const SwPageFrame *pPage)
bool IsCalcLayout() const
bool FormatLayout(OutputDevice *pRenderContext, SwLayoutFrame *, bool bAddRect=true)
bool mbFormatContentOnInterrupt
static SwPageFrame * CheckFirstVisPage(SwPageFrame *pPage)
VclInputFlags m_nInputType
SwContentNode * m_pContentNode
bool DoIdleJob_(const SwContentFrame *, IdleJobType)
bool DoIdleJob(IdleJobType eJobType, IdleJobArea eJobArea)
static bool isJobEnabled(IdleJobType eJob, const SwViewShell *pViewShell)
void ShowIdle(Color eName)
SwLayIdle(SwRootFrame *pRt, SwViewShellImp *pImp)
A layout frame is a frame that contains other frames (m_pLower), e.g. SwPageFrame or SwTabFrame.
bool IsAnLower(const SwFrame *) const
virtual const SwFrameFormat * GetFormat() const
const SwContentFrame * ContainsContent() const
Checks if the frame contains one or more ContentFrame's anywhere in his subsidiary structure; if so t...
const SwFrame * Lower() const
static bool StartLoopControl(SwDoc *pDoc, SwPageFrame const *pPage)
void LoopControl(SwPageFrame *pPage)
PaM is Point and Mark: a selection of the document model.
bool IsMultiSelection() const
SwContentNode * GetPointContentNode() const
const SwPosition * GetPoint() const
bool HasMark() const
A PaM marks a selection if Point and Mark are distinct positions.
A page of the document layout.
bool IsInvalidWordCount() const
void InvalidateContent() const
void ValidateFlyInCnt() const
SwContentFrame * FindLastBodyContent()
Searches the last ContentFrame in BodyText below the page.
void ValidateContent() const
void InvalidateFlyLayout() const
Validate, invalidate and query the Page status Layout/Content and Fly/non-Fly respectively are inspec...
sal_uInt16 GetPhyPageNum() const
void ValidateSmartTags() const
static void GetBorderAndShadowBoundRect(const SwRect &_rPageRect, const SwViewShell *_pViewShell, OutputDevice const *pRenderContext, SwRect &_orBorderAndShadowBoundRect, const bool bLeftShadow, const bool bRightShadow, const bool bRightSidebar)
get bound rectangle of border and shadow for repaints
bool IsInvalidFlyContent() const
void InvalidateFlyInCnt() const
const SwSortedObjs * GetSortedObjs() const
bool IsInvalidFlyLayout() const
bool IsLeftShadowNeeded() const
SwContentFrame * FindFirstBodyContent()
sw::sidebarwindows::SidebarPosition SidebarPosition() const
asks the page on which side a margin should be shown, e.g for notes returns true for left side,...
bool IsInvalidSmartTags() const
void ValidateFlyLayout() const
bool IsFootnotePage() const
Foot note interface.
bool IsInvalidContent() const
void InvalidateFlyContent() const
bool IsInvalidSpelling() const
bool IsInvalidAutoCompleteWords() const
SwRect GetBoundRect(OutputDevice const *pOutputDevice) const
void ValidateWordCount() const
bool IsInvalidFlyInCnt() const
virtual void Cut() override
void ValidateSpelling() const
bool IsInvalidFly() const
void ValidateAutoCompleteWords() const
bool IsRightShadowNeeded() const
void ValidateLayout() const
bool IsInvalidLayout() const
void ValidateFlyContent() const
tools::Long GetHeight(const SwRect &rRect) const
void SetWidth(SwRect &rRect, tools::Long nNew) const
tools::Long GetRightMargin(const SwFrame &rFrame) const
tools::Long GetTopMargin(const SwFrame &rFrame) const
void SetHeight(SwRect &rRect, tools::Long nNew) const
tools::Long GetPrtRight(const SwFrame &rFrame) const
tools::Long GetBottomMargin(const SwFrame &rFrame) const
tools::Long YDiff(tools::Long n1, tools::Long n2) const
tools::Long GetLeftMargin(const SwFrame &rFrame) const
tools::Long GetBottom(const SwRect &rRect) const
void SetTop(SwRect &rRect, tools::Long nNew) const
tools::Long GetPrtBottom(const SwFrame &rFrame) const
void SetLeft(SwRect &rRect, tools::Long nNew) const
Of course Writer needs its own rectangles.
void Height(tools::Long nNew)
void Top(const tools::Long nTop)
void Right(const tools::Long nRight)
void Bottom(const tools::Long nBottom)
void Pos(const Point &rNew)
void SSize(const Size &rNew)
bool Overlaps(const SwRect &rRect) const
void Left(const tools::Long nLeft)
void Width(tools::Long nNew)
void ChangeOrigin(const SwRect &rRect)
The root element of a Writer document layout.
bool IsAssertFlyPages() const
bool IsLeftToRightViewLayout() const
void ResetTurboFlag() const
bool IsSuperfluous() const
SwViewShell * GetCurrShell() const
const SwContentFrame * GetTurbo() const
sal_uInt16 GetPageNum() const
bool IsTableUpdateInProgress() const
void RemoveSuperfluous()
remove pages that are not needed at all
void DisallowTurbo() const
void AssertFlyPages()
Ensures that enough pages exist, so that all page bound frames and draw objects can be placed.
static SwSmartTagMgr & Get()
class for collecting anchored objects
SwTabFrame is one table in the document layout, containing rows (which contain cells).
void SetLowersFormatted(bool b)
bool IsLowersFormatted() const
Represents the visualization of a paragraph.
sal_uLong GetAllLines() const
For displaying the line numbers.
sw::MergedPara * GetMergedPara()
SwRect GetPaintSwRect()
Page number etc.
SwTextNode const * GetTextNodeForParaProps() const
SwTextNode is a paragraph in the document model.
bool IsSmartTagDirty() const
bool IsAutoCompleteWordDirty() const
bool CountWords(SwDocStat &rStat, sal_Int32 nStart, sal_Int32 nEnd) const
count words in given range - returns true if we refreshed out count
bool IsWordCountDirty() const
sw::WrongState GetWrongDirty() const
bool IsWrongDirty() const
const OUString & GetText() const
static bool IsAutoCompleteWords()
sal_uInt16 GetGapBetweenPages() const
static constexpr sal_uInt16 defGapBetweenPages
bool getBrowseMode() const
bool IsOnlineSpell() const
SwLayAction * m_pLayAction
const SwPageFrame * GetFirstVisPage(OutputDevice const *pRenderContext) const
Management of the first visible Page.
void SetFirstVisPageInvalid()
const SwViewShell * GetShell() const
Only for SwViewShell::Init()
void FireAccessibleEvents()
Fire all accessible events that have been collected so far.
bool IsAccessible() const
Is this view accessible?
vcl::RenderContext * GetOut() const
const IDocumentStatistics & getIDocumentStatistics() const
Provides access to the document statistics interface.
const SwViewOption * GetViewOptions() const
void UnlockPaint(bool bVirDev=false)
void EnableSmooth(bool b)
bool AddPaintRect(const SwRect &rRect)
vcl::Window * GetWin() const
const SwRect & VisArea() const
void InvalidateWindows(const SwRect &rRect)
bool IsPaintLocked() const
SwFlyFrame * GetFlyFrame()
ring_container GetRingContainer()
bool SupportsDoubleBuffering() const
::OutputDevice const * GetOutDev() const
Point PixelToLogic(const Point &rDevicePt) const
constexpr ::Color COL_LIGHTRED(0xFF, 0x00, 0x00)
constexpr ::Color COL_LIGHTGREEN(0x00, 0xFF, 0x00)
#define PROTOCOL(pFrame, nFunc, nAct, pPar)
#define TOOLS_WARN_EXCEPTION(area, stream)
static const SwFrame * lcl_FindFirstInvaLay(const SwFrame *pFrame, tools::Long nBottom)
static bool lcl_IsInvaLay(const SwFrame *pFrame, tools::Long nBottom)
static void unlockPositionOfObjects(SwPageFrame *pPageFrame)
static const SwFrame * lcl_FindFirstInvaContent(const SwLayoutFrame *pLay, tools::Long nBottom, const SwContentFrame *pFirst)
static const SwAnchoredObject * lcl_FindFirstInvaObj(const SwPageFrame *_pPage, tools::Long _nBottom)
#define SAL_WARN(area, stream)
#define SAL_INFO(area, stream)
void RescheduleProgress(SwDocShell const *pDocShell)
void SetProgressState(tools::Long nPosition, SwDocShell const *pDocShell)
tools::Long const nTopMargin
tools::Long const nLeftMargin
sal_Int32 GetContentIndex() const
Describes parts of multiple text nodes, which will form a text frame, even when redlines are hidden a...
#define STR_SW_EVENT_LAYOUT_FINISHED
constexpr sal_Int32 COMPLETE_STRING