20 #include <config_feature_desktop.h>
25 #include <viewimp.hxx>
62 #include <objectformatter.hxx>
72 rLayoutAccess.GetLayouter()->EndLoopControl(); \
84 ((std::clock() -
m_nStartTicks) * 1000 / CLOCKS_PER_SEC >= CLOCKS_PER_SEC/2) )
108 for (
size_t i = 0;
i < rObjs.
size() && !aTmp.empty(); ++
i )
111 if ( dynamic_cast< const SwVirtFlyDrawObj *>( pO ) ==
nullptr )
126 if ( pSelfFly && pSelfFly->
IsLowerOf( pFly ) )
143 const bool bLowerOfSelf = pFly->
IsLowerOf( pSelfFly );
154 if ( pFly->
Lower() &&
173 bool bRetPaint =
false;
174 for (
const auto& rRegionRect : aTmp )
216 const bool bHeightDiff = nOldHeight != nNewHeight;
221 if( nOldHeight > nNewHeight )
223 aRectFnSet.
SetTop( aDrawRect, nOldBottom );
251 m_pOptTab( nullptr ),
253 m_nStartTicks(
std::clock() ),
256 m_pCurPage( nullptr ),
273 OSL_ENSURE( !
m_pWait,
"Wait object not destroyed" );
306 pPage = static_cast<SwPageFrame*>(pPage->
GetNext());
370 bool bPageChgd =
false;
373 if ( pCnt && pChk != pCnt )
386 pCnt = static_cast<SwContentFrame*>(pCnt->
FindPrev());
387 if ( pCnt && pCnt != pChk )
415 pObj->UnlockPosition();
443 pPage = static_cast<SwPageFrame*>(pPage->
GetNext());
447 sal_uInt16 nPercentPageNum = 0;
453 if (!pPage || m_nCheckPageNum < pPage->GetPhyPageNum())
457 pPg = static_cast<SwPageFrame*>(pPg->
GetNext());
505 pPage = static_cast<SwPageFrame*>(pPage->
GetNext());
506 while ( pPage && pPage->
GetNext() &&
508 pPage = static_cast<SwPageFrame*>(pPage->
GetNext());
539 int nLoopControlRuns_1 = 0;
540 const int nLoopControlMax = 20;
546 if ( ++nLoopControlRuns_1 > nLoopControlMax )
548 OSL_FAIL(
"LoopControl_1 in SwLayAction::InternalAction" );
609 pPage = static_cast<SwPageFrame*>(pPage->
GetPrev());
653 pPage = static_cast<SwPageFrame*>(pPage->
GetNext());
654 while ( pPage && pPage->
GetNext() &&
656 pPage = static_cast<SwPageFrame*>(pPage->
GetNext());
683 pPg = static_cast<SwPageFrame*>(pPg->
GetNext());
694 (
IsIdle() && pPg == pPage ) ) )
701 int nLoopControlRuns_2 = 0;
702 const int nLoopControlMax = 20;
707 while ( ( mbFormatContentOnInterrupt &&
722 int nLoopControlRuns_3 = 0;
728 if ( ++nLoopControlRuns_3 > nLoopControlMax )
730 OSL_FAIL(
"LoopControl_3 in Interrupt formatting in SwLayAction::InternalAction" );
738 if ( mbFormatContentOnInterrupt &&
747 if ( ++nLoopControlRuns_2 > nLoopControlMax )
749 OSL_FAIL(
"LoopControl_2 in Interrupt formatting in SwLayAction::InternalAction" );
773 mbFormatContentOnInterrupt =
false;
798 if ( nAllLines != static_cast<const SwTextFrame*>(pCnt)->GetAllLines() )
858 OSL_ENSURE( pFrame->
IsLayoutFrame(),
"FindFirstInvaLay, no LayFrame" );
870 if (
nullptr != pTmp )
896 if (
auto pFly = dynamic_cast< const SwFlyFrame *>( pObj ) )
898 if ( pFly->IsFlyInContentFrame() )
900 if ( static_cast<const SwFlyInContentFrame*>(pFly)->IsInvalid() ||
901 pFly->IsCompletePaint() )
903 if ( pFly->getFrameArea().Top() <= nBottom )
926 OSL_ENSURE( _pPage->
GetSortedObjs(),
"FindFirstInvaObj, no Objs" );
930 if (
auto pFly = dynamic_cast< const SwFlyFrame *>( pObj ) )
932 if ( pFly->getFrameArea().Top() <= _nBottom )
934 if ( pFly->IsInvalid() || pFly->IsCompletePaint() )
943 else if (
auto pDrawObject = dynamic_cast< const SwAnchoredDrawObject *>( pObj ) )
945 if ( !pDrawObject->IsValidPos() )
980 prPage->
Calc(pRenderContext);
982 while ( pPageLowerFrame )
984 pPageLowerFrame->
Calc(pRenderContext);
985 pPageLowerFrame = pPageLowerFrame->
GetNext();
1015 pBody = static_cast<const SwLayoutFrame*>(pBody->
GetNext());
1017 while ( p2ndPage && !pContent )
1024 pBody = static_cast<const SwLayoutFrame*>(pBody->
GetNext());
1030 bool bTstCnt =
true;
1034 const SwFrame *pLst = pContent;
1053 bool bPageChg =
false;
1060 pSct->
Calc(pRenderContext);
1072 pContent->
Calc(pRenderContext);
1081 if ( !bPageChg && pContent->
IsInTab() )
1086 pTab->
Calc(pRenderContext);
1096 if ( !bPageChg && pContent->
IsInSct() )
1101 pSct->
Calc(pRenderContext);
1135 if ( pObj->GetAnchorFrameContainingAnchPos() == pContent )
1147 if ( !bRet && bBrowse )
1158 const SwFrame* pFrame(
nullptr );
1185 OSL_ENSURE( !
IsAgain(),
"Attention to the invalid page." );
1189 bool bChanged =
false;
1190 bool bAlreadyPainted =
false;
1192 SwRect aFrameAtCompletePaint;
1200 SwRect aOldRect( aOldFrame );
1203 aOldRect =
static_cast<SwPageFrame*
>(pLay)->GetBoundRect(pRenderContext);
1208 pLay->
Calc(pRenderContext);
1214 bool bNoPaint =
false;
1238 if( bPageInBrowseMode )
1242 bPageInBrowseMode =
false;
1244 if( bPageInBrowseMode )
1257 for (
size_t i = 0;
i < aRegion.size(); ++
i )
1261 aRegion.push_back( aPaint );
1262 aRegion -= aOldRect;
1263 for (
size_t i = 0; i < aRegion.size(); ++i )
1270 bAlreadyPainted =
true;
1283 const bool bPrev = bLeftToRightViewLayout ? pLay->
GetPrev() : pLay->
GetNext();
1284 const bool bNext = bLeftToRightViewLayout ? pLay->
GetNext() : pLay->
GetPrev();
1299 SwRect aSpaceToPrevPage( aPageRect );
1300 aSpaceToPrevPage.
Top( aSpaceToPrevPage.
Top() - nHalfDocBorder );
1302 if(!aSpaceToPrevPage.
IsEmpty())
1306 aSpaceToPrevPage = aPageRect;
1307 aSpaceToPrevPage.
Left( aSpaceToPrevPage.
Left() - nHalfDocBorder );
1309 if(!aSpaceToPrevPage.
IsEmpty())
1315 SwRect aSpaceToNextPage( aPageRect );
1316 aSpaceToNextPage.
Bottom( aSpaceToNextPage.
Bottom() + nHalfDocBorder );
1318 if(!aSpaceToNextPage.
IsEmpty())
1322 aSpaceToNextPage = aPageRect;
1323 aSpaceToNextPage.
Right( aSpaceToNextPage.
Right() + nHalfDocBorder );
1325 if(!aSpaceToNextPage.
IsEmpty())
1344 if( bAlreadyPainted )
1358 bool bTabChanged =
false;
1359 while ( pLow && pLow->
GetUpper() == pLay )
1368 static_cast<SwTabFrame*
>(pLow)->SetSplitRowDisabled();
1380 if (pTab->IsFollow())
1388 bTabChanged |=
FormatLayoutTab( static_cast<SwTabFrame*>(pLow), bAddRect );
1393 bChanged |=
FormatLayout( pRenderContext, static_cast<SwLayoutFrame*>(pLow), bAddRect );
1413 if ( bAlreadyPainted &&
1414 ( aBoundRect.Width() > aFrameAtCompletePaint.
Width() ||
1415 aBoundRect.Height() > aFrameAtCompletePaint.
Height() )
1420 return bChanged || bTabChanged;
1426 OSL_ENSURE( !
IsAgain(),
"Attention to the invalid page." );
1430 bool bChanged =
false;
1431 bool bAddRect =
true;
1437 pFly->
Calc(pRenderContext);
1457 bool bTabChanged =
false;
1464 bTabChanged |=
FormatLayoutTab( static_cast<SwTabFrame*>(pLow), bAddRect );
1475 OSL_ENSURE( !
IsAgain(),
"8-) Attention to the invalid page." );
1483 bool bChanged =
false;
1484 bool bPainted =
false;
1500 pTab->
Calc(pRenderContext);
1522 if ( nLeftMargin > 0)
1525 aRectFnSet.
SetWidth( aMarginRect, nLeftMargin );
1537 if ( nTopMargin > 0)
1540 aRectFnSet.
SetHeight( aMarginRect, nTopMargin );
1627 while ( pContent && pPage->
IsAnLower( pContent ) )
1642 const bool bOldPaint =
IsPaint();
1668 nAllLines != static_cast<const SwTextFrame*>(pContent)->GetAllLines() )
1680 if (!pTab || !bInValid)
1690 if ( pOldUpper != pContent->
GetUpper() )
1693 if ( nCurNum < pPage->GetPhyPageNum() )
1712 bool bSetContent =
true;
1720 if ( pOldUpper != pContent->
GetUpper() &&
1723 pContent = pContentPrev;
1724 bSetContent =
false;
1734 nBottom, pContent );
1764 nAllLines != static_cast<const SwTextFrame*>(pContent)->GetAllLines() )
1783 nBottom, pContent );
1811 if ( !bDrawObjsOnly &&
IsPaint() )
1846 *const_cast<SwContentFrame*>(pContent),
1859 nAllLines != static_cast<const SwTextFrame*>(pContent)->GetAllLines() )
1885 OSL_ENSURE( pCnt->
IsTextFrame(),
"NoText neighbour of Text" );
1890 SwTextFrame const*
const pTextFrame(static_cast<SwTextFrame const*>(pCnt));
1894 bool bProcess =
false;
1895 for (
size_t i = 0; pTextNode; )
1917 if (i < pMerged->extents.size())
1919 if (pMerged->extents[
i].pNode != pTextNode)
1921 pTextNode = pMerged->extents[
i].pNode;
1927 pTextNode =
nullptr;
1933 pTextNode =
nullptr;
1943 if(
auto pCursorShell = dynamic_cast<SwCursorShell *>( pSh ) )
1944 if( !pCursorShell->IsTableMode() )
1946 SwPaM *pCursor = pCursorShell->GetCursor();
1962 SwRect aRepaint( const_cast<SwTextFrame*>(pTextFrame)->AutoSpell_(*pTextNode, nPos) );
1972 const_cast<SwTextFrame*
>(pTextFrame)->CollectAutoCmplWrds(*pTextNode, nPos);
1980 const sal_Int32 nEnd = pTextNode->
GetText().getLength();
1990 const SwRect aRepaint( const_cast<SwTextFrame*>(pTextFrame)->SmartTagScan(*pTextNode) );
1994 }
catch(
const css::uno::RuntimeException&) {
2011 if (
auto pFly = dynamic_cast<SwFlyFrame *>( pObj ) )
2013 if ( pFly->IsFlyInContentFrame() )
2061 default: OSL_FAIL(
"Unknown idle job type" );
2077 while( pCnt && pPage->
IsAnLower( pCnt ) )
2089 if (
auto pFly = dynamic_cast< const SwFlyFrame *>( pObj ) )
2117 if ( pPage && bVisAreaOnly &&
2124 #if HAVE_FEATURE_DESKTOP && defined DBG_UTIL
2137 pWin->
Push( PushFlags::FILLCOLOR|PushFlags::LINECOLOR );
2144 #define SHOW_IDLE( Color ) ShowIdle( Color )
2146 #define SHOW_IDLE( Color )
2153 , m_bIndicator( false )
2156 SAL_INFO(
"sw.idle",
"SwLayIdle() entry");
2175 std::vector<bool> aBools;
2178 ++rSh.mnStartAction;
2180 if (
auto pCursorShell = dynamic_cast<SwCursorShell*>( &rSh) )
2182 bVis = pCursorShell->GetCharRect().IsOver(rSh.VisArea());
2184 aBools.push_back( bVis );
2187 bool bInterrupt(
false);
2197 bool bActions =
false;
2198 size_t nBoolIdx = 0;
2201 --rSh.mnStartAction;
2203 if ( rSh.Imp()->GetRegion() )
2207 SwRect aTmp( rSh.VisArea() );
2216 bActions |= aTmp != rSh.VisArea();
2217 if ( aTmp == rSh.VisArea() )
2218 if (
auto pCursorShell = dynamic_cast< SwCursorShell*>( &rSh) )
2219 bActions |= aBools[nBoolIdx] != pCursorShell->GetCharRect().
IsOver( rSh.VisArea() );
2241 bool bUnlock =
false;
2269 rSh.UnlockPaint(
true );
2284 bool bInValid =
false;
2308 }
while ( pPg && !bInValid );
2326 SAL_INFO(
"sw.idle",
"SwLayIdle() return");
void InternalAction(OutputDevice *pRenderContext)
bool IsAnLower(const SwFrame *) const
vcl::RenderContext * GetOut() const
void SetTop(SwRect &rRect, tools::Long nNew) const
bool IsPaintLocked() const
const SwVirtFlyDrawObj * GetVirtDrawObj() const
Base class of the Writer layout elements.
Represents the visualization of a paragraph.
void SwClearFntCacheTextGlyphs()
Clears the pre-calculated text glyphs in all SwFntObj instances.
virtual SwRect GetObjRect() const =0
bool PaintWithoutFlys(const SwRect &, const SwContentFrame *, const SwPageFrame *)
void FireAccessibleEvents()
Fire all accessible events that have been collected so far.
void Right(const tools::Long nRight)
virtual const SwFlyFrameFormat * GetFormat() const override
const SwSortedObjs * GetDrawObjs() const
const SwPageFrame * m_pCurPage
SwContentFrame * GetNextContentFrame() const
bool IsMultiSelection() const
void SetNextCycle(bool bNew)
tools::Long GetPrtRight(const SwFrame &rFrame) const
bool FormatLayout(OutputDevice *pRenderContext, SwLayoutFrame *, bool bAddRect=true)
void ShowIdle(Color eName)
void LoopControl(SwPageFrame *pPage)
bool TurboAction_(const SwContentFrame *)
void SetLowersFormatted(bool b)
const IDocumentStatistics & getIDocumentStatistics() const
Provides access to the document statistics interface.
bool IsLowerOf(const SwLayoutFrame *pUpper) const
bool FormatLayoutTab(SwTabFrame *, bool bAddRect)
const OUString & GetText() 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.
void ResetTurboFlag() const
static SwAutoCompleteWord & GetAutoCompleteWords()
bool IsInvalidWordCount() const
bool IsWrongDirty() const
SwDocShell * GetDocShell()
tools::Long GetLeftMargin(const SwFrame &rFrame) const
void FormatFlyContent(const SwFlyFrame *)
void Left(const tools::Long nLeft)
void ValidateSpelling() const
void SetCompletePaint() const
tools::Long const nLeftMargin
bool IsWaitAllowed() const
#define PROTOCOL(pFrame, nFunc, nAct, pPar)
bool DoIdleJob(IdleJobType, bool bVisAreaOnly)
const SwRect & getFramePrintArea() const
Handle the background jobs of a Writer document.
SwTabFrame is one table in the document layout, containing rows (which contain cells).
sw::MergedPara * GetMergedPara()
static bool IsAutoCompleteWords()
void ValidateFlyContent() const
void ValidateContent() const
bool IsLeftToRightViewLayout() const
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...
SwLayAction * m_pLayAction
bool GetValidLineNumFlag() const
static void DestroyFrame(SwFrame *const pFrame)
this is the only way to delete a SwFrame instance
bool IsSmartTagDirty() const
static bool StartLoopControl(SwDoc *pDoc, SwPageFrame const *pPage)
void Pos(const Point &rNew)
bool IsBackgroundTransparent() const
SwFlyFrame::IsBackgroundTransparent.
bool IsAccessible() const
Is this view accessible?
virtual void Calc(vcl::RenderContext *pRenderContext) const
bool IsFootnotePage() const
Foot note interface.
Of course Writer needs its own rectangles.
void AssertFlyPages()
Ensures that enough pages exist, so that all page bound frames and draw objects can be placed...
SwContentFrame * FindFirstBodyContent()
bool IsLowersFormatted() const
The root element of a Writer document layout.
bool IsCalcLayout() const
void InvalidateFlyInCnt() const
bool IsFootnoteFrame() const
bool isFrameAreaDefinitionValid() const
const SwPageFrame * GetFirstVisPage(OutputDevice const *pRenderContext) const
Management of the first visible Page.
void EnableSmooth(bool b)
void ValidateWordCount() const
bool IsReschedule() const
sal_uInt16 GetPhyPageNum() const
bool RemoveEmptyBrowserPages()
SwContentNode * GetContentNode(bool bPoint=true) const
SwSectionFrame * ImplFindSctFrame()
bool AddPaintRect(const SwRect &rRect)
virtual void UnblockIdling()=0
Decrement block count.
void ValidateAutoCompleteWords() const
SwRect GetPaintArea() const
|* The paintarea is the area, in which the content of a frame is allowed |* to be displayed...
bool IsShortCut(SwPageFrame *&)
wrapper class for the positioning of Writer fly frames and drawing objects
void SetFirstVisPageInvalid()
virtual bool IsVisibleLayerId(SdrLayerID _nLayerId) const =0
method to determine, if a layer ID belongs to the visible ones.
void ChangeOrigin(const SwRect &rRect)
bool IsInvalidFlyInCnt() const
const SwRect & getFrameArea() const
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
bool getBrowseMode() const
bool IsInvalidAutoCompleteWords() const
void InvalidateFlyContent() const
void Action(OutputDevice *pRenderContext)
void Width(tools::Long nNew)
bool IsInvalidSpelling() const
bool IsPageBodyFrame() const
bool IsInvalidSmartTags() const
Describes parts of multiple text nodes, which will form a text frame, even when redlines are hidden a...
SwContentFrame * GetPrevContentFrame() const
SwFlyFrame * FindFlyFrame()
bool IsWordCountDirty() const
bool IsFlyInContentFrame() const
void SetBrowseActionStop(bool bNew)
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_LIGHTRED
void DrawRect(const tools::Rectangle &rRect)
sal_uInt32 GetOrdNumDirect() const
void InvalidateContent() const
const SwViewShell * GetShell() const
Only for SwViewShell::Init()
bool IsInvalidContent() const
bool IsAssertFlyPages() const
void ValidateFlyLayout() const
SwRect GetPaintSwRect()
Page number etc.
void EndCursorMove(const bool bIdleEnd=false)
void SetStatBar(bool bNew)
bool IsInvalidFly() const
PaM is Point and Mark: a selection of the document model.
bool IsInvalidFlyContent() const
SwTextNode const * GetTextNodeForParaProps() const
SwTabFrame * ImplFindTabFrame()
#define TOOLS_WARN_EXCEPTION(area, stream)
static const SwFrame * lcl_FindFirstInvaLay(const SwFrame *pFrame, tools::Long nBottom)
sal_uInt16 m_nPreInvaPage
const SwContentFrame * GetFollow() const
static SwPageFrame * CheckFirstVisPage(SwPageFrame *pPage)
const SwSortedObjs * GetSortedObjs() const
tools::Long GetPrtBottom(const SwFrame &rFrame) const
void ValidateFlyInCnt() const
const SwRect & VisArea() const
std::unique_ptr< SwWait > m_pWait
const SwPosition * GetPoint() const
The usage of LayAction is always the same:
SwRect GetBoundRect(OutputDevice const *pOutputDevice) const
static SwSmartTagMgr & Get()
SwPageFrame * FindPageFrame()
static const SwFrame * lcl_FindFirstInvaContent(const SwLayoutFrame *pLay, tools::Long nBottom, const SwContentFrame *pFirst)
virtual void Cut() override
bool IsCompletePaint() const
const SwFrame * Lower() const
virtual SwLayouter * GetLayouter()=0
void InvalidatePage(const SwPageFrame *pPage=nullptr) const
Invalidates the page in which the Frame is currently placed.
tools::Long GetHeight(const SwRect &rRect) const
bool HasMark() const
A PaM marks a selection if Point and Mark are distinct positions.
void RescheduleProgress(SwDocShell const *pDocShell)
SwLayoutFrame * GetUpper()
::rtl::Reference< Content > pContent
bool IsSmartTagsEnabled() const
bool IsRetoucheFrame() const
tools::Long GetTopMargin(const SwFrame &rFrame) const
ring_container GetRingContainer()
static constexpr sal_uInt16 defGapBetweenPages
tools::Long YDiff(tools::Long n1, tools::Long n2) const
bool IsOnlineSpell() const
bool mbFormatContentOnInterrupt
tools::Long GetRightMargin(const SwFrame &rFrame) const
void SSize(const Size &rNew)
SwRect UnionFrame(bool bBorder=false) const
|* The unionframe is the framearea (getFrameArea()) of a frame expanded by the |* printarea...
void InvalidateFlyLayout() const
Validate, invalidate and query the Page status Layout/Content and Fly/non-Fly respectively are inspec...
A page of the document layout.
sal_uInt16 m_nCheckPageNum
bool IsLeftShadowNeeded() const
void InvalidateWindows(const SwRect &rRect)
SwContentNode * m_pContentNode
virtual SdrLayerID GetHellId() const =0
void ResetCompletePaint() const
SwSectionFrame * FindSctFrame()
virtual SdrLayerID GetLayer() const
Point PixelToLogic(const Point &rDevicePt) const
void ResetRetouche() const
bool IsInvalidFlyLayout() const
void ValidateLayout() const
void ValidateSmartTags() const
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...
void FormatContent_(const SwContentFrame *pContent, const SwPageFrame *pPage)
std::clock_t m_nStartTicks
bool IsLayoutFrame() const
void Bottom(const tools::Long nBottom)
SwTextNode is a paragraph in the document model.
void SetWidth(SwRect &rRect, tools::Long nNew) const
tools::Long const nTopMargin
bool DoIdleJob_(const SwContentFrame *, IdleJobType)
const SwTabFrame * m_pOptTab
tools::Long GetBottomMargin(const SwFrame &rFrame) const
general base class for all free-flowing frames
void RemoveSuperfluous()
remove pages that are not needed at all
static void unlockPositionOfObjects(SwPageFrame *pPageFrame)
bool IsBrowseActionStop() const
SwTextFrame * FindMaster() const
WrongState GetWrongDirty() const
const SwViewOption * GetViewOptions() const
vcl::Window * GetWin() const
bool IsPaintExtraData() const
static const SwAnchoredObject * lcl_FindFirstInvaObj(const SwPageFrame *_pPage, tools::Long _nBottom)
const o3tl::enumarray< SvxAdjust, unsigned short > aSvxToUnoAdjust USHRT_MAX
virtual const SwDocStat & GetDocStat() const =0
Document - Statistics.
#define SAL_INFO(area, stream)
sal_Int32 GetIndex() const
void SetHeight(SwRect &rRect, tools::Long nNew) const
void SetProgressState(tools::Long nPosition, SwDocShell const *pDocShell)
bool IsNoTextFrame() const
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_LIGHTGREEN
bool IsHelpDocument() const
void Top(const tools::Long nTop)
bool IsLockWordLstLocked() const
void SetWaitAllowed(bool bNew)
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 PaintContent_(const SwContentFrame *, const SwPageFrame *, const SwRect &)
static OUString GetEventName(sal_Int32 nId)
const SwContentFrame * GetTurbo() const
void DisallowTurbo() const
bool FormatContent(const SwPageFrame *pPage)
tools::Long GetBottom(const SwRect &rRect) const
virtual void Calc(vcl::RenderContext *pRenderContext) const override
static bool lcl_IsInvaLay(const SwFrame *pFrame, tools::Long nBottom)
Provides access to the layout of a document.
#define STR_SW_EVENT_LAYOUT_FINISHED
SwFootnoteIdxs & GetFootnoteIdxs()
void SetLeft(SwRect &rRect, tools::Long nNew) const
void FormatLayoutFly(SwFlyFrame *)
void SetCheckPages(bool bNew)
SwLayAction(SwRootFrame *pRt, SwViewShellImp *pImp, TaskStopwatch *pWatch=nullptr)
SwRegionRects * GetRegion()
A layout frame is a frame that contains other frames (m_pLower), e.g. SwPageFrame or SwTabFrame...
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 IsOver(const SwRect &rRect) const
const SwContentFrame * ContainsContent() const
Checks if the frame contains one or more ContentFrame's anywhere in his subsidiary structure; if so t...
void Push(PushFlags nFlags=PushFlags::ALL)
SwViewShell * GetCurrShell() const
class for collecting anchored objects
bool SupportsDoubleBuffering() const
void Height(tools::Long nNew)
bool IsSuperfluous() const
sal_uInt16 GetPageNum() const
const sal_Int32 COMPLETE_STRING
SwRootFrame * getRootFrame()
bool IsInvalidLayout() const
sal_uInt16 GetGapBetweenPages() const
void UnlockPaint(bool bVirDev=false)
SwLayIdle(SwRootFrame *pRt, SwViewShellImp *pImp)
bool IsRightShadowNeeded() const
virtual const SwFrameFormat * GetFormat() const
SwTabFrame * FindTabFrame()
virtual void BlockIdling()=0
Increment block count.