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 #include <svx/htmlmode.hxx> 29 #include <svtools/htmlcfg.hxx> 30 31 #ifndef _SVX_SVXIDS_HRC //autogen 32 #include <svx/svxids.hrc> 33 #endif 34 #include <editeng/svxenum.hxx> 35 #include <editeng/svxacorr.hxx> 36 #include <unotools/localedatawrapper.hxx> 37 #ifndef _REGION_HXX //autogen 38 #include <vcl/region.hxx> 39 #endif 40 #ifndef _OUTDEV_HXX //autogen 41 #include <vcl/outdev.hxx> 42 #endif 43 #include <vcl/window.hxx> 44 #include <swmodule.hxx> 45 #include <swtypes.hxx> 46 #include <viewopt.hxx> 47 #ifndef _WDOCSH_HXX 48 #include <wdocsh.hxx> 49 #endif 50 #include <swrect.hxx> 51 #include <crstate.hxx> 52 #include <svtools/colorcfg.hxx> 53 #include <svtools/accessibilityoptions.hxx> 54 #include <unotools/syslocale.hxx> 55 56 #include <editeng/acorrcfg.hxx> 57 58 #ifdef DBG_UTIL 59 sal_Bool SwViewOption::bTest9 = sal_False; //DrawingLayerNotLoading 60 #endif 61 Color SwViewOption::aDocBoundColor(COL_LIGHTGRAY); 62 Color SwViewOption::aObjectBoundColor(COL_LIGHTGRAY); 63 Color SwViewOption::aDocColor(COL_LIGHTGRAY); 64 Color SwViewOption::aAppBackgroundColor(COL_LIGHTGRAY); 65 Color SwViewOption::aTableBoundColor(COL_LIGHTGRAY); 66 Color SwViewOption::aIndexShadingsColor(COL_LIGHTGRAY); 67 Color SwViewOption::aLinksColor(COL_BLUE); 68 Color SwViewOption::aVisitedLinksColor(COL_RED); 69 Color SwViewOption::aDirectCursorColor(COL_BLUE); 70 Color SwViewOption::aTextGridColor(COL_LIGHTGRAY); 71 Color SwViewOption::aSpellColor(COL_LIGHTRED); 72 Color SwViewOption::aSmarttagColor(COL_LIGHTMAGENTA); 73 Color SwViewOption::aFontColor(COL_BLACK); 74 Color SwViewOption::aFieldShadingsColor(COL_LIGHTGRAY); 75 Color SwViewOption::aSectionBoundColor(COL_LIGHTGRAY); 76 Color SwViewOption::aPageBreakColor(COL_BLUE); 77 Color SwViewOption::aScriptIndicatorColor(COL_GREEN); 78 79 sal_Int32 SwViewOption::nAppearanceFlags = VIEWOPT_DOC_BOUNDARIES|VIEWOPT_OBJECT_BOUNDARIES; 80 sal_uInt16 SwViewOption::nPixelTwips = 0; //ein Pixel auf dem Bildschirm 81 82 83 #define LINEBREAK_SIZE 12, 8 84 #define TAB_SIZE 12, 6 85 86 #define MIN_BLANKWIDTH 40 87 #define MIN_BLANKHEIGHT 40 88 #define MIN_TABWIDTH 120 89 #define MIN_TABHEIGHT 200 90 91 static const char __FAR_DATA aPostItStr[] = " "; 92 93 /************************************************************************* 94 * SwViewOption::IsEqualFlags() 95 *************************************************************************/ 96 97 sal_Bool SwViewOption::IsEqualFlags( const SwViewOption &rOpt ) const 98 { 99 return nCoreOptions == rOpt.nCoreOptions 100 && nCore2Options == rOpt.nCore2Options 101 && aSnapSize == rOpt.aSnapSize 102 && mnViewLayoutColumns == rOpt.mnViewLayoutColumns 103 && nDivisionX == rOpt.GetDivisionX() 104 && nDivisionY == rOpt.GetDivisionY() 105 && nPagePrevRow == rOpt.GetPagePrevRow() 106 && nPagePrevCol == rOpt.GetPagePrevCol() 107 && aRetoucheColor == rOpt.GetRetoucheColor() 108 && mbFormView == rOpt.IsFormView() 109 && mbBrowseMode == rOpt.getBrowseMode() 110 && mbViewLayoutBookMode == rOpt.mbViewLayoutBookMode 111 && bShowPlaceHolderFields == rOpt.bShowPlaceHolderFields 112 && bIdle == rOpt.bIdle 113 #ifdef DBG_UTIL 114 // korrespondieren zu den Angaben in ui/config/cfgvw.src 115 && bTest1 == rOpt.IsTest1() 116 && bTest2 == rOpt.IsTest2() 117 && bTest3 == rOpt.IsTest3() 118 && bTest4 == rOpt.IsTest4() 119 && bTest5 == rOpt.IsTest5() 120 && bTest6 == rOpt.IsTest6() 121 && bTest7 == rOpt.IsTest7() 122 && bTest8 == rOpt.IsTest8() 123 && bTest10 == rOpt.IsTest10() 124 #endif 125 ; 126 } 127 128 /************************************************************************* 129 * SwViewOption::DrawRect() 130 *************************************************************************/ 131 132 void SwViewOption::DrawRect( OutputDevice *pOut, 133 const SwRect &rRect, long nCol ) const 134 { 135 if ( pOut->GetOutDevType() != OUTDEV_PRINTER ) 136 { 137 const Color aCol( nCol ); 138 const Color aOldColor( pOut->GetFillColor() ); 139 pOut->SetFillColor( aCol ); 140 pOut->DrawRect( rRect.SVRect() ); 141 pOut->SetFillColor( aOldColor ); 142 } 143 else 144 DrawRectPrinter( pOut, rRect ); 145 } 146 147 /************************************************************************* 148 * SwViewOption::DrawRectPrinter() 149 *************************************************************************/ 150 151 void SwViewOption::DrawRectPrinter( OutputDevice *pOut, 152 const SwRect &rRect ) const 153 { 154 Color aOldColor(pOut->GetLineColor()); 155 Color aOldFillColor( pOut->GetFillColor() ); 156 pOut->SetLineColor( Color(COL_BLACK) ); 157 pOut->SetFillColor( Color(COL_TRANSPARENT )); 158 pOut->DrawRect( rRect.SVRect() ); 159 pOut->SetFillColor( aOldFillColor ); 160 pOut->SetLineColor( aOldColor ); 161 } 162 163 /************************************************************************* 164 * SwViewOption::GetPostItsWidth() 165 *************************************************************************/ 166 167 sal_uInt16 SwViewOption::GetPostItsWidth( const OutputDevice *pOut ) const 168 { 169 ASSERT( pOut, "no Outdev" ); 170 return sal_uInt16(pOut->GetTextWidth( String::CreateFromAscii(aPostItStr ))); 171 } 172 173 /************************************************************************* 174 * SwViewOption::PaintPostIts() 175 *************************************************************************/ 176 177 void SwViewOption::PaintPostIts( OutputDevice *pOut, const SwRect &rRect, sal_Bool bIsScript ) const 178 { 179 if( pOut && bIsScript ) 180 { 181 Color aOldLineColor( pOut->GetLineColor() ); 182 pOut->SetLineColor( Color(COL_GRAY ) ); 183 // Wir ziehen ueberall zwei Pixel ab, damit es schick aussieht 184 sal_uInt16 nPix = GetPixelTwips() * 2; 185 if( rRect.Width() <= 2 * nPix || rRect.Height() <= 2 * nPix ) 186 nPix = 0; 187 const Point aTopLeft( rRect.Left() + nPix, rRect.Top() + nPix ); 188 const Point aBotRight( rRect.Right() - nPix, rRect.Bottom() - nPix ); 189 const SwRect aRect( aTopLeft, aBotRight ); 190 DrawRect( pOut, aRect, aScriptIndicatorColor.GetColor() ); 191 pOut->SetLineColor( aOldLineColor ); 192 } 193 } 194 195 196 /************************************************************************* 197 |* 198 |* ViewOption::ViewOption() 199 |* 200 |* Letzte Aenderung MA 04. Aug. 93 201 |* 202 |*************************************************************************/ 203 204 SwViewOption::SwViewOption() : 205 aRetoucheColor( COL_TRANSPARENT ), 206 mnViewLayoutColumns( 0 ), 207 nPagePrevRow( 1 ), 208 nPagePrevCol( 2 ), 209 nShdwCrsrFillMode( FILL_TAB ), 210 bReadonly(sal_False), 211 bStarOneSetting(sal_False), 212 bIsPagePreview(sal_False), 213 bSelectionInReadonly(sal_False), 214 mbFormView(sal_False), 215 mbBrowseMode(sal_False), 216 mbBookView(sal_False), 217 mbViewLayoutBookMode(sal_False), 218 bShowPlaceHolderFields( sal_True ), 219 220 nZoom( 100 ), 221 eZoom( SVX_ZOOM_PERCENT ), 222 nTblDest(TBL_DEST_CELL) 223 { 224 // Initialisierung ist jetzt etwas einfacher 225 // alle Bits auf 0 226 nCoreOptions = VIEWOPT_1_HARDBLANK | VIEWOPT_1_SOFTHYPH | 227 VIEWOPT_1_REF | 228 VIEWOPT_1_GRAPHIC | 229 VIEWOPT_1_TABLE | VIEWOPT_1_DRAW | VIEWOPT_1_CONTROL | 230 VIEWOPT_1_PAGEBACK | 231 VIEWOPT_1_SOLIDMARKHDL | VIEWOPT_1_POSTITS; 232 nCore2Options = VIEWOPT_CORE2_BLACKFONT | VIEWOPT_CORE2_HIDDENPARA; 233 nUIOptions = VIEWOPT_2_MODIFIED | VIEWOPT_2_GRFKEEPZOOM |VIEWOPT_2_ANY_RULER; 234 235 if(MEASURE_METRIC != SvtSysLocale().GetLocaleData().getMeasurementSystemEnum()) 236 aSnapSize.Width() = aSnapSize.Height() = 720; // 1/2" 237 else 238 aSnapSize.Width() = aSnapSize.Height() = 567; // 1 cm 239 nDivisionX = nDivisionY = 1; 240 241 bSelectionInReadonly = SW_MOD()->GetAccessibilityOptions().IsSelectionInReadonly(); 242 243 bIdle = true; 244 245 #ifdef DBG_UTIL 246 // korrespondieren zu den Angaben in ui/config/cfgvw.src 247 bTest1 = bTest2 = bTest3 = bTest4 = 248 bTest5 = bTest6 = bTest7 = bTest8 = bTest10 = sal_False; 249 #endif 250 } 251 252 SwViewOption::SwViewOption(const SwViewOption& rVOpt) 253 { 254 bReadonly = sal_False; 255 bSelectionInReadonly = sal_False; 256 // --> FME 2004-06-29 #114856# Formular view 257 mbFormView = rVOpt.mbFormView; 258 // <-- 259 nZoom = rVOpt.nZoom ; 260 aSnapSize = rVOpt.aSnapSize ; 261 mnViewLayoutColumns = rVOpt.mnViewLayoutColumns ; 262 nDivisionX = rVOpt.nDivisionX ; 263 nDivisionY = rVOpt.nDivisionY ; 264 nPagePrevRow = rVOpt.nPagePrevRow; 265 nPagePrevCol = rVOpt.nPagePrevCol; 266 bIsPagePreview = rVOpt.bIsPagePreview; 267 eZoom = rVOpt.eZoom ; 268 nTblDest = rVOpt.nTblDest ; 269 nUIOptions = rVOpt.nUIOptions ; 270 nCoreOptions = rVOpt.nCoreOptions ; 271 nCore2Options = rVOpt.nCore2Options ; 272 aRetoucheColor = rVOpt.GetRetoucheColor(); 273 sSymbolFont = rVOpt.sSymbolFont; 274 nShdwCrsrFillMode = rVOpt.nShdwCrsrFillMode; 275 bStarOneSetting = rVOpt.bStarOneSetting; 276 mbBookView = rVOpt.mbBookView; 277 mbBrowseMode = rVOpt.mbBrowseMode; 278 mbViewLayoutBookMode = rVOpt.mbViewLayoutBookMode; 279 bShowPlaceHolderFields = rVOpt.bShowPlaceHolderFields; 280 bIdle = rVOpt.bIdle; 281 282 #ifdef DBG_UTIL 283 bTest1 = rVOpt.bTest1 ; 284 bTest2 = rVOpt.bTest2 ; 285 bTest3 = rVOpt.bTest3 ; 286 bTest4 = rVOpt.bTest4 ; 287 bTest5 = rVOpt.bTest5 ; 288 bTest6 = rVOpt.bTest6 ; 289 bTest7 = rVOpt.bTest7 ; 290 bTest8 = rVOpt.bTest8 ; 291 bTest10 = rVOpt.bTest10 ; 292 #endif 293 } 294 295 296 SwViewOption& SwViewOption::operator=( const SwViewOption &rVOpt ) 297 { 298 // --> DVO FME 2004-06-29 #114856# Formular view 299 mbFormView = rVOpt.mbFormView ; 300 // <-- 301 nZoom = rVOpt.nZoom ; 302 aSnapSize = rVOpt.aSnapSize ; 303 mnViewLayoutColumns = rVOpt.mnViewLayoutColumns ; 304 nDivisionX = rVOpt.nDivisionX ; 305 nDivisionY = rVOpt.nDivisionY ; 306 nPagePrevRow = rVOpt.nPagePrevRow; 307 nPagePrevCol = rVOpt.nPagePrevCol; 308 bIsPagePreview = rVOpt.bIsPagePreview; 309 eZoom = rVOpt.eZoom ; 310 nTblDest = rVOpt.nTblDest ; 311 nUIOptions = rVOpt.nUIOptions ; 312 nCoreOptions = rVOpt.nCoreOptions; 313 nCore2Options = rVOpt.nCore2Options; 314 aRetoucheColor = rVOpt.GetRetoucheColor(); 315 sSymbolFont = rVOpt.sSymbolFont; 316 nShdwCrsrFillMode = rVOpt.nShdwCrsrFillMode; 317 bStarOneSetting = rVOpt.bStarOneSetting; 318 mbBookView = rVOpt.mbBookView; 319 mbBrowseMode = rVOpt.mbBrowseMode; 320 mbViewLayoutBookMode = rVOpt.mbViewLayoutBookMode; 321 bShowPlaceHolderFields = rVOpt.bShowPlaceHolderFields; 322 bIdle = rVOpt.bIdle; 323 324 #ifdef DBG_UTIL 325 bTest1 = rVOpt.bTest1 ; 326 bTest2 = rVOpt.bTest2 ; 327 bTest3 = rVOpt.bTest3 ; 328 bTest4 = rVOpt.bTest4 ; 329 bTest5 = rVOpt.bTest5 ; 330 bTest6 = rVOpt.bTest6 ; 331 bTest7 = rVOpt.bTest7 ; 332 bTest8 = rVOpt.bTest8 ; 333 bTest10 = rVOpt.bTest10 ; 334 #endif 335 return *this; 336 } 337 338 339 SwViewOption::~SwViewOption() 340 { 341 } 342 343 /************************************************************************* 344 |* 345 |* ViewOption::Init() 346 |* 347 |* Letzte Aenderung MA 04. Aug. 93 348 |* 349 |*************************************************************************/ 350 351 void SwViewOption::Init( Window *pWin ) 352 { 353 if( !nPixelTwips && pWin ) 354 { 355 nPixelTwips = (sal_uInt16)pWin->PixelToLogic( Size(1,1) ).Height(); 356 } 357 } 358 359 sal_Bool SwViewOption::IsAutoCompleteWords() const 360 { 361 const SvxSwAutoFmtFlags& rFlags = SvxAutoCorrCfg::Get()->GetAutoCorrect()->GetSwFlags(); 362 return /*rFlags.bAutoCompleteWords &&*/ rFlags.bAutoCmpltCollectWords; 363 } 364 365 /*************************************************************************/ 366 /* */ 367 /*************************************************************************/ 368 369 AuthorCharAttr::AuthorCharAttr() : 370 nItemId (SID_ATTR_CHAR_UNDERLINE), 371 nAttr (UNDERLINE_SINGLE), 372 nColor (COL_TRANSPARENT) 373 { 374 } 375 376 /*-----------------07.01.97 13.50------------------- 377 378 --------------------------------------------------*/ 379 380 sal_uInt16 GetHtmlMode(const SwDocShell* pShell) 381 { 382 sal_uInt16 nRet = 0; 383 if(!pShell || PTR_CAST(SwWebDocShell, pShell)) 384 { 385 nRet = HTMLMODE_ON; 386 SvxHtmlOptions* pHtmlOpt = SvxHtmlOptions::Get(); 387 switch ( pHtmlOpt->GetExportMode() ) 388 { 389 case HTML_CFG_MSIE_40: 390 nRet |= HTMLMODE_PARA_BORDER|HTMLMODE_SMALL_CAPS| 391 HTMLMODE_SOME_STYLES| 392 HTMLMODE_FULL_STYLES|HTMLMODE_GRAPH_POS| 393 HTMLMODE_FULL_ABS_POS|HTMLMODE_SOME_ABS_POS; 394 break; 395 case HTML_CFG_NS40: 396 nRet |= HTMLMODE_PARA_BORDER|HTMLMODE_SOME_STYLES| 397 HTMLMODE_FRM_COLUMNS|HTMLMODE_BLINK|HTMLMODE_GRAPH_POS| 398 HTMLMODE_SOME_ABS_POS; 399 break; 400 case HTML_CFG_WRITER: 401 nRet |= HTMLMODE_PARA_BORDER|HTMLMODE_SMALL_CAPS| 402 HTMLMODE_SOME_STYLES| 403 HTMLMODE_FRM_COLUMNS|HTMLMODE_FULL_STYLES| 404 HTMLMODE_BLINK|HTMLMODE_DROPCAPS|HTMLMODE_GRAPH_POS| 405 HTMLMODE_FULL_ABS_POS|HTMLMODE_SOME_ABS_POS; 406 break; 407 case HTML_CFG_HTML32: 408 break; 409 } 410 } 411 return nRet; 412 } 413 /* -----------------------------24.04.2002 10:20------------------------------ 414 415 ---------------------------------------------------------------------------*/ 416 Color& SwViewOption::GetDocColor() 417 { 418 return aDocColor; 419 } 420 /* -----------------------------23.04.2002 17:18------------------------------ 421 422 ---------------------------------------------------------------------------*/ 423 Color& SwViewOption::GetDocBoundariesColor() 424 { 425 return aDocBoundColor; 426 } 427 /* -----------------------------23.04.2002 17:53------------------------------ 428 429 ---------------------------------------------------------------------------*/ 430 Color& SwViewOption::GetObjectBoundariesColor() 431 { 432 return aObjectBoundColor; 433 } 434 /* -----------------------------24.04.2002 10:41------------------------------ 435 436 ---------------------------------------------------------------------------*/ 437 Color& SwViewOption::GetAppBackgroundColor() 438 { 439 return aAppBackgroundColor; 440 } 441 /*-- 24.04.2002 10:50:11--------------------------------------------------- 442 443 -----------------------------------------------------------------------*/ 444 Color& SwViewOption::GetTableBoundariesColor() 445 { 446 return aTableBoundColor; 447 } 448 /*-- 24.04.2002 10:50:12--------------------------------------------------- 449 450 -----------------------------------------------------------------------*/ 451 Color& SwViewOption::GetIndexShadingsColor() 452 { 453 return aIndexShadingsColor; 454 } 455 /*-- 24.04.2002 10:50:12--------------------------------------------------- 456 457 -----------------------------------------------------------------------*/ 458 Color& SwViewOption::GetLinksColor() 459 { 460 return aLinksColor; 461 } 462 /*-- 24.04.2002 10:50:13--------------------------------------------------- 463 464 -----------------------------------------------------------------------*/ 465 Color& SwViewOption::GetVisitedLinksColor() 466 { 467 return aVisitedLinksColor; 468 } 469 /*-- 24.04.2002 10:50:13--------------------------------------------------- 470 471 -----------------------------------------------------------------------*/ 472 Color& SwViewOption::GetDirectCursorColor() 473 { 474 return aDirectCursorColor; 475 } 476 /*-- 24.04.2002 10:50:14--------------------------------------------------- 477 478 -----------------------------------------------------------------------*/ 479 Color& SwViewOption::GetTextGridColor() 480 { 481 return aTextGridColor; 482 } 483 /*-- 24.04.2002 10:50:14--------------------------------------------------- 484 485 -----------------------------------------------------------------------*/ 486 Color& SwViewOption::GetSpellColor() 487 { 488 return aSpellColor; 489 } 490 /*-- 24.04.2007 10:50:14--------------------------------------------------- 491 492 -----------------------------------------------------------------------*/ 493 Color& SwViewOption::GetSmarttagColor() 494 { 495 return aSmarttagColor; 496 } 497 /*-- 06.12.2002 10:50:11--------------------------------------------------- 498 499 -----------------------------------------------------------------------*/ 500 Color& SwViewOption::GetFontColor() 501 { 502 return aFontColor; 503 } 504 /*-- 24.04.2002 10:50:15--------------------------------------------------- 505 506 -----------------------------------------------------------------------*/ 507 Color& SwViewOption::GetFieldShadingsColor() 508 { 509 return aFieldShadingsColor; 510 } 511 /*-- 24.04.2002 10:50:15--------------------------------------------------- 512 513 -----------------------------------------------------------------------*/ 514 Color& SwViewOption::GetSectionBoundColor() 515 { 516 return aSectionBoundColor; 517 } 518 /* -----------------------------2002/07/31 14:00------------------------------ 519 520 ---------------------------------------------------------------------------*/ 521 Color& SwViewOption::GetPageBreakColor() 522 { 523 return aPageBreakColor; 524 } 525 526 /* -----------------------------23.04.2002 17:41------------------------------ 527 528 ---------------------------------------------------------------------------*/ 529 void SwViewOption::ApplyColorConfigValues(const svtools::ColorConfig& rConfig ) 530 { 531 aDocColor.SetColor(rConfig.GetColorValue(svtools::DOCCOLOR).nColor); 532 533 svtools::ColorConfigValue aValue = rConfig.GetColorValue(svtools::DOCBOUNDARIES); 534 aDocBoundColor.SetColor(aValue.nColor); 535 nAppearanceFlags = 0; 536 if(aValue.bIsVisible) 537 nAppearanceFlags |= VIEWOPT_DOC_BOUNDARIES; 538 539 aAppBackgroundColor.SetColor(rConfig.GetColorValue(svtools::APPBACKGROUND).nColor); 540 541 aValue = rConfig.GetColorValue(svtools::OBJECTBOUNDARIES); 542 aObjectBoundColor.SetColor(aValue.nColor); 543 if(aValue.bIsVisible) 544 nAppearanceFlags |= VIEWOPT_OBJECT_BOUNDARIES; 545 546 aValue = rConfig.GetColorValue(svtools::TABLEBOUNDARIES); 547 aTableBoundColor.SetColor(aValue.nColor); 548 if(aValue.bIsVisible) 549 nAppearanceFlags |= VIEWOPT_TABLE_BOUNDARIES; 550 551 aValue = rConfig.GetColorValue(svtools::WRITERIDXSHADINGS); 552 aIndexShadingsColor.SetColor(aValue.nColor); 553 if(aValue.bIsVisible) 554 nAppearanceFlags |= VIEWOPT_INDEX_SHADINGS; 555 556 aValue = rConfig.GetColorValue(svtools::LINKS); 557 aLinksColor.SetColor(aValue.nColor); 558 if(aValue.bIsVisible) 559 nAppearanceFlags |= VIEWOPT_LINKS; 560 561 aValue = rConfig.GetColorValue(svtools::LINKSVISITED); 562 aVisitedLinksColor.SetColor(aValue.nColor); 563 if(aValue.bIsVisible) 564 nAppearanceFlags |= VIEWOPT_VISITED_LINKS; 565 566 aDirectCursorColor.SetColor(rConfig.GetColorValue(svtools::WRITERDIRECTCURSOR).nColor); 567 568 aTextGridColor.SetColor(rConfig.GetColorValue(svtools::WRITERTEXTGRID).nColor); 569 570 aSpellColor.SetColor(rConfig.GetColorValue(svtools::SPELL).nColor); 571 572 aSmarttagColor.SetColor(rConfig.GetColorValue(svtools::SMARTTAGS).nColor); 573 574 aFontColor.SetColor(rConfig.GetColorValue(svtools::FONTCOLOR).nColor); 575 576 aValue = rConfig.GetColorValue(svtools::WRITERFIELDSHADINGS); 577 aFieldShadingsColor.SetColor(aValue.nColor); 578 if(aValue.bIsVisible) 579 nAppearanceFlags |= VIEWOPT_FIELD_SHADINGS; 580 581 aValue = rConfig.GetColorValue(svtools::WRITERSECTIONBOUNDARIES); 582 aSectionBoundColor.SetColor(aValue.nColor); 583 if(aValue.bIsVisible) 584 nAppearanceFlags |= VIEWOPT_SECTION_BOUNDARIES; 585 586 aValue = rConfig.GetColorValue(svtools::WRITERPAGEBREAKS); 587 aPageBreakColor.SetColor(aValue.nColor); 588 589 aScriptIndicatorColor.SetColor(rConfig.GetColorValue(svtools::WRITERSCRIPTINDICATOR).nColor); 590 } 591 /* -----------------------------23.04.2002 17:48------------------------------ 592 593 ---------------------------------------------------------------------------*/ 594 void SwViewOption::SetAppearanceFlag(sal_Int32 nFlag, sal_Bool bSet, sal_Bool bSaveInConfig ) 595 { 596 if(bSet) 597 nAppearanceFlags |= nFlag; 598 else 599 nAppearanceFlags &= ~nFlag; 600 if(bSaveInConfig) 601 { 602 //create an editable svtools::ColorConfig and store the change 603 svtools::EditableColorConfig aEditableConfig; 604 struct FlagToConfig_Impl 605 { 606 sal_Int32 nFlag; 607 svtools::ColorConfigEntry eEntry; 608 }; 609 static const FlagToConfig_Impl aFlags[] = 610 { 611 { VIEWOPT_DOC_BOUNDARIES , svtools::DOCBOUNDARIES }, 612 { VIEWOPT_OBJECT_BOUNDARIES , svtools::OBJECTBOUNDARIES }, 613 { VIEWOPT_TABLE_BOUNDARIES , svtools::TABLEBOUNDARIES }, 614 { VIEWOPT_INDEX_SHADINGS , svtools::WRITERIDXSHADINGS }, 615 { VIEWOPT_LINKS , svtools::LINKS }, 616 { VIEWOPT_VISITED_LINKS , svtools::LINKSVISITED }, 617 { VIEWOPT_FIELD_SHADINGS , svtools::WRITERFIELDSHADINGS }, 618 { VIEWOPT_SECTION_BOUNDARIES , svtools::WRITERSECTIONBOUNDARIES }, 619 { 0 , svtools::ColorConfigEntryCount } 620 }; 621 sal_uInt16 nPos = 0; 622 while(aFlags[nPos].nFlag) 623 { 624 if(0 != (nFlag&aFlags[nPos].nFlag)) 625 { 626 svtools::ColorConfigValue aValue = aEditableConfig.GetColorValue(aFlags[nPos].eEntry); 627 aValue.bIsVisible = bSet; 628 aEditableConfig.SetColorValue(aFlags[nPos].eEntry, aValue); 629 } 630 nPos++; 631 } 632 } 633 } 634 /* -----------------------------24.04.2002 10:42------------------------------ 635 636 ---------------------------------------------------------------------------*/ 637 sal_Bool SwViewOption::IsAppearanceFlag(sal_Int32 nFlag) 638 { 639 return 0 != (nAppearanceFlags & nFlag); 640 } 641 642