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