xref: /aoo4110/main/sw/source/core/view/viewimp.cxx (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_sw.hxx"
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski 
28*b1cdbd2cSJim Jagielski #include "crsrsh.hxx"
29*b1cdbd2cSJim Jagielski #include "rootfrm.hxx"
30*b1cdbd2cSJim Jagielski #include "pagefrm.hxx"
31*b1cdbd2cSJim Jagielski #include "viewimp.hxx"
32*b1cdbd2cSJim Jagielski #include "errhdl.hxx"
33*b1cdbd2cSJim Jagielski #include "viewopt.hxx"
34*b1cdbd2cSJim Jagielski #include "flyfrm.hxx"
35*b1cdbd2cSJim Jagielski #include "frmfmt.hxx"
36*b1cdbd2cSJim Jagielski #include "layact.hxx"
37*b1cdbd2cSJim Jagielski #include "swregion.hxx"
38*b1cdbd2cSJim Jagielski #include "dflyobj.hxx"
39*b1cdbd2cSJim Jagielski #include "dview.hxx"
40*b1cdbd2cSJim Jagielski #include <tools/shl.hxx>
41*b1cdbd2cSJim Jagielski #include <swmodule.hxx>
42*b1cdbd2cSJim Jagielski #include <svx/svdpage.hxx>
43*b1cdbd2cSJim Jagielski #include <accmap.hxx>
44*b1cdbd2cSJim Jagielski 
45*b1cdbd2cSJim Jagielski // OD 12.12.2002 #103492#
46*b1cdbd2cSJim Jagielski #include <pagepreviewlayout.hxx>
47*b1cdbd2cSJim Jagielski 
48*b1cdbd2cSJim Jagielski #include <comcore.hrc>
49*b1cdbd2cSJim Jagielski #include <svx/svdundo.hxx>
50*b1cdbd2cSJim Jagielski #include <IDocumentLayoutAccess.hxx>
51*b1cdbd2cSJim Jagielski #include <IDocumentDrawModelAccess.hxx>
52*b1cdbd2cSJim Jagielski #include <IDocumentDeviceAccess.hxx>
53*b1cdbd2cSJim Jagielski #include <IDocumentSettingAccess.hxx>
54*b1cdbd2cSJim Jagielski 
55*b1cdbd2cSJim Jagielski /*************************************************************************
56*b1cdbd2cSJim Jagielski |*
57*b1cdbd2cSJim Jagielski |*	SwViewImp::Init()
58*b1cdbd2cSJim Jagielski |*
59*b1cdbd2cSJim Jagielski |*	Ersterstellung		MA 25. Jul. 94
60*b1cdbd2cSJim Jagielski |*	Letzte Aenderung	MA 03. Nov. 95
61*b1cdbd2cSJim Jagielski |*
62*b1cdbd2cSJim Jagielski |*************************************************************************/
63*b1cdbd2cSJim Jagielski 
Init(const SwViewOption * pNewOpt)64*b1cdbd2cSJim Jagielski void SwViewImp::Init( const SwViewOption *pNewOpt )
65*b1cdbd2cSJim Jagielski {
66*b1cdbd2cSJim Jagielski 	ASSERT( pDrawView, "SwViewImp::Init without DrawView" );
67*b1cdbd2cSJim Jagielski 	//Jetzt die PageView erzeugen wenn sie noch nicht existiert.
68*b1cdbd2cSJim Jagielski     SwRootFrm *pRoot = pSh->GetLayout();	//swmod 071108//swmod 071225
69*b1cdbd2cSJim Jagielski 	if ( !pSdrPageView )
70*b1cdbd2cSJim Jagielski 	{
71*b1cdbd2cSJim Jagielski         IDocumentDrawModelAccess* pIDDMA = pSh->getIDocumentDrawModelAccess();
72*b1cdbd2cSJim Jagielski 		if ( !pRoot->GetDrawPage() )
73*b1cdbd2cSJim Jagielski             pRoot->SetDrawPage( pIDDMA->GetDrawModel()->GetPage( 0 ) );
74*b1cdbd2cSJim Jagielski 
75*b1cdbd2cSJim Jagielski 		if ( pRoot->GetDrawPage()->GetSize() != pRoot->Frm().SSize() )
76*b1cdbd2cSJim Jagielski             pRoot->GetDrawPage()->SetSize( pRoot->Frm().SSize() );
77*b1cdbd2cSJim Jagielski 
78*b1cdbd2cSJim Jagielski         pSdrPageView = pDrawView->ShowSdrPage( pRoot->GetDrawPage());
79*b1cdbd2cSJim Jagielski         // OD 26.06.2003 #108784# - notify drawing page view about invisible
80*b1cdbd2cSJim Jagielski         // layers.
81*b1cdbd2cSJim Jagielski         pIDDMA->NotifyInvisibleLayers( *pSdrPageView );
82*b1cdbd2cSJim Jagielski 	}
83*b1cdbd2cSJim Jagielski 	pDrawView->SetDragStripes( pNewOpt->IsCrossHair() );
84*b1cdbd2cSJim Jagielski 	pDrawView->SetGridSnap( pNewOpt->IsSnap() );
85*b1cdbd2cSJim Jagielski 	pDrawView->SetGridVisible( pNewOpt->IsGridVisible() );
86*b1cdbd2cSJim Jagielski 	const Size &rSz = pNewOpt->GetSnapSize();
87*b1cdbd2cSJim Jagielski 	pDrawView->SetGridCoarse( rSz );
88*b1cdbd2cSJim Jagielski 	const Size aFSize
89*b1cdbd2cSJim Jagielski 			( rSz.Width() ? rSz.Width() /Max(short(1),pNewOpt->GetDivisionX()):0,
90*b1cdbd2cSJim Jagielski 			  rSz.Height()? rSz.Height()/Max(short(1),pNewOpt->GetDivisionY()):0);
91*b1cdbd2cSJim Jagielski  	pDrawView->SetGridFine( aFSize );
92*b1cdbd2cSJim Jagielski 	Fraction aSnGrWdtX(rSz.Width(), pNewOpt->GetDivisionX() + 1);
93*b1cdbd2cSJim Jagielski 	Fraction aSnGrWdtY(rSz.Height(), pNewOpt->GetDivisionY() + 1);
94*b1cdbd2cSJim Jagielski 	pDrawView->SetSnapGridWidth( aSnGrWdtX, aSnGrWdtY );
95*b1cdbd2cSJim Jagielski 
96*b1cdbd2cSJim Jagielski 	if ( pRoot->Frm().HasArea() )
97*b1cdbd2cSJim Jagielski 		pDrawView->SetWorkArea( pRoot->Frm().SVRect() );
98*b1cdbd2cSJim Jagielski 
99*b1cdbd2cSJim Jagielski 	if ( GetShell()->IsPreView() )
100*b1cdbd2cSJim Jagielski 		pDrawView->SetAnimationEnabled( sal_False );
101*b1cdbd2cSJim Jagielski 
102*b1cdbd2cSJim Jagielski 	pDrawView->SetUseIncompatiblePathCreateInterface( sal_False );
103*b1cdbd2cSJim Jagielski 	pDrawView->SetSolidMarkHdl(pNewOpt->IsSolidMarkHdl());
104*b1cdbd2cSJim Jagielski 
105*b1cdbd2cSJim Jagielski 	// it's a JOE interface !
106*b1cdbd2cSJim Jagielski 	pDrawView->SetMarkHdlSizePixel(pNewOpt->IsBigMarkHdl() ? 9 : 7);
107*b1cdbd2cSJim Jagielski }
108*b1cdbd2cSJim Jagielski 
109*b1cdbd2cSJim Jagielski /*************************************************************************
110*b1cdbd2cSJim Jagielski |*
111*b1cdbd2cSJim Jagielski |*	SwViewImp::SwViewImp()	CTor fuer die Core-Internas
112*b1cdbd2cSJim Jagielski |*
113*b1cdbd2cSJim Jagielski |*	Ersterstellung		MA 25. Jul. 94
114*b1cdbd2cSJim Jagielski |*	Letzte Aenderung	MA 06. Sep. 96
115*b1cdbd2cSJim Jagielski |*
116*b1cdbd2cSJim Jagielski |*************************************************************************/
117*b1cdbd2cSJim Jagielski 
SwViewImp(ViewShell * pParent)118*b1cdbd2cSJim Jagielski SwViewImp::SwViewImp( ViewShell *pParent ) :
119*b1cdbd2cSJim Jagielski 	pSh( pParent ),
120*b1cdbd2cSJim Jagielski     pDrawView( 0 ),
121*b1cdbd2cSJim Jagielski     pSdrPageView( 0 ),
122*b1cdbd2cSJim Jagielski     pFirstVisPage( 0 ),
123*b1cdbd2cSJim Jagielski 	pRegion( 0 ),
124*b1cdbd2cSJim Jagielski 	pLayAct( 0 ),
125*b1cdbd2cSJim Jagielski 	pIdleAct( 0 ),
126*b1cdbd2cSJim Jagielski     pAccMap( 0 ),
127*b1cdbd2cSJim Jagielski     pSdrObjCached(NULL),
128*b1cdbd2cSJim Jagielski     nRestoreActions( 0 ),
129*b1cdbd2cSJim Jagielski     // OD 12.12.2002 #103492#
130*b1cdbd2cSJim Jagielski     mpPgPrevwLayout( 0 )
131*b1cdbd2cSJim Jagielski {
132*b1cdbd2cSJim Jagielski 	//bResetXorVisibility =
133*b1cdbd2cSJim Jagielski 	//HMHbShowHdlPaint =
134*b1cdbd2cSJim Jagielski     bResetHdlHiddenPaint =
135*b1cdbd2cSJim Jagielski     bSmoothUpdate = bStopSmooth = bStopPrt = sal_False;
136*b1cdbd2cSJim Jagielski     bFirstPageInvalid = sal_True;
137*b1cdbd2cSJim Jagielski }
138*b1cdbd2cSJim Jagielski 
139*b1cdbd2cSJim Jagielski /******************************************************************************
140*b1cdbd2cSJim Jagielski |*
141*b1cdbd2cSJim Jagielski |*	SwViewImp::~SwViewImp()
142*b1cdbd2cSJim Jagielski |*
143*b1cdbd2cSJim Jagielski |*	Ersterstellung		MA 25. Jul. 94
144*b1cdbd2cSJim Jagielski |*	Letzte Aenderung	MA 16. Dec. 94
145*b1cdbd2cSJim Jagielski |*
146*b1cdbd2cSJim Jagielski ******************************************************************************/
147*b1cdbd2cSJim Jagielski 
~SwViewImp()148*b1cdbd2cSJim Jagielski SwViewImp::~SwViewImp()
149*b1cdbd2cSJim Jagielski {
150*b1cdbd2cSJim Jagielski 	delete pAccMap;
151*b1cdbd2cSJim Jagielski 
152*b1cdbd2cSJim Jagielski     // OD 12.12.2002 #103492#
153*b1cdbd2cSJim Jagielski     delete mpPgPrevwLayout;
154*b1cdbd2cSJim Jagielski 
155*b1cdbd2cSJim Jagielski     //JP 29.03.96: nach ShowSdrPage muss auch HideSdrPage gemacht werden!!!
156*b1cdbd2cSJim Jagielski 	if( pDrawView )
157*b1cdbd2cSJim Jagielski  		pDrawView->HideSdrPage();
158*b1cdbd2cSJim Jagielski 
159*b1cdbd2cSJim Jagielski 	delete pDrawView;
160*b1cdbd2cSJim Jagielski 
161*b1cdbd2cSJim Jagielski     DelRegion();
162*b1cdbd2cSJim Jagielski 
163*b1cdbd2cSJim Jagielski 	ASSERT( !pLayAct, "Have action for the rest of your life." );
164*b1cdbd2cSJim Jagielski 	ASSERT( !pIdleAct,"Be idle for the rest of your life." );
165*b1cdbd2cSJim Jagielski }
166*b1cdbd2cSJim Jagielski 
167*b1cdbd2cSJim Jagielski /******************************************************************************
168*b1cdbd2cSJim Jagielski |*
169*b1cdbd2cSJim Jagielski |*	SwViewImp::DelRegions()
170*b1cdbd2cSJim Jagielski |*
171*b1cdbd2cSJim Jagielski |*	Ersterstellung		MA 14. Apr. 94
172*b1cdbd2cSJim Jagielski |*	Letzte Aenderung	MA 14. Apr. 94
173*b1cdbd2cSJim Jagielski |*
174*b1cdbd2cSJim Jagielski ******************************************************************************/
175*b1cdbd2cSJim Jagielski 
DelRegion()176*b1cdbd2cSJim Jagielski void SwViewImp::DelRegion()
177*b1cdbd2cSJim Jagielski {
178*b1cdbd2cSJim Jagielski 	DELETEZ(pRegion);
179*b1cdbd2cSJim Jagielski }
180*b1cdbd2cSJim Jagielski 
181*b1cdbd2cSJim Jagielski /******************************************************************************
182*b1cdbd2cSJim Jagielski |*
183*b1cdbd2cSJim Jagielski |*	SwViewImp::AddPaintRect()
184*b1cdbd2cSJim Jagielski |*
185*b1cdbd2cSJim Jagielski |*	Ersterstellung		MA ??
186*b1cdbd2cSJim Jagielski |*	Letzte Aenderung	MA 27. Jul. 94
187*b1cdbd2cSJim Jagielski |*
188*b1cdbd2cSJim Jagielski ******************************************************************************/
189*b1cdbd2cSJim Jagielski 
AddPaintRect(const SwRect & rRect)190*b1cdbd2cSJim Jagielski sal_Bool SwViewImp::AddPaintRect( const SwRect &rRect )
191*b1cdbd2cSJim Jagielski {
192*b1cdbd2cSJim Jagielski 	if ( rRect.IsOver( pSh->VisArea() ) )
193*b1cdbd2cSJim Jagielski 	{
194*b1cdbd2cSJim Jagielski 		if ( !pRegion )
195*b1cdbd2cSJim Jagielski 			pRegion = new SwRegionRects( pSh->VisArea() );
196*b1cdbd2cSJim Jagielski 		(*pRegion) -= rRect;
197*b1cdbd2cSJim Jagielski 		return sal_True;
198*b1cdbd2cSJim Jagielski 	}
199*b1cdbd2cSJim Jagielski 	return sal_False;
200*b1cdbd2cSJim Jagielski }
201*b1cdbd2cSJim Jagielski 
202*b1cdbd2cSJim Jagielski 
203*b1cdbd2cSJim Jagielski /******************************************************************************
204*b1cdbd2cSJim Jagielski |*
205*b1cdbd2cSJim Jagielski |*	ViewImp::CheckWaitCrsr()
206*b1cdbd2cSJim Jagielski |*
207*b1cdbd2cSJim Jagielski |*	Ersterstellung		MA 10. Aug. 94
208*b1cdbd2cSJim Jagielski |*	Letzte Aenderung	MA 10. Aug. 94
209*b1cdbd2cSJim Jagielski |*
210*b1cdbd2cSJim Jagielski ******************************************************************************/
211*b1cdbd2cSJim Jagielski 
CheckWaitCrsr()212*b1cdbd2cSJim Jagielski void SwViewImp::CheckWaitCrsr()
213*b1cdbd2cSJim Jagielski {
214*b1cdbd2cSJim Jagielski 	if ( pLayAct )
215*b1cdbd2cSJim Jagielski 		pLayAct->CheckWaitCrsr();
216*b1cdbd2cSJim Jagielski }
217*b1cdbd2cSJim Jagielski 
218*b1cdbd2cSJim Jagielski /******************************************************************************
219*b1cdbd2cSJim Jagielski |*
220*b1cdbd2cSJim Jagielski |*	ViewImp::IsCalcLayoutProgress()
221*b1cdbd2cSJim Jagielski |*
222*b1cdbd2cSJim Jagielski |*	Ersterstellung		MA 12. Aug. 94
223*b1cdbd2cSJim Jagielski |*	Letzte Aenderung	MA 12. Aug. 94
224*b1cdbd2cSJim Jagielski |*
225*b1cdbd2cSJim Jagielski ******************************************************************************/
226*b1cdbd2cSJim Jagielski 
IsCalcLayoutProgress() const227*b1cdbd2cSJim Jagielski sal_Bool SwViewImp::IsCalcLayoutProgress() const
228*b1cdbd2cSJim Jagielski {
229*b1cdbd2cSJim Jagielski 	if ( pLayAct )
230*b1cdbd2cSJim Jagielski 		return pLayAct->IsCalcLayout();
231*b1cdbd2cSJim Jagielski 	return sal_False;
232*b1cdbd2cSJim Jagielski }
233*b1cdbd2cSJim Jagielski 
234*b1cdbd2cSJim Jagielski /******************************************************************************
235*b1cdbd2cSJim Jagielski |*
236*b1cdbd2cSJim Jagielski |*	ViewImp::IsUpdateExpFlds()
237*b1cdbd2cSJim Jagielski |*
238*b1cdbd2cSJim Jagielski |*	Ersterstellung		MA 28. Mar. 96
239*b1cdbd2cSJim Jagielski |*	Letzte Aenderung	MA 28. Mar. 96
240*b1cdbd2cSJim Jagielski |*
241*b1cdbd2cSJim Jagielski ******************************************************************************/
242*b1cdbd2cSJim Jagielski 
IsUpdateExpFlds()243*b1cdbd2cSJim Jagielski sal_Bool SwViewImp::IsUpdateExpFlds()
244*b1cdbd2cSJim Jagielski {
245*b1cdbd2cSJim Jagielski 	if ( pLayAct && pLayAct->IsCalcLayout() )
246*b1cdbd2cSJim Jagielski 	{
247*b1cdbd2cSJim Jagielski 		pLayAct->SetUpdateExpFlds();
248*b1cdbd2cSJim Jagielski 		return sal_True;
249*b1cdbd2cSJim Jagielski 	}
250*b1cdbd2cSJim Jagielski  	return sal_False;
251*b1cdbd2cSJim Jagielski }
252*b1cdbd2cSJim Jagielski 
253*b1cdbd2cSJim Jagielski 
254*b1cdbd2cSJim Jagielski /******************************************************************************
255*b1cdbd2cSJim Jagielski |*
256*b1cdbd2cSJim Jagielski |*	SwViewImp::SetFirstVisPage(), ImplGetFirstVisPage();
257*b1cdbd2cSJim Jagielski |*
258*b1cdbd2cSJim Jagielski |*	Ersterstellung		MA 21. Sep. 93
259*b1cdbd2cSJim Jagielski |*	Letzte Aenderung	MA 08. Mar. 94
260*b1cdbd2cSJim Jagielski |*
261*b1cdbd2cSJim Jagielski ******************************************************************************/
262*b1cdbd2cSJim Jagielski 
SetFirstVisPage()263*b1cdbd2cSJim Jagielski void SwViewImp::SetFirstVisPage()
264*b1cdbd2cSJim Jagielski {
265*b1cdbd2cSJim Jagielski 	if ( pSh->bDocSizeChgd && pSh->VisArea().Top() > pSh->GetLayout()->Frm().Height() )
266*b1cdbd2cSJim Jagielski 	{
267*b1cdbd2cSJim Jagielski 		//Wir stecken in einer Action und die VisArea sitzt wegen
268*b1cdbd2cSJim Jagielski 		//Loeschoperationen hinter der erste sichtbaren Seite.
269*b1cdbd2cSJim Jagielski 		//Damit nicht zu heftig Formatiert wird, liefern wir die letzte Seite
270*b1cdbd2cSJim Jagielski 		//zurueck.
271*b1cdbd2cSJim Jagielski 		pFirstVisPage = (SwPageFrm*)pSh->GetLayout()->Lower();
272*b1cdbd2cSJim Jagielski 		while ( pFirstVisPage && pFirstVisPage->GetNext() )
273*b1cdbd2cSJim Jagielski 			pFirstVisPage = (SwPageFrm*)pFirstVisPage->GetNext();
274*b1cdbd2cSJim Jagielski 	}
275*b1cdbd2cSJim Jagielski 	else
276*b1cdbd2cSJim Jagielski 	{
277*b1cdbd2cSJim Jagielski         const SwViewOption* pSwViewOption = GetShell()->GetViewOptions();
278*b1cdbd2cSJim Jagielski         const bool bBookMode = pSwViewOption->IsViewLayoutBookMode();
279*b1cdbd2cSJim Jagielski 
280*b1cdbd2cSJim Jagielski         SwPageFrm *pPage = (SwPageFrm*)pSh->GetLayout()->Lower();
281*b1cdbd2cSJim Jagielski         SwRect aPageRect = pPage->Frm();
282*b1cdbd2cSJim Jagielski 		while ( pPage && !aPageRect.IsOver( pSh->VisArea() ) )
283*b1cdbd2cSJim Jagielski         {
284*b1cdbd2cSJim Jagielski 			pPage = (SwPageFrm*)pPage->GetNext();
285*b1cdbd2cSJim Jagielski             if ( pPage )
286*b1cdbd2cSJim Jagielski             {
287*b1cdbd2cSJim Jagielski                 aPageRect = pPage->Frm();
288*b1cdbd2cSJim Jagielski                 if ( bBookMode && pPage->IsEmptyPage() )
289*b1cdbd2cSJim Jagielski                 {
290*b1cdbd2cSJim Jagielski                     const SwPageFrm& rFormatPage = pPage->GetFormatPage();
291*b1cdbd2cSJim Jagielski                     aPageRect.SSize() = rFormatPage.Frm().SSize();
292*b1cdbd2cSJim Jagielski                 }
293*b1cdbd2cSJim Jagielski             }
294*b1cdbd2cSJim Jagielski         }
295*b1cdbd2cSJim Jagielski 		pFirstVisPage = pPage ? pPage : (SwPageFrm*)pSh->GetLayout()->Lower();
296*b1cdbd2cSJim Jagielski 	}
297*b1cdbd2cSJim Jagielski 	bFirstPageInvalid = sal_False;
298*b1cdbd2cSJim Jagielski }
299*b1cdbd2cSJim Jagielski 
300*b1cdbd2cSJim Jagielski /******************************************************************************
301*b1cdbd2cSJim Jagielski |*
302*b1cdbd2cSJim Jagielski |*	SwViewImp::MakeDrawView();
303*b1cdbd2cSJim Jagielski |*
304*b1cdbd2cSJim Jagielski |*	Ersterstellung		AMA 01. Nov. 95
305*b1cdbd2cSJim Jagielski |*	Letzte Aenderung	AMA 01. Nov. 95
306*b1cdbd2cSJim Jagielski |*
307*b1cdbd2cSJim Jagielski ******************************************************************************/
308*b1cdbd2cSJim Jagielski 
MakeDrawView()309*b1cdbd2cSJim Jagielski void SwViewImp::MakeDrawView()
310*b1cdbd2cSJim Jagielski {
311*b1cdbd2cSJim Jagielski     IDocumentDrawModelAccess* pIDDMA = GetShell()->getIDocumentDrawModelAccess();
312*b1cdbd2cSJim Jagielski 
313*b1cdbd2cSJim Jagielski 	// the else here is not an error, _MakeDrawModel() calls this method again
314*b1cdbd2cSJim Jagielski 	// after the DrawModel is created to create DrawViews for all shells...
315*b1cdbd2cSJim Jagielski 	if( !pIDDMA->GetDrawModel() )
316*b1cdbd2cSJim Jagielski 	{
317*b1cdbd2cSJim Jagielski         pIDDMA->_MakeDrawModel();
318*b1cdbd2cSJim Jagielski 	}
319*b1cdbd2cSJim Jagielski 	else
320*b1cdbd2cSJim Jagielski 	{
321*b1cdbd2cSJim Jagielski 		if ( !pDrawView )
322*b1cdbd2cSJim Jagielski 		{
323*b1cdbd2cSJim Jagielski 			// #i72809#
324*b1cdbd2cSJim Jagielski 			// Discussed with FME, he also thinks that the getPrinter is old and not correct. When i got
325*b1cdbd2cSJim Jagielski 			// him right, it anyways returns GetOut() when it's a printer, but NULL when not. He suggested
326*b1cdbd2cSJim Jagielski 			// to use GetOut() and check the existing cases.
327*b1cdbd2cSJim Jagielski 			// Check worked well. Took a look at viewing, printing, PDF export and print preview with a test
328*b1cdbd2cSJim Jagielski 			// document which has an empty 2nd page (right page, see bug)
329*b1cdbd2cSJim Jagielski 			OutputDevice* pOutDevForDrawView = GetShell()->GetWin();
330*b1cdbd2cSJim Jagielski 
331*b1cdbd2cSJim Jagielski 			if(!pOutDevForDrawView)
332*b1cdbd2cSJim Jagielski 			{
333*b1cdbd2cSJim Jagielski 				// pOutDevForDrawView = (OutputDevice*)GetShell()->getIDocumentDeviceAccess()->getPrinter( false );
334*b1cdbd2cSJim Jagielski 				pOutDevForDrawView = GetShell()->GetOut();
335*b1cdbd2cSJim Jagielski 			}
336*b1cdbd2cSJim Jagielski 
337*b1cdbd2cSJim Jagielski 			pDrawView = new SwDrawView( *this, pIDDMA->GetDrawModel(), pOutDevForDrawView);
338*b1cdbd2cSJim Jagielski 		}
339*b1cdbd2cSJim Jagielski 
340*b1cdbd2cSJim Jagielski 		GetDrawView()->SetActiveLayer( XubString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "Heaven" ) ) );
341*b1cdbd2cSJim Jagielski 		const SwViewOption* pSwViewOption = GetShell()->GetViewOptions();
342*b1cdbd2cSJim Jagielski 		Init(pSwViewOption);
343*b1cdbd2cSJim Jagielski 
344*b1cdbd2cSJim Jagielski 		// #i68597# If document is read-only, we will not profit from overlay,
345*b1cdbd2cSJim Jagielski 		// so switch it off.
346*b1cdbd2cSJim Jagielski 		if(pDrawView && pDrawView->IsBufferedOverlayAllowed())
347*b1cdbd2cSJim Jagielski 		{
348*b1cdbd2cSJim Jagielski 			bool bIsReadOnly(pSwViewOption->IsReadonly());
349*b1cdbd2cSJim Jagielski 
350*b1cdbd2cSJim Jagielski #ifdef DBG_UTIL
351*b1cdbd2cSJim Jagielski 			// add test possibilities
352*b1cdbd2cSJim Jagielski 			static bool bAlwaysActivateForTest(false);
353*b1cdbd2cSJim Jagielski 			if(bAlwaysActivateForTest && bIsReadOnly)
354*b1cdbd2cSJim Jagielski 			{
355*b1cdbd2cSJim Jagielski 				bIsReadOnly = false;
356*b1cdbd2cSJim Jagielski 			}
357*b1cdbd2cSJim Jagielski #endif
358*b1cdbd2cSJim Jagielski 
359*b1cdbd2cSJim Jagielski 			if(bIsReadOnly)
360*b1cdbd2cSJim Jagielski 			{
361*b1cdbd2cSJim Jagielski 				pDrawView->SetBufferedOverlayAllowed(false);
362*b1cdbd2cSJim Jagielski 			}
363*b1cdbd2cSJim Jagielski 		}
364*b1cdbd2cSJim Jagielski 	}
365*b1cdbd2cSJim Jagielski }
366*b1cdbd2cSJim Jagielski 
367*b1cdbd2cSJim Jagielski /******************************************************************************
368*b1cdbd2cSJim Jagielski |*
369*b1cdbd2cSJim Jagielski |*	SwViewImp::GetRetoucheColor()
370*b1cdbd2cSJim Jagielski |*
371*b1cdbd2cSJim Jagielski |*	Ersterstellung		MA 24. Jun. 98
372*b1cdbd2cSJim Jagielski |*	Letzte Aenderung	MA 24. Jun. 98
373*b1cdbd2cSJim Jagielski |*
374*b1cdbd2cSJim Jagielski ******************************************************************************/
375*b1cdbd2cSJim Jagielski 
GetRetoucheColor() const376*b1cdbd2cSJim Jagielski Color SwViewImp::GetRetoucheColor() const
377*b1cdbd2cSJim Jagielski {
378*b1cdbd2cSJim Jagielski     Color aRet( COL_TRANSPARENT );
379*b1cdbd2cSJim Jagielski 	const ViewShell &rSh = *GetShell();
380*b1cdbd2cSJim Jagielski 	if ( rSh.GetWin() )
381*b1cdbd2cSJim Jagielski 	{
382*b1cdbd2cSJim Jagielski         if ( rSh.GetViewOptions()->getBrowseMode() &&
383*b1cdbd2cSJim Jagielski 			 COL_TRANSPARENT != rSh.GetViewOptions()->GetRetoucheColor().GetColor() )
384*b1cdbd2cSJim Jagielski 			aRet = rSh.GetViewOptions()->GetRetoucheColor();
385*b1cdbd2cSJim Jagielski         else if(rSh.GetViewOptions()->IsPagePreview()  &&
386*b1cdbd2cSJim Jagielski                     !SW_MOD()->GetAccessibilityOptions().GetIsForPagePreviews())
387*b1cdbd2cSJim Jagielski             aRet.SetColor(COL_WHITE);
388*b1cdbd2cSJim Jagielski         else
389*b1cdbd2cSJim Jagielski             aRet = SwViewOption::GetDocColor();
390*b1cdbd2cSJim Jagielski     }
391*b1cdbd2cSJim Jagielski 	return aRet;
392*b1cdbd2cSJim Jagielski }
393*b1cdbd2cSJim Jagielski 
394*b1cdbd2cSJim Jagielski /** create page preview layout
395*b1cdbd2cSJim Jagielski 
396*b1cdbd2cSJim Jagielski     OD 12.12.2002 #103492#
397*b1cdbd2cSJim Jagielski 
398*b1cdbd2cSJim Jagielski     @author OD
399*b1cdbd2cSJim Jagielski */
InitPagePreviewLayout()400*b1cdbd2cSJim Jagielski void SwViewImp::InitPagePreviewLayout()
401*b1cdbd2cSJim Jagielski {
402*b1cdbd2cSJim Jagielski     ASSERT( pSh->GetLayout(), "no layout - page preview layout can not be created.");
403*b1cdbd2cSJim Jagielski     if ( pSh->GetLayout() )
404*b1cdbd2cSJim Jagielski         mpPgPrevwLayout = new SwPagePreviewLayout( *pSh, *(pSh->GetLayout()) );
405*b1cdbd2cSJim Jagielski }
406*b1cdbd2cSJim Jagielski 
UpdateAccessible()407*b1cdbd2cSJim Jagielski void SwViewImp::UpdateAccessible()
408*b1cdbd2cSJim Jagielski {
409*b1cdbd2cSJim Jagielski 	// We require a layout and an XModel to be accessible.
410*b1cdbd2cSJim Jagielski     IDocumentLayoutAccess* pIDLA = GetShell()->getIDocumentLayoutAccess();
411*b1cdbd2cSJim Jagielski 	Window *pWin = GetShell()->GetWin();
412*b1cdbd2cSJim Jagielski     ASSERT( GetShell()->GetLayout(), "no layout, no access" );	//swmod 071108//swmod 071225
413*b1cdbd2cSJim Jagielski 	ASSERT( pWin, "no window, no access" );
414*b1cdbd2cSJim Jagielski 
415*b1cdbd2cSJim Jagielski     if( IsAccessible() && pIDLA->GetCurrentViewShell() && pWin )	//swmod 071108//swmod 071225
416*b1cdbd2cSJim Jagielski 		GetAccessibleMap().GetDocumentView();
417*b1cdbd2cSJim Jagielski }
418*b1cdbd2cSJim Jagielski 
DisposeAccessible(const SwFrm * pFrm,const SdrObject * pObj,sal_Bool bRecursive)419*b1cdbd2cSJim Jagielski void SwViewImp::DisposeAccessible( const SwFrm *pFrm,
420*b1cdbd2cSJim Jagielski 								   const SdrObject *pObj,
421*b1cdbd2cSJim Jagielski 								   sal_Bool bRecursive )
422*b1cdbd2cSJim Jagielski {
423*b1cdbd2cSJim Jagielski 	ASSERT( !pFrm || pFrm->IsAccessibleFrm(), "frame is not accessible" );
424*b1cdbd2cSJim Jagielski 	ViewShell *pVSh = GetShell();
425*b1cdbd2cSJim Jagielski 	ViewShell *pTmp = pVSh;
426*b1cdbd2cSJim Jagielski 	do
427*b1cdbd2cSJim Jagielski 	{
428*b1cdbd2cSJim Jagielski 		if( pTmp->Imp()->IsAccessible() )
429*b1cdbd2cSJim Jagielski             pTmp->Imp()->GetAccessibleMap().Dispose( pFrm, pObj, 0, bRecursive );
430*b1cdbd2cSJim Jagielski 		pTmp = (ViewShell *)pTmp->GetNext();
431*b1cdbd2cSJim Jagielski 	} while ( pTmp != pVSh );
432*b1cdbd2cSJim Jagielski }
433*b1cdbd2cSJim Jagielski 
MoveAccessible(const SwFrm * pFrm,const SdrObject * pObj,const SwRect & rOldFrm)434*b1cdbd2cSJim Jagielski void SwViewImp::MoveAccessible( const SwFrm *pFrm, const SdrObject *pObj,
435*b1cdbd2cSJim Jagielski 								const SwRect& rOldFrm )
436*b1cdbd2cSJim Jagielski {
437*b1cdbd2cSJim Jagielski 	ASSERT( !pFrm || pFrm->IsAccessibleFrm(), "frame is not accessible" );
438*b1cdbd2cSJim Jagielski 	ViewShell *pVSh = GetShell();
439*b1cdbd2cSJim Jagielski 	ViewShell *pTmp = pVSh;
440*b1cdbd2cSJim Jagielski 	do
441*b1cdbd2cSJim Jagielski 	{
442*b1cdbd2cSJim Jagielski 		if( pTmp->Imp()->IsAccessible() )
443*b1cdbd2cSJim Jagielski             pTmp->Imp()->GetAccessibleMap().InvalidatePosOrSize( pFrm, pObj, 0,
444*b1cdbd2cSJim Jagielski 																 rOldFrm );
445*b1cdbd2cSJim Jagielski 		pTmp = (ViewShell *)pTmp->GetNext();
446*b1cdbd2cSJim Jagielski 	} while ( pTmp != pVSh );
447*b1cdbd2cSJim Jagielski }
448*b1cdbd2cSJim Jagielski 
FirePageChangeEvent(sal_uInt16 nOldPage,sal_uInt16 nNewPage)449*b1cdbd2cSJim Jagielski void SwViewImp::FirePageChangeEvent(sal_uInt16 nOldPage, sal_uInt16 nNewPage)
450*b1cdbd2cSJim Jagielski {
451*b1cdbd2cSJim Jagielski 	if( IsAccessible() )
452*b1cdbd2cSJim Jagielski 		GetAccessibleMap().FirePageChangeEvent( nOldPage, nNewPage);
453*b1cdbd2cSJim Jagielski }
454*b1cdbd2cSJim Jagielski 
FireSectionChangeEvent(sal_uInt16 nOldSection,sal_uInt16 nNewSection)455*b1cdbd2cSJim Jagielski void SwViewImp::FireSectionChangeEvent(sal_uInt16 nOldSection, sal_uInt16 nNewSection)
456*b1cdbd2cSJim Jagielski {
457*b1cdbd2cSJim Jagielski 	if( IsAccessible() )
458*b1cdbd2cSJim Jagielski 		GetAccessibleMap().FireSectionChangeEvent(nOldSection, nNewSection);
459*b1cdbd2cSJim Jagielski }
FireColumnChangeEvent(sal_uInt16 nOldColumn,sal_uInt16 nNewColumn)460*b1cdbd2cSJim Jagielski void SwViewImp::FireColumnChangeEvent(sal_uInt16 nOldColumn, sal_uInt16 nNewColumn)
461*b1cdbd2cSJim Jagielski {
462*b1cdbd2cSJim Jagielski 	if( IsAccessible() )
463*b1cdbd2cSJim Jagielski 		GetAccessibleMap().FireColumnChangeEvent(nOldColumn,  nNewColumn);
464*b1cdbd2cSJim Jagielski }
InvalidateAccessibleFrmContent(const SwFrm * pFrm)465*b1cdbd2cSJim Jagielski void SwViewImp::InvalidateAccessibleFrmContent( const SwFrm *pFrm )
466*b1cdbd2cSJim Jagielski {
467*b1cdbd2cSJim Jagielski 	ASSERT( pFrm->IsAccessibleFrm(), "frame is not accessible" );
468*b1cdbd2cSJim Jagielski 	ViewShell *pVSh = GetShell();
469*b1cdbd2cSJim Jagielski 	ViewShell *pTmp = pVSh;
470*b1cdbd2cSJim Jagielski 	do
471*b1cdbd2cSJim Jagielski 	{
472*b1cdbd2cSJim Jagielski 		if( pTmp->Imp()->IsAccessible() )
473*b1cdbd2cSJim Jagielski 			pTmp->Imp()->GetAccessibleMap().InvalidateContent( pFrm );
474*b1cdbd2cSJim Jagielski 		pTmp = (ViewShell *)pTmp->GetNext();
475*b1cdbd2cSJim Jagielski 	} while ( pTmp != pVSh );
476*b1cdbd2cSJim Jagielski }
477*b1cdbd2cSJim Jagielski 
InvalidateAccessibleCursorPosition(const SwFrm * pFrm)478*b1cdbd2cSJim Jagielski void SwViewImp::InvalidateAccessibleCursorPosition( const SwFrm *pFrm )
479*b1cdbd2cSJim Jagielski {
480*b1cdbd2cSJim Jagielski 	if( IsAccessible() )
481*b1cdbd2cSJim Jagielski 		GetAccessibleMap().InvalidateCursorPosition( pFrm );
482*b1cdbd2cSJim Jagielski }
483*b1cdbd2cSJim Jagielski 
InvalidateAccessibleEditableState(sal_Bool bAllShells,const SwFrm * pFrm)484*b1cdbd2cSJim Jagielski void SwViewImp::InvalidateAccessibleEditableState( sal_Bool bAllShells,
485*b1cdbd2cSJim Jagielski 	   											   const SwFrm *pFrm	)
486*b1cdbd2cSJim Jagielski {
487*b1cdbd2cSJim Jagielski 	if( bAllShells )
488*b1cdbd2cSJim Jagielski 	{
489*b1cdbd2cSJim Jagielski 		ViewShell *pVSh = GetShell();
490*b1cdbd2cSJim Jagielski 		ViewShell *pTmp = pVSh;
491*b1cdbd2cSJim Jagielski 		do
492*b1cdbd2cSJim Jagielski 		{
493*b1cdbd2cSJim Jagielski 			if( pTmp->Imp()->IsAccessible() )
494*b1cdbd2cSJim Jagielski 				pTmp->Imp()->GetAccessibleMap().InvalidateStates( ACC_STATE_EDITABLE, pFrm );
495*b1cdbd2cSJim Jagielski 			pTmp = (ViewShell *)pTmp->GetNext();
496*b1cdbd2cSJim Jagielski 		} while ( pTmp != pVSh );
497*b1cdbd2cSJim Jagielski 	}
498*b1cdbd2cSJim Jagielski 	else if( IsAccessible() )
499*b1cdbd2cSJim Jagielski 	{
500*b1cdbd2cSJim Jagielski 		GetAccessibleMap().InvalidateStates( ACC_STATE_EDITABLE, pFrm );
501*b1cdbd2cSJim Jagielski 	}
502*b1cdbd2cSJim Jagielski }
503*b1cdbd2cSJim Jagielski 
InvalidateAccessibleRelationSet(const SwFlyFrm * pMaster,const SwFlyFrm * pFollow)504*b1cdbd2cSJim Jagielski void SwViewImp::InvalidateAccessibleRelationSet( const SwFlyFrm *pMaster,
505*b1cdbd2cSJim Jagielski                                                  const SwFlyFrm *pFollow )
506*b1cdbd2cSJim Jagielski {
507*b1cdbd2cSJim Jagielski 	ViewShell *pVSh = GetShell();
508*b1cdbd2cSJim Jagielski 	ViewShell *pTmp = pVSh;
509*b1cdbd2cSJim Jagielski 	do
510*b1cdbd2cSJim Jagielski 	{
511*b1cdbd2cSJim Jagielski 		if( pTmp->Imp()->IsAccessible() )
512*b1cdbd2cSJim Jagielski 			pTmp->Imp()->GetAccessibleMap().InvalidateRelationSet( pMaster,
513*b1cdbd2cSJim Jagielski                                                                    pFollow );
514*b1cdbd2cSJim Jagielski 		pTmp = (ViewShell *)pTmp->GetNext();
515*b1cdbd2cSJim Jagielski 	} while ( pTmp != pVSh );
516*b1cdbd2cSJim Jagielski }
517*b1cdbd2cSJim Jagielski 
518*b1cdbd2cSJim Jagielski  /** invalidate CONTENT_FLOWS_FROM/_TO relation for paragraphs
519*b1cdbd2cSJim Jagielski 
520*b1cdbd2cSJim Jagielski     OD 2005-12-01 #i27138#
521*b1cdbd2cSJim Jagielski 
522*b1cdbd2cSJim Jagielski     @author OD
523*b1cdbd2cSJim Jagielski */
_InvalidateAccessibleParaFlowRelation(const SwTxtFrm * _pFromTxtFrm,const SwTxtFrm * _pToTxtFrm)524*b1cdbd2cSJim Jagielski void SwViewImp::_InvalidateAccessibleParaFlowRelation( const SwTxtFrm* _pFromTxtFrm,
525*b1cdbd2cSJim Jagielski                                                        const SwTxtFrm* _pToTxtFrm )
526*b1cdbd2cSJim Jagielski {
527*b1cdbd2cSJim Jagielski     if ( !_pFromTxtFrm && !_pToTxtFrm )
528*b1cdbd2cSJim Jagielski     {
529*b1cdbd2cSJim Jagielski         // No text frame provided. Thus, nothing to do.
530*b1cdbd2cSJim Jagielski         return;
531*b1cdbd2cSJim Jagielski     }
532*b1cdbd2cSJim Jagielski 
533*b1cdbd2cSJim Jagielski     ViewShell* pVSh = GetShell();
534*b1cdbd2cSJim Jagielski     ViewShell* pTmp = pVSh;
535*b1cdbd2cSJim Jagielski     do
536*b1cdbd2cSJim Jagielski     {
537*b1cdbd2cSJim Jagielski         if ( pTmp->Imp()->IsAccessible() )
538*b1cdbd2cSJim Jagielski         {
539*b1cdbd2cSJim Jagielski             if ( _pFromTxtFrm )
540*b1cdbd2cSJim Jagielski             {
541*b1cdbd2cSJim Jagielski                 pTmp->Imp()->GetAccessibleMap().
542*b1cdbd2cSJim Jagielski                             InvalidateParaFlowRelation( *_pFromTxtFrm, true );
543*b1cdbd2cSJim Jagielski             }
544*b1cdbd2cSJim Jagielski             if ( _pToTxtFrm )
545*b1cdbd2cSJim Jagielski             {
546*b1cdbd2cSJim Jagielski                 pTmp->Imp()->GetAccessibleMap().
547*b1cdbd2cSJim Jagielski                             InvalidateParaFlowRelation( *_pToTxtFrm, false );
548*b1cdbd2cSJim Jagielski             }
549*b1cdbd2cSJim Jagielski         }
550*b1cdbd2cSJim Jagielski         pTmp = (ViewShell *)pTmp->GetNext();
551*b1cdbd2cSJim Jagielski     } while ( pTmp != pVSh );
552*b1cdbd2cSJim Jagielski }
553*b1cdbd2cSJim Jagielski 
554*b1cdbd2cSJim Jagielski /** invalidate text selection for paragraphs
555*b1cdbd2cSJim Jagielski 
556*b1cdbd2cSJim Jagielski     OD 2005-12-12 #i27301#
557*b1cdbd2cSJim Jagielski 
558*b1cdbd2cSJim Jagielski     @author OD
559*b1cdbd2cSJim Jagielski */
_InvalidateAccessibleParaTextSelection()560*b1cdbd2cSJim Jagielski void SwViewImp::_InvalidateAccessibleParaTextSelection()
561*b1cdbd2cSJim Jagielski {
562*b1cdbd2cSJim Jagielski     ViewShell* pVSh = GetShell();
563*b1cdbd2cSJim Jagielski     ViewShell* pTmp = pVSh;
564*b1cdbd2cSJim Jagielski     do
565*b1cdbd2cSJim Jagielski     {
566*b1cdbd2cSJim Jagielski         if ( pTmp->Imp()->IsAccessible() )
567*b1cdbd2cSJim Jagielski         {
568*b1cdbd2cSJim Jagielski             pTmp->Imp()->GetAccessibleMap().InvalidateTextSelectionOfAllParas();
569*b1cdbd2cSJim Jagielski         }
570*b1cdbd2cSJim Jagielski 
571*b1cdbd2cSJim Jagielski         pTmp = (ViewShell *)pTmp->GetNext();
572*b1cdbd2cSJim Jagielski     } while ( pTmp != pVSh );
573*b1cdbd2cSJim Jagielski }
574*b1cdbd2cSJim Jagielski 
575*b1cdbd2cSJim Jagielski /** invalidate attributes for paragraphs
576*b1cdbd2cSJim Jagielski 
577*b1cdbd2cSJim Jagielski     OD 2009-01-06 #i88069#
578*b1cdbd2cSJim Jagielski 
579*b1cdbd2cSJim Jagielski     @author OD
580*b1cdbd2cSJim Jagielski */
_InvalidateAccessibleParaAttrs(const SwTxtFrm & rTxtFrm)581*b1cdbd2cSJim Jagielski void SwViewImp::_InvalidateAccessibleParaAttrs( const SwTxtFrm& rTxtFrm )
582*b1cdbd2cSJim Jagielski {
583*b1cdbd2cSJim Jagielski     ViewShell* pVSh = GetShell();
584*b1cdbd2cSJim Jagielski     ViewShell* pTmp = pVSh;
585*b1cdbd2cSJim Jagielski     do
586*b1cdbd2cSJim Jagielski     {
587*b1cdbd2cSJim Jagielski         if ( pTmp->Imp()->IsAccessible() )
588*b1cdbd2cSJim Jagielski         {
589*b1cdbd2cSJim Jagielski             pTmp->Imp()->GetAccessibleMap().InvalidateAttr( rTxtFrm );
590*b1cdbd2cSJim Jagielski         }
591*b1cdbd2cSJim Jagielski 
592*b1cdbd2cSJim Jagielski         pTmp = (ViewShell *)pTmp->GetNext();
593*b1cdbd2cSJim Jagielski     } while ( pTmp != pVSh );
594*b1cdbd2cSJim Jagielski }
595*b1cdbd2cSJim Jagielski 
596*b1cdbd2cSJim Jagielski // OD 15.01.2003 #103492# - method signature change due to new page preview functionality
UpdateAccessiblePreview(const std::vector<PrevwPage * > & _rPrevwPages,const Fraction & _rScale,const SwPageFrm * _pSelectedPageFrm,const Size & _rPrevwWinSize)597*b1cdbd2cSJim Jagielski void SwViewImp::UpdateAccessiblePreview( const std::vector<PrevwPage*>& _rPrevwPages,
598*b1cdbd2cSJim Jagielski                                          const Fraction&  _rScale,
599*b1cdbd2cSJim Jagielski                                          const SwPageFrm* _pSelectedPageFrm,
600*b1cdbd2cSJim Jagielski                                          const Size&      _rPrevwWinSize )
601*b1cdbd2cSJim Jagielski {
602*b1cdbd2cSJim Jagielski     if( IsAccessible() )
603*b1cdbd2cSJim Jagielski         GetAccessibleMap().UpdatePreview( _rPrevwPages, _rScale,
604*b1cdbd2cSJim Jagielski                                           _pSelectedPageFrm, _rPrevwWinSize );
605*b1cdbd2cSJim Jagielski }
606*b1cdbd2cSJim Jagielski 
InvalidateAccessiblePreViewSelection(sal_uInt16 nSelPage)607*b1cdbd2cSJim Jagielski void SwViewImp::InvalidateAccessiblePreViewSelection( sal_uInt16 nSelPage )
608*b1cdbd2cSJim Jagielski {
609*b1cdbd2cSJim Jagielski     if( IsAccessible() )
610*b1cdbd2cSJim Jagielski         GetAccessibleMap().InvalidatePreViewSelection( nSelPage );
611*b1cdbd2cSJim Jagielski }
612*b1cdbd2cSJim Jagielski 
CreateAccessibleMap()613*b1cdbd2cSJim Jagielski SwAccessibleMap *SwViewImp::CreateAccessibleMap()
614*b1cdbd2cSJim Jagielski {
615*b1cdbd2cSJim Jagielski 	ASSERT( !pAccMap, "accessible map exists" )
616*b1cdbd2cSJim Jagielski 	pAccMap = new SwAccessibleMap( GetShell() );
617*b1cdbd2cSJim Jagielski 	return pAccMap;
618*b1cdbd2cSJim Jagielski }
619*b1cdbd2cSJim Jagielski 
FireAccessibleEvents()620*b1cdbd2cSJim Jagielski void SwViewImp::FireAccessibleEvents()
621*b1cdbd2cSJim Jagielski {
622*b1cdbd2cSJim Jagielski 	if( IsAccessible() )
623*b1cdbd2cSJim Jagielski 		GetAccessibleMap().FireEvents();
624*b1cdbd2cSJim Jagielski }
625*b1cdbd2cSJim Jagielski 
IMPL_LINK(SwViewImp,SetStopPrt,void *,EMPTYARG)626*b1cdbd2cSJim Jagielski IMPL_LINK(SwViewImp, SetStopPrt, void *, EMPTYARG)
627*b1cdbd2cSJim Jagielski {
628*b1cdbd2cSJim Jagielski 	bStopPrt = sal_True;
629*b1cdbd2cSJim Jagielski 
630*b1cdbd2cSJim Jagielski 	return 0;
631*b1cdbd2cSJim Jagielski }
632*b1cdbd2cSJim Jagielski 
633