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