LibreOffice Module sw (master) 1
viewimp.cxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#include <config_wasm_strip.h>
21
22#include <rootfrm.hxx>
23#include <pagefrm.hxx>
24#include <viewimp.hxx>
25#include <viewopt.hxx>
26#include <flyfrm.hxx>
27#include <layact.hxx>
28#include <dview.hxx>
29#include <svx/svdpage.hxx>
30#include <accmap.hxx>
31
32#include <officecfg/Office/Common.hxx>
33#include <pagepreviewlayout.hxx>
34#include <comphelper/lok.hxx>
35#include <tools/diagnose_ex.h>
38#include <drawdoc.hxx>
39#include <prevwpage.hxx>
40
41void SwViewShellImp::Init( const SwViewOption *pNewOpt )
42{
43 OSL_ENSURE( m_pDrawView, "SwViewShellImp::Init without DrawView" );
44 //Create PageView if it doesn't exist
45 SwRootFrame *pRoot = m_pShell->GetLayout();
46 if ( !m_pSdrPageView )
47 {
49 if ( !pRoot->GetDrawPage() )
50 pRoot->SetDrawPage( rIDDMA.GetDrawModel()->GetPage( 0 ) );
51
52 if ( pRoot->GetDrawPage()->GetSize() != pRoot->getFrameArea().SSize() )
53 pRoot->GetDrawPage()->SetSize( pRoot->getFrameArea().SSize() );
54
55 m_pSdrPageView = m_pDrawView->ShowSdrPage( pRoot->GetDrawPage());
56 // Notify drawing page view about invisible layers
58 }
59 m_pDrawView->SetDragStripes( pNewOpt->IsCrossHair() );
60 m_pDrawView->SetGridSnap( pNewOpt->IsSnap() );
61 m_pDrawView->SetGridVisible( pNewOpt->IsGridVisible() );
62 const Size &rSz = pNewOpt->GetSnapSize();
63 m_pDrawView->SetGridCoarse( rSz );
64 const Size aFSize
65 ( rSz.Width() ? rSz.Width() /std::max(short(1),pNewOpt->GetDivisionX()):0,
66 rSz.Height()? rSz.Height()/std::max(short(1),pNewOpt->GetDivisionY()):0);
67 m_pDrawView->SetGridFine( aFSize );
68 Fraction aSnGrWdtX(rSz.Width(), pNewOpt->GetDivisionX() + 1);
69 Fraction aSnGrWdtY(rSz.Height(), pNewOpt->GetDivisionY() + 1);
70 m_pDrawView->SetSnapGridWidth( aSnGrWdtX, aSnGrWdtY );
71
72 if ( pRoot->getFrameArea().HasArea() )
73 m_pDrawView->SetWorkArea( pRoot->getFrameArea().SVRect() );
74
75 if ( GetShell()->IsPreview() )
76 m_pDrawView->SetAnimationEnabled( false );
77
78 m_pDrawView->SetUseIncompatiblePathCreateInterface( false );
79
80 // set handle size to 9 pixels, always
81 m_pDrawView->SetMarkHdlSizePixel(9);
82}
83
86 m_pShell( pParent ),
87 m_pSdrPageView( nullptr ),
88 m_pFirstVisiblePage( nullptr ),
89 m_pLayAction( nullptr ),
90 m_pIdleAct( nullptr ),
91 m_bFirstPageInvalid( true ),
92 m_bResetHdlHiddenPaint( false ),
93 m_bSmoothUpdate( false ),
94 m_bStopSmooth( false ),
95 m_nRestoreActions( 0 )
96{
97}
98
100{
101#if !ENABLE_WASM_STRIP_ACCESSIBILITY
102 m_pAccessibleMap.reset();
103#endif
104
105 m_pPagePreviewLayout.reset();
106
107 // Make sure HideSdrPage is also executed after ShowSdrPage.
108 if( m_pDrawView )
109 m_pDrawView->HideSdrPage();
110
111 m_pDrawView.reset();
112
114
115 OSL_ENSURE( !m_pLayAction, "Have action for the rest of your life." );
116 OSL_ENSURE( !m_pIdleAct,"Be idle for the rest of your life." );
117}
118
120{
121 // In case of tiled rendering the visual area is the last painted tile -> not interesting.
123 {
124 if ( !m_pPaintRegion )
125 {
126 // In case of normal rendering, this makes sure only visible rectangles are painted.
127 // Otherwise get the rectangle of the full document, so all paint rectangles are invalidated.
129 m_pPaintRegion.reset(new SwRegionRects);
130 m_pPaintRegion->ChangeOrigin(rArea);
131 }
132 if(!m_pPaintRegion->empty())
133 {
134 // This function often gets called with rectangles that line up vertically.
135 // Try to extend the last one downwards to include the new one (use Union()
136 // in case the new one is actually already contained in the last one).
137 SwRect& last = m_pPaintRegion->back();
138 if(last.Left() == rRect.Left() && last.Width() == rRect.Width()
139 && last.Bottom() + 1 >= rRect.Top() && last.Bottom() <= rRect.Bottom())
140 {
141 last.Union(rRect);
142 // And these rectangles lined up vertically often come up in groups
143 // that line up horizontally. Try to extend the previous rectangle
144 // to the right to include the last one.
145 if(m_pPaintRegion->size() > 1)
146 {
147 SwRect& last2 = (*m_pPaintRegion)[m_pPaintRegion->size() - 2];
148 if(last2.Top() == last.Top() && last2.Height() == last.Height()
149 && last2.Right() + 1 >= last.Left() && last2.Right() <= last2.Right())
150 {
151 last2.Union(last);
152 m_pPaintRegion->pop_back();
153 return true;
154 }
155 }
156 return true;
157 }
158 }
159 (*m_pPaintRegion) += rRect;
160 return true;
161 }
162 return false;
163}
164
166{
167 // These are often repeated, so check first for duplicates.
168 std::vector<SwRect>& l = m_pendingLOKInvalidations;
169 if( std::find( l.begin(), l.end(), rRect ) == l.end())
170 l.push_back( rRect );
171}
172
174{
175 std::vector<SwRect> ret;
176 std::swap(ret, m_pendingLOKInvalidations);
177 return ret;
178}
179
181{
182 if ( m_pLayAction )
184}
185
187{
189}
190
192{
194 {
196 return true;
197 }
198 return false;
199}
200
202{
204 {
205 //We are in an action and because of erase actions the VisArea is
206 //after the first visible page.
207 //To avoid excessive formatting, hand back the last page.
211 }
212 else
213 {
214 const SwViewOption* pSwViewOption = GetShell()->GetViewOptions();
215 const bool bBookMode = pSwViewOption->IsViewLayoutBookMode();
216
217 SwPageFrame *pPage = static_cast<SwPageFrame*>(m_pShell->GetLayout()->Lower());
218 SwRect aPageRect = pPage->GetBoundRect(pRenderContext);
219 while ( pPage && !aPageRect.Overlaps( m_pShell->VisArea() ) )
220 {
221 pPage = static_cast<SwPageFrame*>(pPage->GetNext());
222 if ( pPage )
223 {
224 aPageRect = pPage->GetBoundRect(pRenderContext);
225 if ( bBookMode && pPage->IsEmptyPage() )
226 {
227 const SwPageFrame& rFormatPage = pPage->GetFormatPage();
228 aPageRect.SSize( rFormatPage.GetBoundRect(pRenderContext).SSize() );
229 }
230 }
231 }
232 m_pFirstVisiblePage = pPage ? pPage : static_cast<SwPageFrame*>(m_pShell->GetLayout()->Lower());
233 }
234 m_bFirstPageInvalid = false;
235}
236
238{
240
241 // the else here is not an error, MakeDrawModel_() calls this method again
242 // after the DrawModel is created to create DrawViews for all shells...
243 if( !rIDDMA.GetDrawModel() )
244 {
245 rIDDMA.MakeDrawModel_();
246 }
247 else
248 {
249 if ( !m_pDrawView )
250 {
251 // #i72809#
252 // Discussed with FME, he also thinks that the getPrinter is old and not correct. When i got
253 // him right, it anyways returns GetOut() when it's a printer, but NULL when not. He suggested
254 // to use GetOut() and check the existing cases.
255 // Check worked well. Took a look at viewing, printing, PDF export and print preview with a test
256 // document which has an empty 2nd page (right page, see bug)
257 auto pWin = GetShell()->GetWin();
258 OutputDevice* pOutDevForDrawView = pWin ? pWin->GetOutDev() : nullptr;
259
260 if(!pOutDevForDrawView)
261 {
262 pOutDevForDrawView = GetShell()->GetOut();
263 }
264
265 m_pDrawView.reset( new SwDrawView(
266 *this,
267 *rIDDMA.GetOrCreateDrawModel(),
268 pOutDevForDrawView) );
269 }
270
271 GetDrawView()->SetActiveLayer("Heaven");
272 const SwViewOption* pSwViewOption = GetShell()->GetViewOptions();
273 Init(pSwViewOption);
274
275 // #i68597# If document is read-only, we will not profit from overlay,
276 // so switch it off.
277 if (m_pDrawView->IsBufferedOverlayAllowed())
278 {
279 if(pSwViewOption->IsReadonly())
280 {
281 m_pDrawView->SetBufferedOverlayAllowed(false);
282 }
283 }
284 }
285}
286
288{
289 Color aRet( COL_TRANSPARENT );
290 const SwViewShell &rSh = *GetShell();
291 if ( rSh.GetWin() )
292 {
293 if ( rSh.GetViewOptions()->getBrowseMode() &&
295 aRet = rSh.GetViewOptions()->GetRetoucheColor();
296 else if(rSh.GetViewOptions()->IsPagePreview() &&
298 aRet = COL_WHITE;
299 else
301 }
302 return aRet;
303}
304
306{
308 SetFirstVisPage(pRenderContext);
309 return m_pFirstVisiblePage;
310}
311
312const SwPageFrame *SwViewShellImp::GetFirstVisPage(OutputDevice const * pRenderContext) const
313{
315 const_cast<SwViewShellImp*>(this)->SetFirstVisPage(pRenderContext);
316 return m_pFirstVisiblePage;
317}
318
319// create page preview layout
321{
322 OSL_ENSURE( m_pShell->GetLayout(), "no layout - page preview layout can not be created.");
323 if ( m_pShell->GetLayout() )
325}
326
327#if !ENABLE_WASM_STRIP_ACCESSIBILITY
329{
330 // We require a layout and an XModel to be accessible.
332 vcl::Window *pWin = GetShell()->GetWin();
333 OSL_ENSURE( GetShell()->GetLayout(), "no layout, no access" );
334 OSL_ENSURE( pWin, "no window, no access" );
335
336 if( IsAccessible() && rIDLA.GetCurrentViewShell() && pWin )
337 {
338 try
339 {
341 }
342 catch (uno::Exception const&)
343 {
344 TOOLS_WARN_EXCEPTION("sw.a11y", "");
345 assert(!"SwViewShellImp::UpdateAccessible: unhandled exception");
346 }
347 }
348}
349
351 const SdrObject *pObj,
352 bool bRecursive,
353 bool bCanSkipInvisible)
354{
355 OSL_ENSURE( !pFrame || pFrame->IsAccessibleFrame(), "frame is not accessible" );
356 for(SwViewShell& rTmp : GetShell()->GetRingContainer())
357 {
358 if( rTmp.Imp()->IsAccessible() )
359 rTmp.Imp()->GetAccessibleMap().A11yDispose( pFrame, pObj, nullptr, bRecursive, bCanSkipInvisible );
360 }
361}
362
363void SwViewShellImp::MoveAccessible( const SwFrame *pFrame, const SdrObject *pObj,
364 const SwRect& rOldFrame )
365{
366 OSL_ENSURE( !pFrame || pFrame->IsAccessibleFrame(), "frame is not accessible" );
367 for(SwViewShell& rTmp : GetShell()->GetRingContainer())
368 {
369 if( rTmp.Imp()->IsAccessible() )
370 rTmp.Imp()->GetAccessibleMap().InvalidatePosOrSize( pFrame, pObj, nullptr,
371 rOldFrame );
372 }
373}
374
376{
377 OSL_ENSURE( pFrame->IsAccessibleFrame(), "frame is not accessible" );
378 for(SwViewShell& rTmp : GetShell()->GetRingContainer())
379 {
380 if( rTmp.Imp()->IsAccessible() )
381 rTmp.Imp()->GetAccessibleMap().InvalidateContent( pFrame );
382 }
383}
384
386{
387 if( IsAccessible() )
389}
390
392 const SwFrame *pFrame )
393{
394 if( bAllShells )
395 {
396 for(SwViewShell& rTmp : GetShell()->GetRingContainer())
397 {
398 if( rTmp.Imp()->IsAccessible() )
399 rTmp.Imp()->GetAccessibleMap().InvalidateEditableStates( pFrame );
400 }
401 }
402 else if( IsAccessible() )
403 {
405 }
406}
407
409 const SwFlyFrame *pFollow )
410{
411 for(SwViewShell& rTmp : GetShell()->GetRingContainer())
412 {
413 if( rTmp.Imp()->IsAccessible() )
414 rTmp.Imp()->GetAccessibleMap().InvalidateRelationSet( pMaster,
415 pFollow );
416 }
417}
418
421 const SwTextFrame* _pToTextFrame )
422{
423 if ( !_pFromTextFrame && !_pToTextFrame )
424 {
425 // No text frame provided. Thus, nothing to do.
426 return;
427 }
428
429 for(SwViewShell& rTmp : GetShell()->GetRingContainer())
430 {
431 if ( rTmp.Imp()->IsAccessible() )
432 {
433 if ( _pFromTextFrame )
434 {
435 rTmp.Imp()->GetAccessibleMap().
436 InvalidateParaFlowRelation( *_pFromTextFrame, true );
437 }
438 if ( _pToTextFrame )
439 {
440 rTmp.Imp()->GetAccessibleMap().
441 InvalidateParaFlowRelation( *_pToTextFrame, false );
442 }
443 }
444 }
445}
446
449{
450 for(SwViewShell& rTmp : GetShell()->GetRingContainer())
451 {
452 if ( rTmp.Imp()->IsAccessible() )
453 {
454 rTmp.Imp()->GetAccessibleMap().InvalidateTextSelectionOfAllParas();
455 }
456 }
457}
458
461{
462 for(SwViewShell& rTmp : GetShell()->GetRingContainer())
463 {
464 if ( rTmp.Imp()->IsAccessible() )
465 {
466 rTmp.Imp()->GetAccessibleMap().InvalidateAttr( rTextFrame );
467 }
468 }
469}
470
471void SwViewShellImp::UpdateAccessiblePreview( const std::vector<std::unique_ptr<PreviewPage>>& _rPreviewPages,
472 const Fraction& _rScale,
473 const SwPageFrame* _pSelectedPageFrame,
474 const Size& _rPreviewWinSize )
475{
476 if( IsAccessible() )
477 GetAccessibleMap().UpdatePreview( _rPreviewPages, _rScale,
478 _pSelectedPageFrame, _rPreviewWinSize );
479}
480
482{
483 if( IsAccessible() )
485}
486
488{
489 assert(!m_pAccessibleMap);
490 m_pAccessibleMap = std::make_shared<SwAccessibleMap>(GetShell());
491 return m_pAccessibleMap.get();
492}
493
495{
496 if( IsAccessible() )
498}
499#endif // ENABLE_WASM_STRIP_ACCESSIBILITY
500
501/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
virtual void NotifyInvisibleLayers(SdrPageView &_rSdrPageView)=0
method to notify drawing page view about the invisible layers
virtual SwDrawModel * GetOrCreateDrawModel()=0
virtual SwDrawModel * MakeDrawModel_()=0
virtual const SwDrawModel * GetDrawModel() const =0
Draw Model and id accessors.
Provides access to the layout of a document.
virtual const SwViewShell * GetCurrentViewShell() const =0
Returns the layout set at the document.
const SdrPage * GetPage(sal_uInt16 nPgNum) const
Size GetSize() const
virtual void SetSize(const Size &aSiz)
void SetActiveLayer(const OUString &rName)
constexpr tools::Long Height() const
constexpr tools::Long Width() const
void UpdatePreview(const std::vector< std::unique_ptr< PreviewPage > > &_rPreviewPages, const Fraction &_rScale, const SwPageFrame *_pSelectedPageFrame, const Size &_rPreviewWinSize)
Definition: accmap.cxx:2905
void InvalidateCursorPosition(const css::uno::Reference< css::accessibility::XAccessible > &rAcc)
void InvalidatePreviewSelection(sal_uInt16 nSelPage)
Definition: accmap.cxx:2945
void InvalidateEditableStates(const SwFrame *_pFrame)
Definition: accmap.cxx:2736
css::uno::Reference< css::accessibility::XAccessible > GetDocumentView()
Definition: accmap.cxx:1764
void FireEvents()
Definition: accmap.cxx:2979
general base class for all free-flowing frames
Definition: flyfrm.hxx:79
const SwRect & getFrameArea() const
Definition: frame.hxx:179
Base class of the Writer layout elements.
Definition: frame.hxx:315
bool IsAccessibleFrame() const
Definition: frame.hxx:1250
SwFrame * GetNext()
Definition: frame.hxx:676
void SetUpdateExpFields()
Definition: layact.hxx:162
void CheckWaitCursor()
Definition: layact.cxx:72
bool IsCalcLayout() const
Definition: layact.hxx:173
const SwFrame * Lower() const
Definition: layfrm.hxx:101
A page of the document layout.
Definition: pagefrm.hxx:58
const SwPageFrame & GetFormatPage() const
Definition: pagechg.cxx:2464
bool IsEmptyPage() const
Definition: pagefrm.hxx:157
SwRect GetBoundRect(OutputDevice const *pOutputDevice) const
Definition: paintfrm.cxx:6311
Of course Writer needs its own rectangles.
Definition: swrect.hxx:35
void Height(tools::Long nNew)
Definition: swrect.hxx:193
bool HasArea() const
Definition: swrect.hxx:300
SwRect & Union(const SwRect &rRect)
Definition: swrect.cxx:35
void Top(const tools::Long nTop)
Definition: swrect.hxx:206
void Right(const tools::Long nRight)
Definition: swrect.hxx:202
void Bottom(const tools::Long nBottom)
Definition: swrect.hxx:211
void SSize(const Size &rNew)
Definition: swrect.hxx:180
bool Overlaps(const SwRect &rRect) const
Definition: swrect.hxx:374
tools::Rectangle SVRect() const
Definition: swrect.hxx:292
void Left(const tools::Long nLeft)
Definition: swrect.hxx:197
void Width(tools::Long nNew)
Definition: swrect.hxx:189
The root element of a Writer document layout.
Definition: rootfrm.hxx:82
const SdrPage * GetDrawPage() const
Definition: rootfrm.hxx:226
void SetDrawPage(SdrPage *pNew)
Definition: rootfrm.hxx:228
Represents the visualization of a paragraph.
Definition: txtfrm.hxx:163
bool IsReadonly() const
Definition: viewopt.hxx:463
bool IsPagePreview() const
Definition: viewopt.hxx:635
bool IsViewLayoutBookMode() const
Definition: viewopt.hxx:479
bool IsGridVisible() const
Definition: viewopt.hxx:366
short GetDivisionY() const
Definition: viewopt.hxx:446
const Color & GetRetoucheColor() const
Definition: viewopt.hxx:578
static Color & GetDocColor()
Definition: viewopt.cxx:391
const Size & GetSnapSize() const
Definition: viewopt.hxx:364
bool getBrowseMode() const
Definition: viewopt.hxx:472
short GetDivisionX() const
Definition: viewopt.hxx:444
bool IsSnap() const
Definition: viewopt.hxx:358
bool IsCrossHair() const
Definition: viewopt.hxx:385
void MakeDrawView()
Definition: viewimp.cxx:237
void InvalidateAccessibleEditableState(bool bAllShells, const SwFrame *pFrame=nullptr)
Invalidate editable state for all accessible frames.
Definition: viewimp.cxx:391
void UpdateAccessible()
Update (this) accessible view.
Definition: viewimp.cxx:328
void CheckWaitCursor()
If an Action is running we ask it to check whether it's time to enable the WaitCursor.
Definition: viewimp.cxx:180
SwPageFrame * m_pFirstVisiblePage
Definition: viewimp.hxx:66
Color GetRetoucheColor() const
Definition: viewimp.cxx:287
SwLayAction * m_pLayAction
Definition: viewimp.hxx:71
void UpdateAccessiblePreview(const std::vector< std::unique_ptr< PreviewPage > > &_rPreviewPages, const Fraction &_rScale, const SwPageFrame *_pSelectedPageFrame, const Size &_rPreviewWinSize)
update data for accessible preview change method signature due to new page preview functionality
Definition: viewimp.cxx:471
const SwPageFrame * GetFirstVisPage(OutputDevice const *pRenderContext) const
Management of the first visible Page.
Definition: viewimp.cxx:312
bool AddPaintRect(const SwRect &rRect)
Definition: viewimp.cxx:119
void InvalidateAccessibleCursorPosition(const SwFrame *pFrame)
Invalidate accessible frame's cursor position.
Definition: viewimp.cxx:385
void InvalidateAccessiblePreviewSelection(sal_uInt16 nSelPage)
Definition: viewimp.cxx:481
void InvalidateAccessibleParaFlowRelation_(const SwTextFrame *_pFromTextFrame, const SwTextFrame *_pToTextFrame)
invalidate CONTENT_FLOWS_FROM/_TO relation for paragraphs
Definition: viewimp.cxx:420
bool IsUpdateExpFields()
Definition: viewimp.cxx:191
friend class SwPagePreviewLayout
Definition: viewimp.hxx:58
SwAccessibleMap & GetAccessibleMap()
Definition: viewimp.hxx:276
std::unique_ptr< SwDrawView > m_pDrawView
Definition: viewimp.hxx:63
void InitPagePreviewLayout()
Definition: viewimp.cxx:320
void InvalidateAccessibleFrameContent(const SwFrame *pFrame)
Invalidate accessible frame's content.
Definition: viewimp.cxx:375
void DeletePaintRegion()
Definition: viewimp.hxx:154
void DisposeAccessible(const SwFrame *pFrame, const SdrObject *pObj, bool bRecursive, bool bCanSkipInvisible)
Remove a frame from the accessible view.
Definition: viewimp.cxx:350
void InvalidateAccessibleRelationSet(const SwFlyFrame *pMaster, const SwFlyFrame *pFollow)
Invalidate frame's relation set (for chained frames)
Definition: viewimp.cxx:408
std::shared_ptr< SwAccessibleMap > m_pAccessibleMap
note: the map is uniquely owned here - the shared_ptr is only used so that SwAccessibleContext can ch...
Definition: viewimp.hxx:77
std::unique_ptr< SwPagePreviewLayout > m_pPagePreviewLayout
Definition: viewimp.hxx:87
bool m_bFirstPageInvalid
Definition: viewimp.hxx:79
void InvalidateAccessibleParaTextSelection_()
invalidate text selection for paragraphs
Definition: viewimp.cxx:448
SwViewShell * m_pShell
Definition: viewimp.hxx:60
SdrPageView * m_pSdrPageView
Definition: viewimp.hxx:64
void SetFirstVisPage(OutputDevice const *pRenderContext)
Definition: viewimp.cxx:201
void AddPendingLOKInvalidation(const SwRect &rRect)
Definition: viewimp.cxx:165
std::vector< SwRect > TakePendingLOKInvalidations()
Definition: viewimp.cxx:173
SwDrawView * GetDrawView()
Definition: viewimp.hxx:161
void Init(const SwViewOption *)
Definition: viewimp.cxx:41
SwViewShellImp(SwViewShell *)
CTor for the core internals.
Definition: viewimp.cxx:85
const SwViewShell * GetShell() const
Only for SwViewShell::Init()
Definition: viewimp.hxx:140
bool IsCalcLayoutProgress() const
Asks the LayAction if present.
Definition: viewimp.cxx:186
std::vector< SwRect > m_pendingLOKInvalidations
Definition: viewimp.hxx:69
void InvalidateAccessibleParaAttrs_(const SwTextFrame &rTextFrame)
invalidate attributes for paragraphs and paragraph's characters
Definition: viewimp.cxx:460
void FireAccessibleEvents()
Fire all accessible events that have been collected so far.
Definition: viewimp.cxx:494
std::unique_ptr< SwRegionRects > m_pPaintRegion
Definition: viewimp.hxx:67
SwAccessibleMap * CreateAccessibleMap()
Definition: viewimp.cxx:487
bool IsAccessible() const
Is this view accessible?
Definition: viewimp.hxx:225
void MoveAccessible(const SwFrame *pFrame, const SdrObject *pObj, const SwRect &rOldFrame)
Move a frame's position in the accessible view.
Definition: viewimp.cxx:363
SwLayIdle * m_pIdleAct
Definition: viewimp.hxx:73
vcl::RenderContext * GetOut() const
Definition: viewsh.hxx:339
const SwViewOption * GetViewOptions() const
Definition: viewsh.hxx:428
bool mbDocSizeChgd
Definition: viewsh.hxx:120
SwRootFrame * GetLayout() const
Definition: viewsh.cxx:2172
vcl::Window * GetWin() const
Definition: viewsh.hxx:338
const IDocumentDrawModelAccess & getIDocumentDrawModelAccess() const
Provides access to the document draw model interface.
Definition: viewsh.cxx:2783
const SwRect & VisArea() const
Definition: viewsh.cxx:630
const IDocumentLayoutAccess & getIDocumentLayoutAccess() const
Provides access to the document layout interface.
Definition: viewsh.cxx:2787
constexpr ::Color COL_WHITE(0xFF, 0xFF, 0xFF)
constexpr ::Color COL_TRANSPARENT(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
#define TOOLS_WARN_EXCEPTION(area, stream)
Shell * m_pShell
constexpr OUStringLiteral last
css::uno::Reference< css::linguistic2::XProofreadingIterator > get(css::uno::Reference< css::uno::XComponentContext > const &context)