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 <crsrsh.hxx>
21 #include <rootfrm.hxx>
22 #include <pagefrm.hxx>
23 #include <viewimp.hxx>
24 #include <viewopt.hxx>
25 #include <flyfrm.hxx>
26 #include <frmfmt.hxx>
27 #include <layact.hxx>
28 #include <swregion.hxx>
29 #include <dflyobj.hxx>
30 #include <dview.hxx>
31 #include <swmodule.hxx>
32 #include <svx/svdpage.hxx>
33 #include <accmap.hxx>
34 
35 #include <pagepreviewlayout.hxx>
36 #include <svx/svdundo.hxx>
37 #include <comphelper/lok.hxx>
38 #include <sal/log.hxx>
39 #include <tools/diagnose_ex.h>
44 #include <drawdoc.hxx>
45 #include <prevwpage.hxx>
46 
47 void SwViewShellImp::Init( const SwViewOption *pNewOpt )
48 {
49  OSL_ENSURE( m_pDrawView, "SwViewShellImp::Init without DrawView" );
50  //Create PageView if it doesn't exist
51  SwRootFrame *pRoot = m_pShell->GetLayout();
52  if ( !m_pSdrPageView )
53  {
55  if ( !pRoot->GetDrawPage() )
56  pRoot->SetDrawPage( rIDDMA.GetDrawModel()->GetPage( 0 ) );
57 
58  if ( pRoot->GetDrawPage()->GetSize() != pRoot->getFrameArea().SSize() )
59  pRoot->GetDrawPage()->SetSize( pRoot->getFrameArea().SSize() );
60 
61  m_pSdrPageView = m_pDrawView->ShowSdrPage( pRoot->GetDrawPage());
62  // Notify drawing page view about invisible layers
64  }
65  m_pDrawView->SetDragStripes( pNewOpt->IsCrossHair() );
66  m_pDrawView->SetGridSnap( pNewOpt->IsSnap() );
67  m_pDrawView->SetGridVisible( pNewOpt->IsGridVisible() );
68  const Size &rSz = pNewOpt->GetSnapSize();
69  m_pDrawView->SetGridCoarse( rSz );
70  const Size aFSize
71  ( rSz.Width() ? rSz.Width() /std::max(short(1),pNewOpt->GetDivisionX()):0,
72  rSz.Height()? rSz.Height()/std::max(short(1),pNewOpt->GetDivisionY()):0);
73  m_pDrawView->SetGridFine( aFSize );
74  Fraction aSnGrWdtX(rSz.Width(), pNewOpt->GetDivisionX() + 1);
75  Fraction aSnGrWdtY(rSz.Height(), pNewOpt->GetDivisionY() + 1);
76  m_pDrawView->SetSnapGridWidth( aSnGrWdtX, aSnGrWdtY );
77 
78  if ( pRoot->getFrameArea().HasArea() )
79  m_pDrawView->SetWorkArea( pRoot->getFrameArea().SVRect() );
80 
81  if ( GetShell()->IsPreview() )
82  m_pDrawView->SetAnimationEnabled( false );
83 
84  m_pDrawView->SetUseIncompatiblePathCreateInterface( false );
85 
86  // set handle size to 9 pixels, always
87  m_pDrawView->SetMarkHdlSizePixel(9);
88 }
89 
92  m_pShell( pParent ),
93  m_pSdrPageView( nullptr ),
94  m_pFirstVisiblePage( nullptr ),
95  m_pLayAction( nullptr ),
96  m_pIdleAct( nullptr ),
97  m_bFirstPageInvalid( true ),
98  m_bResetHdlHiddenPaint( false ),
99  m_bSmoothUpdate( false ),
100  m_bStopSmooth( false ),
101  m_nRestoreActions( 0 )
102 {
103 }
104 
106 {
107  m_pAccessibleMap.reset();
108 
109  m_pPagePreviewLayout.reset();
110 
111  // Make sure HideSdrPage is also executed after ShowSdrPage.
112  if( m_pDrawView )
113  m_pDrawView->HideSdrPage();
114 
115  m_pDrawView.reset();
116 
117  DelRegion();
118 
119  OSL_ENSURE( !m_pLayAction, "Have action for the rest of your life." );
120  OSL_ENSURE( !m_pIdleAct,"Be idle for the rest of your life." );
121 }
122 
124 {
125  m_pRegion.reset();
126 }
127 
129 {
130  // In case of tiled rendering the visual area is the last painted tile -> not interesting.
132  {
133  if ( !m_pRegion )
134  {
135  // In case of normal rendering, this makes sure only visible rectangles are painted.
136  // Otherwise get the rectangle of the full document, so all paint rectangles are invalidated.
138  m_pRegion.reset(new SwRegionRects(rArea));
139  }
140  (*m_pRegion) -= rRect;
141  return true;
142  }
143  return false;
144 }
145 
147 {
148  if ( m_pLayAction )
150 }
151 
153 {
155 }
156 
158 {
160  {
162  return true;
163  }
164  return false;
165 }
166 
167 void SwViewShellImp::SetFirstVisPage(OutputDevice const * pRenderContext)
168 {
170  {
171  //We are in an action and because of erase actions the VisArea is
172  //after the first visible page.
173  //To avoid excessive formatting, hand back the last page.
174  m_pFirstVisiblePage = static_cast<SwPageFrame*>(m_pShell->GetLayout()->Lower());
176  m_pFirstVisiblePage = static_cast<SwPageFrame*>(m_pFirstVisiblePage->GetNext());
177  }
178  else
179  {
180  const SwViewOption* pSwViewOption = GetShell()->GetViewOptions();
181  const bool bBookMode = pSwViewOption->IsViewLayoutBookMode();
182 
183  SwPageFrame *pPage = static_cast<SwPageFrame*>(m_pShell->GetLayout()->Lower());
184  SwRect aPageRect = pPage->GetBoundRect(pRenderContext);
185  while ( pPage && !aPageRect.IsOver( m_pShell->VisArea() ) )
186  {
187  pPage = static_cast<SwPageFrame*>(pPage->GetNext());
188  if ( pPage )
189  {
190  aPageRect = pPage->GetBoundRect(pRenderContext);
191  if ( bBookMode && pPage->IsEmptyPage() )
192  {
193  const SwPageFrame& rFormatPage = pPage->GetFormatPage();
194  aPageRect.SSize() = rFormatPage.GetBoundRect(pRenderContext).SSize();
195  }
196  }
197  }
198  m_pFirstVisiblePage = pPage ? pPage : static_cast<SwPageFrame*>(m_pShell->GetLayout()->Lower());
199  }
200  m_bFirstPageInvalid = false;
201 }
202 
204 {
206 
207  // the else here is not an error, MakeDrawModel_() calls this method again
208  // after the DrawModel is created to create DrawViews for all shells...
209  if( !rIDDMA.GetDrawModel() )
210  {
211  rIDDMA.MakeDrawModel_();
212  }
213  else
214  {
215  if ( !m_pDrawView )
216  {
217  // #i72809#
218  // Discussed with FME, he also thinks that the getPrinter is old and not correct. When i got
219  // him right, it anyways returns GetOut() when it's a printer, but NULL when not. He suggested
220  // to use GetOut() and check the existing cases.
221  // Check worked well. Took a look at viewing, printing, PDF export and print preview with a test
222  // document which has an empty 2nd page (right page, see bug)
223  OutputDevice* pOutDevForDrawView = GetShell()->GetWin();
224 
225  if(!pOutDevForDrawView)
226  {
227  pOutDevForDrawView = GetShell()->GetOut();
228  }
229 
230  m_pDrawView.reset( new SwDrawView(
231  *this,
232  *rIDDMA.GetOrCreateDrawModel(),
233  pOutDevForDrawView) );
234  }
235 
236  GetDrawView()->SetActiveLayer("Heaven");
237  const SwViewOption* pSwViewOption = GetShell()->GetViewOptions();
238  Init(pSwViewOption);
239 
240  // #i68597# If document is read-only, we will not profit from overlay,
241  // so switch it off.
242  if (m_pDrawView->IsBufferedOverlayAllowed())
243  {
244  if(pSwViewOption->IsReadonly())
245  {
246  m_pDrawView->SetBufferedOverlayAllowed(false);
247  }
248  }
249  }
250 }
251 
253 {
254  Color aRet( COL_TRANSPARENT );
255  const SwViewShell &rSh = *GetShell();
256  if ( rSh.GetWin() )
257  {
258  if ( rSh.GetViewOptions()->getBrowseMode() &&
260  aRet = rSh.GetViewOptions()->GetRetoucheColor();
261  else if(rSh.GetViewOptions()->IsPagePreview() &&
262  !SW_MOD()->GetAccessibilityOptions().GetIsForPagePreviews())
263  aRet = COL_WHITE;
264  else
265  aRet = SwViewOption::GetDocColor();
266  }
267  return aRet;
268 }
269 
271 {
272  if ( m_bFirstPageInvalid )
273  SetFirstVisPage(pRenderContext);
274  return m_pFirstVisiblePage;
275 }
276 
277 const SwPageFrame *SwViewShellImp::GetFirstVisPage(OutputDevice const * pRenderContext) const
278 {
279  if ( m_bFirstPageInvalid )
280  const_cast<SwViewShellImp*>(this)->SetFirstVisPage(pRenderContext);
281  return m_pFirstVisiblePage;
282 }
283 
284 // create page preview layout
286 {
287  OSL_ENSURE( m_pShell->GetLayout(), "no layout - page preview layout can not be created.");
288  if ( m_pShell->GetLayout() )
290 }
291 
293 {
294  // We require a layout and an XModel to be accessible.
296  vcl::Window *pWin = GetShell()->GetWin();
297  OSL_ENSURE( GetShell()->GetLayout(), "no layout, no access" );
298  OSL_ENSURE( pWin, "no window, no access" );
299 
300  if( IsAccessible() && rIDLA.GetCurrentViewShell() && pWin )
301  {
302  try
303  {
305  }
306  catch (uno::Exception const&)
307  {
308  TOOLS_WARN_EXCEPTION("sw.a11y", "");
309  assert(!"SwViewShellImp::UpdateAccessible: unhandled exception");
310  }
311  }
312 }
313 
315  const SdrObject *pObj,
316  bool bRecursive,
317  bool bCanSkipInvisible)
318 {
319  OSL_ENSURE( !pFrame || pFrame->IsAccessibleFrame(), "frame is not accessible" );
320  for(SwViewShell& rTmp : GetShell()->GetRingContainer())
321  {
322  if( rTmp.Imp()->IsAccessible() )
323  rTmp.Imp()->GetAccessibleMap().A11yDispose( pFrame, pObj, nullptr, bRecursive, bCanSkipInvisible );
324  }
325 }
326 
327 void SwViewShellImp::MoveAccessible( const SwFrame *pFrame, const SdrObject *pObj,
328  const SwRect& rOldFrame )
329 {
330  OSL_ENSURE( !pFrame || pFrame->IsAccessibleFrame(), "frame is not accessible" );
331  for(SwViewShell& rTmp : GetShell()->GetRingContainer())
332  {
333  if( rTmp.Imp()->IsAccessible() )
334  rTmp.Imp()->GetAccessibleMap().InvalidatePosOrSize( pFrame, pObj, nullptr,
335  rOldFrame );
336  }
337 }
338 
340 {
341  OSL_ENSURE( pFrame->IsAccessibleFrame(), "frame is not accessible" );
342  for(SwViewShell& rTmp : GetShell()->GetRingContainer())
343  {
344  if( rTmp.Imp()->IsAccessible() )
345  rTmp.Imp()->GetAccessibleMap().InvalidateContent( pFrame );
346  }
347 }
348 
350 {
351  if( IsAccessible() )
353 }
354 
356  const SwFrame *pFrame )
357 {
358  if( bAllShells )
359  {
360  for(SwViewShell& rTmp : GetShell()->GetRingContainer())
361  {
362  if( rTmp.Imp()->IsAccessible() )
363  rTmp.Imp()->GetAccessibleMap().InvalidateEditableStates( pFrame );
364  }
365  }
366  else if( IsAccessible() )
367  {
369  }
370 }
371 
373  const SwFlyFrame *pFollow )
374 {
375  for(SwViewShell& rTmp : GetShell()->GetRingContainer())
376  {
377  if( rTmp.Imp()->IsAccessible() )
378  rTmp.Imp()->GetAccessibleMap().InvalidateRelationSet( pMaster,
379  pFollow );
380  }
381 }
382 
385  const SwTextFrame* _pToTextFrame )
386 {
387  if ( !_pFromTextFrame && !_pToTextFrame )
388  {
389  // No text frame provided. Thus, nothing to do.
390  return;
391  }
392 
393  for(SwViewShell& rTmp : GetShell()->GetRingContainer())
394  {
395  if ( rTmp.Imp()->IsAccessible() )
396  {
397  if ( _pFromTextFrame )
398  {
399  rTmp.Imp()->GetAccessibleMap().
400  InvalidateParaFlowRelation( *_pFromTextFrame, true );
401  }
402  if ( _pToTextFrame )
403  {
404  rTmp.Imp()->GetAccessibleMap().
405  InvalidateParaFlowRelation( *_pToTextFrame, false );
406  }
407  }
408  }
409 }
410 
413 {
414  for(SwViewShell& rTmp : GetShell()->GetRingContainer())
415  {
416  if ( rTmp.Imp()->IsAccessible() )
417  {
418  rTmp.Imp()->GetAccessibleMap().InvalidateTextSelectionOfAllParas();
419  }
420  }
421 }
422 
425 {
426  for(SwViewShell& rTmp : GetShell()->GetRingContainer())
427  {
428  if ( rTmp.Imp()->IsAccessible() )
429  {
430  rTmp.Imp()->GetAccessibleMap().InvalidateAttr( rTextFrame );
431  }
432  }
433 }
434 
435 void SwViewShellImp::UpdateAccessiblePreview( const std::vector<std::unique_ptr<PreviewPage>>& _rPreviewPages,
436  const Fraction& _rScale,
437  const SwPageFrame* _pSelectedPageFrame,
438  const Size& _rPreviewWinSize )
439 {
440  if( IsAccessible() )
441  GetAccessibleMap().UpdatePreview( _rPreviewPages, _rScale,
442  _pSelectedPageFrame, _rPreviewWinSize );
443 }
444 
446 {
447  if( IsAccessible() )
449 }
450 
452 {
453  assert(!m_pAccessibleMap);
455  return m_pAccessibleMap.get();
456 }
457 
459 {
460  if( IsAccessible() )
462 }
463 
464 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
vcl::RenderContext * GetOut() const
Definition: viewsh.hxx:341
bool m_bFirstPageInvalid
Definition: viewimp.hxx:79
long Width() const
Base class of the Writer layout elements.
Definition: frame.hxx:295
Represents the visualization of a paragraph.
Definition: txtfrm.hxx:149
void InvalidateAccessibleFrameContent(const SwFrame *pFrame)
Invalidate accessible frame's content.
Definition: viewimp.cxx:339
void FireAccessibleEvents()
Fire all accessible events that have been collected so far.
Definition: viewimp.cxx:458
void DelRegion()
Definition: viewimp.cxx:123
void InvalidateAccessibleCursorPosition(const SwFrame *pFrame)
Invalidate accessible frame's cursor position.
Definition: viewimp.cxx:349
const Color & GetRetoucheColor() const
Definition: viewopt.hxx:539
void InvalidateAccessibleRelationSet(const SwFlyFrame *pMaster, const SwFlyFrame *pFollow)
Invalidate frame's relation set (for chained frames)
Definition: viewimp.cxx:372
virtual void SetSize(const Size &aSiz)
bool IsPagePreview() const
Definition: viewopt.hxx:596
long Height() const
void DisposeAccessible(const SwFrame *pFrame, const SdrObject *pObj, bool bRecursive, bool bCanSkipInvisible)
Remove a frame from the accessible view.
Definition: viewimp.cxx:314
void InvalidateAccessibleParaAttrs_(const SwTextFrame &rTextFrame)
invalidate attributes for paragraphs and paragraph's characters
Definition: viewimp.cxx:424
const SdrPage * GetDrawPage() const
Definition: rootfrm.hxx:224
SwAccessibleMap & GetAccessibleMap()
Definition: viewimp.hxx:271
void Height(long nNew)
Definition: swrect.hxx:189
const SwPageFrame & GetFormatPage() const
Definition: pagechg.cxx:2407
SwViewShellImp(SwViewShell *)
CTor for the core internals.
Definition: viewimp.cxx:91
SwLayAction * m_pLayAction
Definition: viewimp.hxx:71
bool IsAccessible() const
Is this view accessible?
Definition: viewimp.hxx:220
void FireEvents()
Definition: accmap.cxx:3067
void SetDrawPage(SdrPage *pNew)
Definition: rootfrm.hxx:226
Of course Writer needs its own rectangles.
Definition: swrect.hxx:34
The root element of a Writer document layout.
Definition: rootfrm.hxx:79
void InvalidatePreviewSelection(sal_uInt16 nSelPage)
Definition: accmap.cxx:3033
bool IsCalcLayout() const
Definition: layact.hxx:163
virtual SwDrawModel * MakeDrawModel_()=0
const SwPageFrame * GetFirstVisPage(OutputDevice const *pRenderContext) const
Management of the first visible Page.
Definition: viewimp.cxx:277
void MakeDrawView()
Definition: viewimp.cxx:203
constexpr::Color COL_TRANSPARENT(0xFF, 0xFF, 0xFF, 0xFF)
virtual void NotifyInvisibleLayers(SdrPageView &_rSdrPageView)=0
method to notify drawing page view about the invisible layers
bool IsReadonly() const
Definition: viewopt.hxx:424
void Top(const long nTop)
Definition: swrect.hxx:202
short GetDivisionX() const
Definition: viewopt.hxx:405
const SwRect & getFrameArea() const
Definition: frame.hxx:175
bool getBrowseMode() const
Definition: viewopt.hxx:433
bool IsEmptyPage() const
Definition: pagefrm.hxx:143
short GetDivisionY() const
Definition: viewopt.hxx:407
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:435
const IDocumentDrawModelAccess & getIDocumentDrawModelAccess() const
Provides access to the document draw model interface.
Definition: viewsh.cxx:2597
void CheckWaitCursor()
If an Action is running we ask it to check whether it's time to enable the WaitCursor.
Definition: viewimp.cxx:146
const SwViewShell * GetShell() const
Only for SwViewShell::Init()
Definition: viewimp.hxx:140
SdrPageView * m_pSdrPageView
Definition: viewimp.hxx:66
page preview functionality in the writer
#define TOOLS_WARN_EXCEPTION(area, stream)
bool IsCrossHair() const
Definition: viewopt.hxx:346
#define SW_MOD()
Definition: swmodule.hxx:256
void CheckWaitCursor()
Definition: layact.cxx:77
void Init(const SwViewOption *)
Definition: viewimp.cxx:47
css::uno::Reference< css::accessibility::XAccessible > GetDocumentView()
Definition: accmap.cxx:1852
const SwRect & VisArea() const
Definition: viewsh.cxx:571
void InvalidateCursorPosition(const css::uno::Reference< css::accessibility::XAccessible > &rAcc)
bool IsViewLayoutBookMode() const
Definition: viewopt.hxx:440
SwRect GetBoundRect(OutputDevice const *pOutputDevice) const
Definition: paintfrm.cxx:6117
bool IsCalcLayoutProgress() const
Asks the LayAction if present.
Definition: viewimp.cxx:152
Size GetSize() const
const SwFrame * Lower() const
Definition: layfrm.hxx:101
bool IsPreview() const
Definition: viewsh.hxx:491
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
const SdrPage * GetPage(sal_uInt16 nPgNum) const
virtual const SwDrawModel * GetDrawModel() const =0
Draw Model and id accessors.
bool HasArea() const
Definition: swrect.hxx:290
void SetUpdateExpFields()
Definition: layact.hxx:152
ring_container GetRingContainer()
Definition: ring.hxx:240
Shell * m_pShell
bool IsUpdateExpFields()
Definition: viewimp.cxx:157
void SSize(const Size &rNew)
Definition: swrect.hxx:176
A page of the document layout.
Definition: pagefrm.hxx:40
const IDocumentLayoutAccess & getIDocumentLayoutAccess() const
Provides access to the document layout interface.
Definition: viewsh.cxx:2601
SwAccessibleMap * CreateAccessibleMap()
Definition: viewimp.cxx:451
void UpdateAccessible()
Update (this) accessible view.
Definition: viewimp.cxx:292
std::unique_ptr< SwDrawView > m_pDrawView
Definition: viewimp.hxx:65
bool mbDocSizeChgd
Definition: viewsh.hxx:122
SwPageFrame * m_pFirstVisiblePage
Definition: viewimp.hxx:68
tools::Rectangle SVRect() const
Definition: swrect.hxx:282
SwDrawView * GetDrawView()
Definition: viewimp.hxx:156
general base class for all free-flowing frames
Definition: flyfrm.hxx:60
SwViewShell * m_pShell
Definition: viewimp.hxx:62
Color GetRetoucheColor() const
Definition: viewimp.cxx:252
virtual const SwViewShell * GetCurrentViewShell() const =0
Returns the layout set at the document.
const SwViewOption * GetViewOptions() const
Definition: viewsh.hxx:426
vcl::Window * GetWin() const
Definition: viewsh.hxx:340
const Size & GetSnapSize() const
Definition: viewopt.hxx:325
virtual SwDrawModel * GetOrCreateDrawModel()=0
void InvalidateEditableStates(const SwFrame *_pFrame)
Definition: accmap.cxx:2824
void UpdatePreview(const std::vector< std::unique_ptr< PreviewPage >> &_rPreviewPages, const Fraction &_rScale, const SwPageFrame *_pSelectedPageFrame, const Size &_rPreviewWinSize)
Definition: accmap.cxx:2993
static Color & GetDocColor()
Definition: viewopt.cxx:363
constexpr::Color COL_WHITE(0xFF, 0xFF, 0xFF)
void SetActiveLayer(const OUString &rName)
void InvalidateAccessibleParaFlowRelation_(const SwTextFrame *_pFromTextFrame, const SwTextFrame *_pToTextFrame)
invalidate CONTENT_FLOWS_FROM/_TO relation for paragraphs
Definition: viewimp.cxx:384
std::unique_ptr< SwPagePreviewLayout > m_pPagePreviewLayout
Definition: viewimp.hxx:87
void InvalidateAccessibleEditableState(bool bAllShells, const SwFrame *pFrame=nullptr)
Invalidate editable state for all accessible frames.
Definition: viewimp.cxx:355
bool IsGridVisible() const
Definition: viewopt.hxx:327
Provides access to the layout of a document.
bool IsAccessibleFrame() const
Definition: frame.hxx:1226
SwLayIdle * m_pIdleAct
Definition: viewimp.hxx:73
bool AddPaintRect(const SwRect &rRect)
Definition: viewimp.cxx:128
void SetFirstVisPage(OutputDevice const *pRenderContext)
Definition: viewimp.cxx:167
bool IsOver(const SwRect &rRect) const
Definition: swrect.cxx:125
bool IsSnap() const
Definition: viewopt.hxx:319
SwRootFrame * GetLayout() const
Definition: viewsh.cxx:2075
std::unique_ptr< SwRegionRects > m_pRegion
Definition: viewimp.hxx:69
void InvalidateAccessiblePreviewSelection(sal_uInt16 nSelPage)
Definition: viewimp.cxx:445
void MoveAccessible(const SwFrame *pFrame, const SdrObject *pObj, const SwRect &rOldFrame)
Move a frame's position in the accessible view.
Definition: viewimp.cxx:327
void InitPagePreviewLayout()
Definition: viewimp.cxx:285
SwFrame * GetNext()
Definition: frame.hxx:654
void InvalidateAccessibleParaTextSelection_()
invalidate text selection for paragraphs
Definition: viewimp.cxx:412