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 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 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 --------------------------------------------------*/ 142 view::XSelectionSupplier* SwView::GetUNOObject() 143 { 144 return pViewImpl->GetUNOObject(); 145 } 146 /* -----------------------------06.05.2002 13:18------------------------------ 147 148 ---------------------------------------------------------------------------*/ 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 -----------------------------------------------------------------------*/ 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 -----------------------------------------------------------------------*/ 169 SwMailMergeConfigItem* SwView::GetMailMergeConfigItem() 170 { 171 return pViewImpl->GetMailMergeConfigItem(); 172 } 173 /*-- 26.05.2004 09:14:25--------------------------------------------------- 174 175 -----------------------------------------------------------------------*/ 176 sal_uInt16 SwView::GetMailMergeRestartPage() const 177 { 178 return pViewImpl->GetMailMergeRestartPage(); 179 } 180 /*-- 03.09.2004 11:56:33--------------------------------------------------- 181 182 -----------------------------------------------------------------------*/ 183 sal_Bool SwView::IsMailMergeSourceView() const 184 { 185 return pViewImpl->IsMailMergeSourceView(); 186 } 187 /*-- 12.04.2006 11:51:40--------------------------------------------------- 188 189 -----------------------------------------------------------------------*/ 190 sal_Bool lcl_IsViewMarks( const SwViewOption& rVOpt ) 191 { 192 return rVOpt.IsHardBlank() && 193 rVOpt.IsSoftHyph() && 194 SwViewOption::IsFieldShadings(); 195 } 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 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 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 --------------------------------------------------------------------*/ 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 --------------------------------------------------------------------*/ 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 ASSERT(sal_False, Falsche Request-Methode); 571 return; 572 } 573 574 // UserPrefs setzen Request als bearbeitet kennzeichnen 575 sal_Bool bWebView = 0 != dynamic_cast<const SwWebView*>(this); 576 SwWrtShell &rSh = GetWrtShell(); 577 rSh.StartAction(); 578 SwModule* pModule = SW_MOD(); 579 if( !(*rSh.GetViewOptions() == *pOpt )) 580 { 581 rSh.ApplyViewOptions( *pOpt ); 582 if( bBrowseModeChanged ) 583 { 584 RecheckBrowseMode(); 585 CheckVisArea(); 586 } 587 588 //Die UsrPref muessen als Modified gekennzeichnet werden. 589 //call for initialization 590 pModule->GetUsrPref(bWebView); 591 pModule->CheckSpellChanges( pOpt->IsOnlineSpell(), sal_False, sal_False, sal_False ); 592 } 593 //OS: Modified wieder zuruecksetzen, weil Ansicht/Felder 594 // das Doc modified setzt. 595 if( !bModified ) 596 rSh.ResetModified(); 597 598 pModule->ApplyUsrPref( *pOpt, this, bWebView ? VIEWOPT_DEST_WEB : VIEWOPT_DEST_TEXT ); 599 600 //mod #i6193# let postits know about new spellcheck setting 601 if ( nSlot == SID_AUTOSPELL_CHECK ) 602 GetPostItMgr()->SetSpellChecking(); 603 604 const sal_Bool bLockedView = rSh.IsViewLocked(); 605 rSh.LockView( sal_True ); //lock visible section 606 GetWrtShell().EndAction(); 607 if( bBrowseModeChanged && !bFlag ) 608 CalcVisArea( GetEditWin().GetOutputSizePixel() ); 609 rSh.LockView( bLockedView ); 610 611 delete pOpt; 612 Invalidate(rReq.GetSlot()); 613 if(!pArgs) 614 rReq.AppendItem(SfxBoolItem(nSlot, (sal_Bool)bFlag)); 615 rReq.Done(); 616 } 617 618 IMPL_LINK( SwView, HtmlOptionsHdl, void*, EMPTYARG ) 619 { 620 // Invalidierung, falls blinkender Text erlaubt/verboten wurde 621 GetViewFrame()->GetBindings().Invalidate(SID_DRAW_TEXT_MARQUEE); 622 return 0; 623 } 624