1 /**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_sw.hxx"
26
27
28
29 #include "hintids.hxx"
30 #include <vcl/graph.hxx>
31 #include <svx/galbrws.hxx>
32 #include <svl/srchitem.hxx>
33 #include <SwSpellDialogChildWindow.hxx>
34 #include <svl/eitem.hxx>
35 #include <unotools/linguprops.hxx>
36 #include <unotools/lingucfg.hxx>
37 #include <viewopt.hxx>
38 #include <globals.h>
39 #include <sfx2/app.hxx>
40 #include <sfx2/request.hxx>
41 #include <svl/whiter.hxx>
42 #include <svx/srchdlg.hxx>
43 #include <sfx2/templdlg.hxx>
44 #include <sfx2/viewfrm.hxx>
45 #include <sfx2/bindings.hxx>
46 #include <sfx2/sidebar/SidebarChildWindow.hxx>
47 #include <uivwimp.hxx>
48 #include <avmedia/mediaplayer.hxx>
49 //#include <swlinguconfig.hxx>
50 #include <swmodule.hxx>
51
52 #include <sfx2/objface.hxx>
53 #include <navipi.hxx>
54 #include <wrtsh.hxx>
55 #include <edtwin.hxx>
56 #include "view.hxx"
57 #include "basesh.hxx"
58 #include "docsh.hxx"
59 #include "doc.hxx"
60 #include "globals.hrc"
61 #include "cmdid.h" // FN_ ...
62 #include "globdoc.hxx"
63 #include "wview.hxx"
64 #include "shells.hrc"
65
66 #define OLEObjects
67 #define SwView
68 #define Frames
69 #define Graphics
70 #define Tables
71 #define Controls
72 #define GlobalContents
73 #define Text
74 #define Frame
75 #define Graphic
76 #define Object
77 #define Draw
78 #define TextDrawText
79 #define TextInTable
80 #define ListInText
81 #define ListInTable
82 #define WebTextInTable
83 #define WebListInText
84 #define WebListInTable
85 #define TextPage
86 #include <sfx2/msg.hxx>
87 #include "swslots.hxx"
88 #include <PostItMgr.hxx>
89
90
91 using namespace ::com::sun::star;
92 using ::rtl::OUString;
93
94 #include <unotools/moduleoptions.hxx>
95
96 #include <IDocumentSettingAccess.hxx>
97
98 #include <unomid.h>
99
100 SFX_IMPL_NAMED_VIEWFACTORY(SwView, "Default")
101 {
102 if ( SvtModuleOptions().IsWriter() )
103 {
104 SFX_VIEW_REGISTRATION(SwDocShell);
105 SFX_VIEW_REGISTRATION(SwGlobalDocShell);
106 }
107 }
108
SFX_IMPL_INTERFACE(SwView,SfxViewShell,SW_RES (RID_TOOLS_TOOLBOX))109 SFX_IMPL_INTERFACE( SwView, SfxViewShell, SW_RES(RID_TOOLS_TOOLBOX) )
110 {
111 SFX_CHILDWINDOW_CONTEXT_REGISTRATION(SID_NAVIGATOR);
112 SFX_CHILDWINDOW_REGISTRATION(::sfx2::sidebar::SidebarChildWindow::GetChildWindowId());
113 SFX_CHILDWINDOW_REGISTRATION(SfxTemplateDialogWrapper::GetChildWindowId());
114 SFX_CHILDWINDOW_REGISTRATION(SvxSearchDialogWrapper::GetChildWindowId());
115 SFX_CHILDWINDOW_REGISTRATION(SwSpellDialogChildWindow::GetChildWindowId());
116 SFX_CHILDWINDOW_REGISTRATION(FN_REDLINE_ACCEPT);
117 SFX_CHILDWINDOW_REGISTRATION(SID_HYPERLINK_DIALOG);
118 SFX_CHILDWINDOW_REGISTRATION(GalleryChildWindow::GetChildWindowId());
119 SFX_CHILDWINDOW_REGISTRATION(::avmedia::MediaPlayer::GetChildWindowId());
120 SFX_CHILDWINDOW_REGISTRATION(FN_INSERT_FIELD_DATA_ONLY);
121 SFX_FEATURED_CHILDWINDOW_REGISTRATION(FN_SYNC_LABELS, CHILDWIN_LABEL );
122 SFX_FEATURED_CHILDWINDOW_REGISTRATION(FN_MAILMERGE_CHILDWINDOW, CHILDWIN_MAILMERGE);
123 // SFX_CHILDWINDOW_REGISTRATION(FN_MAILMERGE_SENDMAIL_CHILDWINDOW);
124 SFX_OBJECTBAR_REGISTRATION( SFX_OBJECTBAR_TOOLS|
125 SFX_VISIBILITY_STANDARD|SFX_VISIBILITY_SERVER,
126 SW_RES(RID_TOOLS_TOOLBOX) );
127 }
128
TYPEINIT1(SwView,SfxViewShell)129 TYPEINIT1(SwView,SfxViewShell)
130
131 /*-----------------13.12.97 11:06-------------------
132
133 --------------------------------------------------*/
134 ShellModes SwView::GetShellMode()
135 {
136 return pViewImpl->GetShellMode();
137 }
138
139 /*-----------------13.12.97 11:28-------------------
140
141 --------------------------------------------------*/
GetUNOObject()142 view::XSelectionSupplier* SwView::GetUNOObject()
143 {
144 return pViewImpl->GetUNOObject();
145 }
146 /* -----------------------------06.05.2002 13:18------------------------------
147
148 ---------------------------------------------------------------------------*/
ApplyAccessiblityOptions(SvtAccessibilityOptions & rAccessibilityOptions)149 void SwView::ApplyAccessiblityOptions(SvtAccessibilityOptions& rAccessibilityOptions)
150 {
151 pWrtShell->ApplyAccessiblityOptions(rAccessibilityOptions);
152 //to enable the right state of the selection cursor in readonly documents
153 if(GetDocShell()->IsReadOnly())
154 pWrtShell->ShowCrsr();
155
156 }
157 /*-- 26.05.2004 09:14:25---------------------------------------------------
158
159 -----------------------------------------------------------------------*/
SetMailMergeConfigItem(SwMailMergeConfigItem * pConfigItem,sal_uInt16 nRestart,sal_Bool bIsSource)160 void SwView::SetMailMergeConfigItem(SwMailMergeConfigItem* pConfigItem,
161 sal_uInt16 nRestart, sal_Bool bIsSource)
162 {
163 pViewImpl->SetMailMergeConfigItem(pConfigItem, nRestart, bIsSource);
164 UIFeatureChanged();
165 }
166 /*-- 26.05.2004 09:14:25---------------------------------------------------
167
168 -----------------------------------------------------------------------*/
GetMailMergeConfigItem()169 SwMailMergeConfigItem* SwView::GetMailMergeConfigItem()
170 {
171 return pViewImpl->GetMailMergeConfigItem();
172 }
173 /*-- 26.05.2004 09:14:25---------------------------------------------------
174
175 -----------------------------------------------------------------------*/
GetMailMergeRestartPage() const176 sal_uInt16 SwView::GetMailMergeRestartPage() const
177 {
178 return pViewImpl->GetMailMergeRestartPage();
179 }
180 /*-- 03.09.2004 11:56:33---------------------------------------------------
181
182 -----------------------------------------------------------------------*/
IsMailMergeSourceView() const183 sal_Bool SwView::IsMailMergeSourceView() const
184 {
185 return pViewImpl->IsMailMergeSourceView();
186 }
187 /*-- 12.04.2006 11:51:40---------------------------------------------------
188
189 -----------------------------------------------------------------------*/
lcl_IsViewMarks(const SwViewOption & rVOpt)190 sal_Bool lcl_IsViewMarks( const SwViewOption& rVOpt )
191 {
192 return rVOpt.IsHardBlank() &&
193 rVOpt.IsSoftHyph() &&
194 SwViewOption::IsFieldShadings();
195 }
lcl_SetViewMarks(SwViewOption & rVOpt,sal_Bool bOn)196 void lcl_SetViewMarks(SwViewOption& rVOpt, sal_Bool bOn )
197 {
198 rVOpt.SetHardBlank(bOn);
199 rVOpt.SetSoftHyph(bOn);
200 SwViewOption::SetAppearanceFlag(
201 VIEWOPT_FIELD_SHADINGS, bOn, sal_True);
202 }
203
lcl_SetViewMetaChars(SwViewOption & rVOpt,sal_Bool bOn)204 void lcl_SetViewMetaChars( SwViewOption& rVOpt, sal_Bool bOn)
205 {
206 rVOpt.SetViewMetaChars( bOn );
207 if(bOn && !(rVOpt.IsParagraph() ||
208 rVOpt.IsTab() ||
209 rVOpt.IsLineBreak() ||
210 rVOpt.IsShowHiddenChar() ||
211 rVOpt.IsBlank()))
212 {
213 rVOpt.SetParagraph(bOn);
214 rVOpt.SetTab(bOn);
215 rVOpt.SetLineBreak(bOn);
216 rVOpt.SetBlank(bOn);
217 rVOpt.SetShowHiddenChar(bOn);
218 }
219 }
220
RecheckBrowseMode()221 void SwView::RecheckBrowseMode()
222 {
223 // OS: numerische Reihenfolge beachten!
224 static sal_uInt16 __READONLY_DATA aInva[] =
225 {
226 //SID_NEWWINDOW,/*5620*/
227 SID_BROWSER_MODE, /*6313*/
228 SID_RULER_BORDERS, SID_RULER_PAGE_POS,
229 //SID_ATTR_LONG_LRSPACE,
230 SID_HTML_MODE,
231 SID_RULER_PROTECT,
232 //SID_AUTOSPELL_CHECK,
233 //SID_AUTOSPELL_MARKOFF,
234 FN_RULER, /*20211*/
235 FN_VIEW_GRAPHIC, /*20213*/
236 FN_VIEW_BOUNDS, /**/
237 FN_VIEW_FIELDS, /*20215*/
238 FN_VLINEAL, /*20216*/
239 FN_VSCROLLBAR, /*20217*/
240 FN_HSCROLLBAR, /*20218*/
241 FN_VIEW_META_CHARS, /**/
242 FN_VIEW_MARKS, /**/
243 //FN_VIEW_FIELDNAME, /**/
244 FN_VIEW_TABLEGRID, /*20227*/
245 FN_PRINT_LAYOUT, /*20237*/
246 FN_QRY_MERGE, /*20364*/
247 FN_SHADOWCURSOR, /**/
248 0
249 };
250 // the view must not exist!
251 GetViewFrame()->GetBindings().Invalidate(aInva);
252 CheckVisArea();
253
254 SvxZoomType eType;
255 if( GetWrtShell().GetViewOptions()->getBrowseMode() && SVX_ZOOM_PERCENT != (eType = (SvxZoomType)
256 GetWrtShell().GetViewOptions()->GetZoomType()) )
257 SetZoom( eType );
258 InvalidateBorder();
259 }
260
261 /*--------------------------------------------------------------------
262 State of view options
263 --------------------------------------------------------------------*/
StateViewOptions(SfxItemSet & rSet)264 void SwView::StateViewOptions(SfxItemSet &rSet)
265 {
266 SfxWhichIter aIter(rSet);
267 sal_uInt16 nWhich = aIter.FirstWhich();
268 SfxBoolItem aBool;
269 const SwViewOption* pOpt = GetWrtShell().GetViewOptions();
270 const IDocumentSettingAccess* pIDSA = GetDocShell()->getIDocumentSettingAccess();
271
272 while(nWhich)
273 {
274 sal_Bool bReadonly = GetDocShell()->IsReadOnly();
275 if ( bReadonly && nWhich != FN_VIEW_GRAPHIC )
276 {
277 rSet.DisableItem(nWhich);
278 nWhich = 0;
279 }
280 switch(nWhich)
281 {
282 case FN_RULER:
283 {
284 if(!pOpt->IsViewHRuler(sal_True) && !pOpt->IsViewVRuler(sal_True))
285 {
286 rSet.DisableItem(nWhich);
287 nWhich = 0;
288 }
289 else
290 aBool.SetValue( pOpt->IsViewAnyRuler());
291 }
292 break;
293 case SID_BROWSER_MODE:
294 case FN_PRINT_LAYOUT:
295 {
296 sal_Bool bState = pOpt->getBrowseMode();
297 if(FN_PRINT_LAYOUT == nWhich)
298 bState = !bState;
299 aBool.SetValue( bState );
300 }
301 break;
302 case FN_VIEW_BOUNDS:
303 aBool.SetValue( SwViewOption::IsDocBoundaries()); break;
304 case FN_VIEW_GRAPHIC:
305 aBool.SetValue( !pOpt->IsGraphic() ); break;
306 case FN_VIEW_FIELDS:
307 aBool.SetValue( SwViewOption::IsFieldShadings() ); break;
308 case FN_VIEW_FIELDNAME:
309 aBool.SetValue( pOpt->IsFldName() ); break;
310 case FN_VIEW_MARKS:
311 aBool.SetValue( lcl_IsViewMarks(*pOpt) ); break;
312 case FN_VIEW_META_CHARS:
313 aBool.SetValue( pOpt->IsViewMetaChars() ); break;
314 case FN_VIEW_TABLEGRID:
315 aBool.SetValue( SwViewOption::IsTableBoundaries() ); break;
316 case FN_VIEW_NOTES:
317 {
318 aBool.SetValue( pOpt->IsPostIts());
319 if (!GetPostItMgr()->HasNotes())
320 {
321 aBool.SetWhich( nWhich );
322 rSet.Put( aBool );
323 rSet.DisableItem(nWhich);
324 nWhich = 0;
325 }
326 break;
327 }
328 case FN_VIEW_HIDDEN_PARA:
329 aBool.SetValue( pOpt->IsShowHiddenPara()); break;
330 case SID_GRID_VISIBLE:
331 aBool.SetValue( pOpt->IsGridVisible() ); break;
332 case SID_GRID_USE:
333 aBool.SetValue( pOpt->IsSnap() ); break;
334 case SID_HELPLINES_MOVE:
335 aBool.SetValue( pOpt->IsCrossHair() ); break;
336 case FN_VIEW_SMOOTH_SCROLL:
337 aBool.SetValue( pOpt->IsSmoothScroll()); break;
338 case FN_VLINEAL:
339 aBool.SetValue( 0 != StatVLineal() ); break;
340 case FN_HSCROLLBAR:
341 if( pOpt->getBrowseMode() )
342 {
343 rSet.DisableItem(nWhich);
344 nWhich = 0;
345 }
346 else
347 aBool.SetValue( IsHScrollbarVisible() ); break;
348 case FN_VSCROLLBAR:
349 aBool.SetValue( IsVScrollbarVisible() ); break;
350 case SID_AUTOSPELL_CHECK:
351 aBool.SetValue( pOpt->IsOnlineSpell() );
352 break;
353 case FN_SHADOWCURSOR:
354 if (pIDSA == 0 || pOpt->getBrowseMode() )
355 {
356 rSet.DisableItem( nWhich );
357 nWhich = 0;
358 }
359 else
360 aBool.SetValue( pOpt->IsShadowCursor() );
361 break;
362
363 }
364
365 if( nWhich )
366 {
367 aBool.SetWhich( nWhich );
368 rSet.Put( aBool );
369 }
370 nWhich = aIter.NextWhich();
371 }
372 }
373
374 /*--------------------------------------------------------------------
375 execute view options
376 --------------------------------------------------------------------*/
ExecViewOptions(SfxRequest & rReq)377 void SwView::ExecViewOptions(SfxRequest &rReq)
378 {
379 SwViewOption* pOpt = new SwViewOption( *GetWrtShell().GetViewOptions() );
380 sal_Bool bModified = GetWrtShell().IsModified();
381
382 int eState = STATE_TOGGLE;
383 sal_Bool bSet = sal_False;
384 bool bBrowseModeChanged = false;
385
386 const SfxItemSet *pArgs = rReq.GetArgs();
387 sal_uInt16 nSlot = rReq.GetSlot();
388 const SfxPoolItem* pAttr=NULL;
389
390 if( pArgs && SFX_ITEM_SET == pArgs->GetItemState( nSlot , sal_False, &pAttr ))
391 {
392 bSet = ((SfxBoolItem*)pAttr)->GetValue();
393 eState = bSet ? STATE_ON : STATE_OFF;
394 }
395
396 sal_Bool bFlag = STATE_ON == eState;
397 uno::Reference< beans::XPropertySet > xLngProp( ::GetLinguPropertySet() );
398
399 switch ( nSlot )
400 {
401 case FN_VIEW_GRAPHIC:
402
403 if( STATE_TOGGLE == eState )
404 bFlag = !pOpt->IsGraphic();
405 pOpt->SetGraphic( bFlag );
406 break;
407
408 case FN_VIEW_FIELDS:
409 if( STATE_TOGGLE == eState )
410 bFlag = !SwViewOption::IsFieldShadings() ;
411 SwViewOption::SetAppearanceFlag(VIEWOPT_FIELD_SHADINGS, bFlag, sal_True );
412 break;
413
414 case FN_VIEW_BOUNDS:
415 if( STATE_TOGGLE == eState )
416 bFlag = !SwViewOption::IsDocBoundaries();
417 SwViewOption::SetAppearanceFlag(VIEWOPT_DOC_BOUNDARIES, bFlag, sal_True );
418 break;
419
420 case SID_GRID_VISIBLE:
421 if( STATE_TOGGLE == eState )
422 bFlag = !pOpt->IsGridVisible();
423
424 pOpt->SetGridVisible( bFlag );
425 break;
426
427 case SID_GRID_USE:
428 if( STATE_TOGGLE == eState )
429 bFlag = !pOpt->IsSnap();
430
431 pOpt->SetSnap( bFlag );
432 break;
433
434 case SID_HELPLINES_MOVE:
435 if( STATE_TOGGLE == eState )
436 bFlag = !pOpt->IsCrossHair();
437
438 pOpt->SetCrossHair( bFlag );
439 break;
440
441 case SID_BROWSER_MODE:
442 case FN_PRINT_LAYOUT:
443 if( STATE_TOGGLE == eState )
444 bFlag = !pOpt->getBrowseMode();
445 else if( nSlot == FN_PRINT_LAYOUT )
446 bFlag = !bFlag;
447 bBrowseModeChanged = bFlag != pOpt->getBrowseMode();
448 // Disable "multiple layout"
449 GetDocShell()->ToggleBrowserMode( bFlag, this );
450
451 pOpt->setBrowseMode( bFlag );
452 break;
453
454 case FN_VIEW_NOTES:
455 if ( STATE_TOGGLE == eState )
456 bFlag = !pOpt->IsPostIts();
457
458 GetPostItMgr()->SetLayout();
459 pOpt->SetPostIts( bFlag );
460 if (pOpt->IsPostIts())
461 GetPostItMgr()->CheckMetaText();
462 break;
463
464 case FN_VIEW_HIDDEN_PARA:
465 if ( STATE_TOGGLE == eState )
466 bFlag = !pOpt->IsShowHiddenPara();
467
468 pOpt->SetShowHiddenPara( bFlag );
469 break;
470
471 case FN_VIEW_SMOOTH_SCROLL:
472
473 if ( STATE_TOGGLE == eState )
474 bFlag = !pOpt->IsSmoothScroll();
475
476 pOpt->SetSmoothScroll( bFlag );
477 break;
478
479
480 case FN_VLINEAL:
481 if( STATE_TOGGLE == eState )
482 bFlag = !pOpt->IsViewVRuler();
483
484 pOpt->SetViewVRuler( bFlag );
485 break;
486
487 case FN_VSCROLLBAR:
488 if( STATE_TOGGLE == eState )
489 bFlag = !pOpt->IsViewVScrollBar();
490
491 pOpt->SetViewVScrollBar( bFlag );
492 break;
493
494 case FN_HSCROLLBAR:
495 if( STATE_TOGGLE == eState )
496 bFlag = !pOpt->IsViewHScrollBar();
497
498 pOpt->SetViewHScrollBar( bFlag );
499 break;
500 case FN_RULER:
501 if( STATE_TOGGLE == eState )
502 bFlag = !pOpt->IsViewAnyRuler();
503
504 pOpt->SetViewAnyRuler( bFlag );
505 break;
506
507 case FN_VIEW_TABLEGRID:
508 if( STATE_TOGGLE == eState )
509 bFlag = !SwViewOption::IsTableBoundaries();
510 SwViewOption::SetAppearanceFlag(VIEWOPT_TABLE_BOUNDARIES, bFlag, sal_True );
511 break;
512
513 case FN_VIEW_FIELDNAME:
514 if( STATE_TOGGLE == eState )
515 bFlag = !pOpt->IsFldName() ;
516
517 pOpt->SetFldName( bFlag );
518 break;
519 case FN_VIEW_MARKS:
520 if( STATE_TOGGLE == eState )
521 bFlag = !lcl_IsViewMarks(*pOpt) ;
522
523 lcl_SetViewMarks( *pOpt, bFlag );
524 break;
525 case FN_VIEW_META_CHARS:
526 if( STATE_TOGGLE == eState )
527 bFlag = !pOpt->IsViewMetaChars();
528
529 lcl_SetViewMetaChars( *pOpt, bFlag );
530 break;
531 case SID_AUTOSPELL_CHECK:
532 if( STATE_TOGGLE == eState )
533 bFlag = bSet = !pOpt->IsOnlineSpell();
534
535 pOpt->SetOnlineSpell(bSet);
536 {
537 uno::Any aVal( &bSet, ::getCppuBooleanType() );
538 String aPropName( C2S(UPN_IS_SPELL_AUTO) );
539
540 SvtLinguConfig aCfg;
541 aCfg.SetProperty( aPropName, aVal );
542
543 if (xLngProp.is())
544 xLngProp->setPropertyValue( aPropName, aVal );
545
546 // for the time being we do not have a specific option for grammarchecking.
547 // thus we'll use the one for spell checking...
548 if (bSet)
549 {
550 SwDocShell *pDocSh = GetDocShell();
551 SwDoc *pDoc = pDocSh? pDocSh->GetDoc() : NULL;
552
553 // right now we don't have view options for automatic grammar checking. Thus...
554 sal_Bool bIsAutoGrammar = sal_False;
555 aCfg.GetProperty( C2U( UPN_IS_GRAMMAR_AUTO ) ) >>= bIsAutoGrammar;
556
557 if (pDoc && bIsAutoGrammar)
558 StartGrammarChecking( *pDoc );
559 }
560 }
561 break;
562 case FN_SHADOWCURSOR:
563 if( STATE_TOGGLE == eState )
564 bFlag = bSet = !pOpt->IsShadowCursor();
565
566 pOpt->SetShadowCursor(bSet);
567 break;
568
569 default:
570 delete pOpt;
571 ASSERT(sal_False, Falsche Request-Methode);
572 return;
573 }
574
575 // UserPrefs setzen Request als bearbeitet kennzeichnen
576 sal_Bool bWebView = 0 != dynamic_cast<const SwWebView*>(this);
577 SwWrtShell &rSh = GetWrtShell();
578 rSh.StartAction();
579 SwModule* pModule = SW_MOD();
580 if( !(*rSh.GetViewOptions() == *pOpt ))
581 {
582 rSh.ApplyViewOptions( *pOpt );
583 if( bBrowseModeChanged )
584 {
585 RecheckBrowseMode();
586 CheckVisArea();
587 }
588
589 //Die UsrPref muessen als Modified gekennzeichnet werden.
590 //call for initialization
591 pModule->GetUsrPref(bWebView);
592 pModule->CheckSpellChanges( pOpt->IsOnlineSpell(), sal_False, sal_False, sal_False );
593 }
594 //OS: Modified wieder zuruecksetzen, weil Ansicht/Felder
595 // das Doc modified setzt.
596 if( !bModified )
597 rSh.ResetModified();
598
599 pModule->ApplyUsrPref( *pOpt, this, bWebView ? VIEWOPT_DEST_WEB : VIEWOPT_DEST_TEXT );
600
601 //mod #i6193# let postits know about new spellcheck setting
602 if ( nSlot == SID_AUTOSPELL_CHECK )
603 GetPostItMgr()->SetSpellChecking();
604
605 const sal_Bool bLockedView = rSh.IsViewLocked();
606 rSh.LockView( sal_True ); //lock visible section
607 GetWrtShell().EndAction();
608 if( bBrowseModeChanged && !bFlag )
609 CalcVisArea( GetEditWin().GetOutputSizePixel() );
610 rSh.LockView( bLockedView );
611
612 delete pOpt;
613 Invalidate(rReq.GetSlot());
614 if(!pArgs)
615 rReq.AppendItem(SfxBoolItem(nSlot, (sal_Bool)bFlag));
616 rReq.Done();
617 }
618
IMPL_LINK(SwView,HtmlOptionsHdl,void *,EMPTYARG)619 IMPL_LINK( SwView, HtmlOptionsHdl, void*, EMPTYARG )
620 {
621 // Invalidierung, falls blinkender Text erlaubt/verboten wurde
622 GetViewFrame()->GetBindings().Invalidate(SID_DRAW_TEXT_MARQUEE);
623 return 0;
624 }
625