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