diff options
Diffstat (limited to 'sw/source/ui/config/viewopt.cxx')
-rw-r--r-- | sw/source/ui/config/viewopt.cxx | 645 |
1 files changed, 645 insertions, 0 deletions
diff --git a/sw/source/ui/config/viewopt.cxx b/sw/source/ui/config/viewopt.cxx new file mode 100644 index 000000000000..b68c531e61ee --- /dev/null +++ b/sw/source/ui/config/viewopt.cxx @@ -0,0 +1,645 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_sw.hxx" + + +#include <svx/htmlmode.hxx> +#include <svtools/htmlcfg.hxx> + +#ifndef _SVX_SVXIDS_HRC //autogen +#include <svx/svxids.hrc> +#endif +#include <editeng/svxenum.hxx> +#include <editeng/svxacorr.hxx> +#include <unotools/localedatawrapper.hxx> +#ifndef _REGION_HXX //autogen +#include <vcl/region.hxx> +#endif +#ifndef _OUTDEV_HXX //autogen +#include <vcl/outdev.hxx> +#endif +#include <vcl/window.hxx> +#include <swmodule.hxx> +#include <swtypes.hxx> +#include <viewopt.hxx> +#ifndef _WDOCSH_HXX +#include <wdocsh.hxx> +#endif +#include <swrect.hxx> +#include <crstate.hxx> +#include <svtools/colorcfg.hxx> +#include <svtools/accessibilityoptions.hxx> +#include <unotools/syslocale.hxx> + +#include <editeng/acorrcfg.hxx> + +#ifdef DBG_UTIL +sal_Bool SwViewOption::bTest9 = sal_False; //DrawingLayerNotLoading +#endif +Color SwViewOption::aDocBoundColor(COL_LIGHTGRAY); +Color SwViewOption::aObjectBoundColor(COL_LIGHTGRAY); +Color SwViewOption::aDocColor(COL_LIGHTGRAY); +Color SwViewOption::aAppBackgroundColor(COL_LIGHTGRAY); +Color SwViewOption::aTableBoundColor(COL_LIGHTGRAY); +Color SwViewOption::aIndexShadingsColor(COL_LIGHTGRAY); +Color SwViewOption::aLinksColor(COL_BLUE); +Color SwViewOption::aVisitedLinksColor(COL_RED); +Color SwViewOption::aDirectCursorColor(COL_BLUE); +Color SwViewOption::aTextGridColor(COL_LIGHTGRAY); +Color SwViewOption::aSpellColor(COL_LIGHTRED); +Color SwViewOption::aSmarttagColor(COL_LIGHTMAGENTA); +Color SwViewOption::aFontColor(COL_BLACK); +Color SwViewOption::aFieldShadingsColor(COL_LIGHTGRAY); +Color SwViewOption::aSectionBoundColor(COL_LIGHTGRAY); +Color SwViewOption::aPageBreakColor(COL_BLUE); +Color SwViewOption::aScriptIndicatorColor(COL_GREEN); + +sal_Int32 SwViewOption::nAppearanceFlags = VIEWOPT_DOC_BOUNDARIES|VIEWOPT_OBJECT_BOUNDARIES; +sal_uInt16 SwViewOption::nPixelTwips = 0; //ein Pixel auf dem Bildschirm + + +#define LINEBREAK_SIZE 12, 8 +#define TAB_SIZE 12, 6 + +#define MIN_BLANKWIDTH 40 +#define MIN_BLANKHEIGHT 40 +#define MIN_TABWIDTH 120 +#define MIN_TABHEIGHT 200 + +static const char __FAR_DATA aPostItStr[] = " "; + +/************************************************************************* + * SwViewOption::IsEqualFlags() + *************************************************************************/ + +sal_Bool SwViewOption::IsEqualFlags( const SwViewOption &rOpt ) const +{ + return nCoreOptions == rOpt.nCoreOptions + && nCore2Options == rOpt.nCore2Options + && aSnapSize == rOpt.aSnapSize + && mnViewLayoutColumns == rOpt.mnViewLayoutColumns + && nDivisionX == rOpt.GetDivisionX() + && nDivisionY == rOpt.GetDivisionY() + && nPagePrevRow == rOpt.GetPagePrevRow() + && nPagePrevCol == rOpt.GetPagePrevCol() + && aRetoucheColor == rOpt.GetRetoucheColor() + && mbFormView == rOpt.IsFormView() + && mbBrowseMode == rOpt.getBrowseMode() + && mbViewLayoutBookMode == rOpt.mbViewLayoutBookMode + && bShowPlaceHolderFields == rOpt.bShowPlaceHolderFields + && bIdle == rOpt.bIdle +#ifdef DBG_UTIL + // korrespondieren zu den Angaben in ui/config/cfgvw.src + && bTest1 == rOpt.IsTest1() + && bTest2 == rOpt.IsTest2() + && bTest3 == rOpt.IsTest3() + && bTest4 == rOpt.IsTest4() + && bTest5 == rOpt.IsTest5() + && bTest6 == rOpt.IsTest6() + && bTest7 == rOpt.IsTest7() + && bTest8 == rOpt.IsTest8() + && bTest10 == rOpt.IsTest10() +#endif + ; +} + +/************************************************************************* + * SwViewOption::DrawRect() + *************************************************************************/ + +void SwViewOption::DrawRect( OutputDevice *pOut, + const SwRect &rRect, long nCol ) const +{ + if ( pOut->GetOutDevType() != OUTDEV_PRINTER ) + { + const Color aCol( nCol ); + const Color aOldColor( pOut->GetFillColor() ); + pOut->SetFillColor( aCol ); + pOut->DrawRect( rRect.SVRect() ); + pOut->SetFillColor( aOldColor ); + } + else + DrawRectPrinter( pOut, rRect ); +} + +/************************************************************************* + * SwViewOption::DrawRectPrinter() + *************************************************************************/ + +void SwViewOption::DrawRectPrinter( OutputDevice *pOut, + const SwRect &rRect ) const +{ + Color aOldColor(pOut->GetLineColor()); + Color aOldFillColor( pOut->GetFillColor() ); + pOut->SetLineColor( Color(COL_BLACK) ); + pOut->SetFillColor( Color(COL_TRANSPARENT )); + pOut->DrawRect( rRect.SVRect() ); + pOut->SetFillColor( aOldFillColor ); + pOut->SetLineColor( aOldColor ); +} + +/************************************************************************* + * SwViewOption::GetPostItsWidth() + *************************************************************************/ + +sal_uInt16 SwViewOption::GetPostItsWidth( const OutputDevice *pOut ) const +{ + ASSERT( pOut, "no Outdev" ); + return sal_uInt16(pOut->GetTextWidth( String::CreateFromAscii(aPostItStr ))); +} + +/************************************************************************* + * SwViewOption::PaintPostIts() + *************************************************************************/ + +void SwViewOption::PaintPostIts( OutputDevice *pOut, const SwRect &rRect, sal_Bool bIsScript ) const +{ + if( pOut && bIsScript ) + { + Color aOldLineColor( pOut->GetLineColor() ); + pOut->SetLineColor( Color(COL_GRAY ) ); + // Wir ziehen ueberall zwei Pixel ab, damit es schick aussieht + sal_uInt16 nPix = GetPixelTwips() * 2; + if( rRect.Width() <= 2 * nPix || rRect.Height() <= 2 * nPix ) + nPix = 0; + const Point aTopLeft( rRect.Left() + nPix, rRect.Top() + nPix ); + const Point aBotRight( rRect.Right() - nPix, rRect.Bottom() - nPix ); + const SwRect aRect( aTopLeft, aBotRight ); + DrawRect( pOut, aRect, aScriptIndicatorColor.GetColor() ); + pOut->SetLineColor( aOldLineColor ); + } +} + + +/************************************************************************* +|* +|* ViewOption::ViewOption() +|* +|* Letzte Aenderung MA 04. Aug. 93 +|* +|*************************************************************************/ + +SwViewOption::SwViewOption() : + aRetoucheColor( COL_TRANSPARENT ), + mnViewLayoutColumns( 0 ), + nPagePrevRow( 1 ), + nPagePrevCol( 2 ), + nShdwCrsrFillMode( FILL_TAB ), + bReadonly(sal_False), + bStarOneSetting(sal_False), + bIsPagePreview(sal_False), + bSelectionInReadonly(sal_False), + mbFormView(sal_False), + mbBrowseMode(sal_False), + mbBookView(sal_False), + mbViewLayoutBookMode(sal_False), + bShowPlaceHolderFields( sal_True ), + + nZoom( 100 ), + eZoom( SVX_ZOOM_PERCENT ), + nTblDest(TBL_DEST_CELL) +{ + // Initialisierung ist jetzt etwas einfacher + // alle Bits auf 0 + nCoreOptions = VIEWOPT_1_HARDBLANK | VIEWOPT_1_SOFTHYPH | + VIEWOPT_1_REF | + VIEWOPT_1_GRAPHIC | + VIEWOPT_1_TABLE | VIEWOPT_1_DRAW | VIEWOPT_1_CONTROL | + VIEWOPT_1_PAGEBACK | + VIEWOPT_1_SOLIDMARKHDL | VIEWOPT_1_POSTITS; + nCore2Options = VIEWOPT_CORE2_BLACKFONT | VIEWOPT_CORE2_HIDDENPARA; + nUIOptions = VIEWOPT_2_MODIFIED | VIEWOPT_2_GRFKEEPZOOM |VIEWOPT_2_ANY_RULER; + + if(MEASURE_METRIC != SvtSysLocale().GetLocaleData().getMeasurementSystemEnum()) + aSnapSize.Width() = aSnapSize.Height() = 720; // 1/2" + else + aSnapSize.Width() = aSnapSize.Height() = 567; // 1 cm + nDivisionX = nDivisionY = 1; + + bSelectionInReadonly = SW_MOD()->GetAccessibilityOptions().IsSelectionInReadonly(); + + bIdle = true; + +#ifdef DBG_UTIL + // korrespondieren zu den Angaben in ui/config/cfgvw.src + bTest1 = bTest2 = bTest3 = bTest4 = + bTest5 = bTest6 = bTest7 = bTest8 = bTest10 = sal_False; +#endif +} + +SwViewOption::SwViewOption(const SwViewOption& rVOpt) +{ + bReadonly = sal_False; + bSelectionInReadonly = sal_False; + // --> FME 2004-06-29 #114856# Formular view + mbFormView = rVOpt.mbFormView; + // <-- + nZoom = rVOpt.nZoom ; + aSnapSize = rVOpt.aSnapSize ; + mnViewLayoutColumns = rVOpt.mnViewLayoutColumns ; + nDivisionX = rVOpt.nDivisionX ; + nDivisionY = rVOpt.nDivisionY ; + nPagePrevRow = rVOpt.nPagePrevRow; + nPagePrevCol = rVOpt.nPagePrevCol; + bIsPagePreview = rVOpt.bIsPagePreview; + eZoom = rVOpt.eZoom ; + nTblDest = rVOpt.nTblDest ; + nUIOptions = rVOpt.nUIOptions ; + nCoreOptions = rVOpt.nCoreOptions ; + nCore2Options = rVOpt.nCore2Options ; + aRetoucheColor = rVOpt.GetRetoucheColor(); + sSymbolFont = rVOpt.sSymbolFont; + nShdwCrsrFillMode = rVOpt.nShdwCrsrFillMode; + bStarOneSetting = rVOpt.bStarOneSetting; + mbBookView = rVOpt.mbBookView; + mbBrowseMode = rVOpt.mbBrowseMode; + mbViewLayoutBookMode = rVOpt.mbViewLayoutBookMode; + bShowPlaceHolderFields = rVOpt.bShowPlaceHolderFields; + bIdle = rVOpt.bIdle; + +#ifdef DBG_UTIL + bTest1 = rVOpt.bTest1 ; + bTest2 = rVOpt.bTest2 ; + bTest3 = rVOpt.bTest3 ; + bTest4 = rVOpt.bTest4 ; + bTest5 = rVOpt.bTest5 ; + bTest6 = rVOpt.bTest6 ; + bTest7 = rVOpt.bTest7 ; + bTest8 = rVOpt.bTest8 ; + bTest10 = rVOpt.bTest10 ; +#endif +} + + +SwViewOption& SwViewOption::operator=( const SwViewOption &rVOpt ) +{ + // --> DVO FME 2004-06-29 #114856# Formular view + mbFormView = rVOpt.mbFormView ; + // <-- + nZoom = rVOpt.nZoom ; + aSnapSize = rVOpt.aSnapSize ; + mnViewLayoutColumns = rVOpt.mnViewLayoutColumns ; + nDivisionX = rVOpt.nDivisionX ; + nDivisionY = rVOpt.nDivisionY ; + nPagePrevRow = rVOpt.nPagePrevRow; + nPagePrevCol = rVOpt.nPagePrevCol; + bIsPagePreview = rVOpt.bIsPagePreview; + eZoom = rVOpt.eZoom ; + nTblDest = rVOpt.nTblDest ; + nUIOptions = rVOpt.nUIOptions ; + nCoreOptions = rVOpt.nCoreOptions; + nCore2Options = rVOpt.nCore2Options; + aRetoucheColor = rVOpt.GetRetoucheColor(); + sSymbolFont = rVOpt.sSymbolFont; + nShdwCrsrFillMode = rVOpt.nShdwCrsrFillMode; + bStarOneSetting = rVOpt.bStarOneSetting; + mbBookView = rVOpt.mbBookView; + mbBrowseMode = rVOpt.mbBrowseMode; + mbViewLayoutBookMode = rVOpt.mbViewLayoutBookMode; + bShowPlaceHolderFields = rVOpt.bShowPlaceHolderFields; + bIdle = rVOpt.bIdle; + +#ifdef DBG_UTIL + bTest1 = rVOpt.bTest1 ; + bTest2 = rVOpt.bTest2 ; + bTest3 = rVOpt.bTest3 ; + bTest4 = rVOpt.bTest4 ; + bTest5 = rVOpt.bTest5 ; + bTest6 = rVOpt.bTest6 ; + bTest7 = rVOpt.bTest7 ; + bTest8 = rVOpt.bTest8 ; + bTest10 = rVOpt.bTest10 ; +#endif + return *this; +} + + +SwViewOption::~SwViewOption() +{ +} + +/************************************************************************* +|* +|* ViewOption::Init() +|* +|* Letzte Aenderung MA 04. Aug. 93 +|* +|*************************************************************************/ + +void SwViewOption::Init( Window *pWin ) +{ + if( !nPixelTwips && pWin ) + { + nPixelTwips = (sal_uInt16)pWin->PixelToLogic( Size(1,1) ).Height(); + } +} + +sal_Bool SwViewOption::IsAutoCompleteWords() const +{ + const SvxSwAutoFmtFlags& rFlags = SvxAutoCorrCfg::Get()->GetAutoCorrect()->GetSwFlags(); + return /*rFlags.bAutoCompleteWords &&*/ rFlags.bAutoCmpltCollectWords; +} + +/*************************************************************************/ +/* */ +/*************************************************************************/ + +AuthorCharAttr::AuthorCharAttr() : + nItemId (SID_ATTR_CHAR_UNDERLINE), + nAttr (UNDERLINE_SINGLE), + nColor (COL_TRANSPARENT) +{ +} + +/*-----------------07.01.97 13.50------------------- + +--------------------------------------------------*/ + +sal_uInt16 GetHtmlMode(const SwDocShell* pShell) +{ + sal_uInt16 nRet = 0; + if(!pShell || PTR_CAST(SwWebDocShell, pShell)) + { + nRet = HTMLMODE_ON; + SvxHtmlOptions* pHtmlOpt = SvxHtmlOptions::Get(); + switch ( pHtmlOpt->GetExportMode() ) + { + case HTML_CFG_MSIE_40: + nRet |= HTMLMODE_PARA_BORDER|HTMLMODE_SMALL_CAPS| + HTMLMODE_SOME_STYLES| + HTMLMODE_FULL_STYLES|HTMLMODE_GRAPH_POS| + HTMLMODE_FULL_ABS_POS|HTMLMODE_SOME_ABS_POS; + break; + case HTML_CFG_NS40: + nRet |= HTMLMODE_PARA_BORDER|HTMLMODE_SOME_STYLES| + HTMLMODE_FRM_COLUMNS|HTMLMODE_BLINK|HTMLMODE_GRAPH_POS| + HTMLMODE_SOME_ABS_POS; + break; + case HTML_CFG_WRITER: + nRet |= HTMLMODE_PARA_BORDER|HTMLMODE_SMALL_CAPS| + HTMLMODE_SOME_STYLES| + HTMLMODE_FRM_COLUMNS|HTMLMODE_FULL_STYLES| + HTMLMODE_BLINK|HTMLMODE_DROPCAPS|HTMLMODE_GRAPH_POS| + HTMLMODE_FULL_ABS_POS|HTMLMODE_SOME_ABS_POS; + break; + case HTML_CFG_HTML32: + break; + } + } + return nRet; +} +/* -----------------------------24.04.2002 10:20------------------------------ + + ---------------------------------------------------------------------------*/ +Color& SwViewOption::GetDocColor() +{ + return aDocColor; +} +/* -----------------------------23.04.2002 17:18------------------------------ + + ---------------------------------------------------------------------------*/ +Color& SwViewOption::GetDocBoundariesColor() +{ + return aDocBoundColor; +} +/* -----------------------------23.04.2002 17:53------------------------------ + + ---------------------------------------------------------------------------*/ +Color& SwViewOption::GetObjectBoundariesColor() +{ + return aObjectBoundColor; +} +/* -----------------------------24.04.2002 10:41------------------------------ + + ---------------------------------------------------------------------------*/ +Color& SwViewOption::GetAppBackgroundColor() +{ + return aAppBackgroundColor; +} +/*-- 24.04.2002 10:50:11--------------------------------------------------- + + -----------------------------------------------------------------------*/ +Color& SwViewOption::GetTableBoundariesColor() +{ + return aTableBoundColor; +} +/*-- 24.04.2002 10:50:12--------------------------------------------------- + + -----------------------------------------------------------------------*/ +Color& SwViewOption::GetIndexShadingsColor() +{ + return aIndexShadingsColor; +} +/*-- 24.04.2002 10:50:12--------------------------------------------------- + + -----------------------------------------------------------------------*/ +Color& SwViewOption::GetLinksColor() +{ + return aLinksColor; +} +/*-- 24.04.2002 10:50:13--------------------------------------------------- + + -----------------------------------------------------------------------*/ +Color& SwViewOption::GetVisitedLinksColor() +{ + return aVisitedLinksColor; +} +/*-- 24.04.2002 10:50:13--------------------------------------------------- + + -----------------------------------------------------------------------*/ +Color& SwViewOption::GetDirectCursorColor() +{ + return aDirectCursorColor; +} +/*-- 24.04.2002 10:50:14--------------------------------------------------- + + -----------------------------------------------------------------------*/ +Color& SwViewOption::GetTextGridColor() +{ + return aTextGridColor; +} +/*-- 24.04.2002 10:50:14--------------------------------------------------- + + -----------------------------------------------------------------------*/ +Color& SwViewOption::GetSpellColor() +{ + return aSpellColor; +} +/*-- 24.04.2007 10:50:14--------------------------------------------------- + + -----------------------------------------------------------------------*/ +Color& SwViewOption::GetSmarttagColor() +{ + return aSmarttagColor; +} +/*-- 06.12.2002 10:50:11--------------------------------------------------- + + -----------------------------------------------------------------------*/ +Color& SwViewOption::GetFontColor() +{ + return aFontColor; +} +/*-- 24.04.2002 10:50:15--------------------------------------------------- + + -----------------------------------------------------------------------*/ +Color& SwViewOption::GetFieldShadingsColor() +{ + return aFieldShadingsColor; +} +/*-- 24.04.2002 10:50:15--------------------------------------------------- + + -----------------------------------------------------------------------*/ +Color& SwViewOption::GetSectionBoundColor() +{ + return aSectionBoundColor; +} +/* -----------------------------2002/07/31 14:00------------------------------ + + ---------------------------------------------------------------------------*/ +Color& SwViewOption::GetPageBreakColor() +{ + return aPageBreakColor; +} + +/* -----------------------------23.04.2002 17:41------------------------------ + + ---------------------------------------------------------------------------*/ +void SwViewOption::ApplyColorConfigValues(const svtools::ColorConfig& rConfig ) +{ + aDocColor.SetColor(rConfig.GetColorValue(svtools::DOCCOLOR).nColor); + + svtools::ColorConfigValue aValue = rConfig.GetColorValue(svtools::DOCBOUNDARIES); + aDocBoundColor.SetColor(aValue.nColor); + nAppearanceFlags = 0; + if(aValue.bIsVisible) + nAppearanceFlags |= VIEWOPT_DOC_BOUNDARIES; + + aAppBackgroundColor.SetColor(rConfig.GetColorValue(svtools::APPBACKGROUND).nColor); + + aValue = rConfig.GetColorValue(svtools::OBJECTBOUNDARIES); + aObjectBoundColor.SetColor(aValue.nColor); + if(aValue.bIsVisible) + nAppearanceFlags |= VIEWOPT_OBJECT_BOUNDARIES; + + aValue = rConfig.GetColorValue(svtools::TABLEBOUNDARIES); + aTableBoundColor.SetColor(aValue.nColor); + if(aValue.bIsVisible) + nAppearanceFlags |= VIEWOPT_TABLE_BOUNDARIES; + + aValue = rConfig.GetColorValue(svtools::WRITERIDXSHADINGS); + aIndexShadingsColor.SetColor(aValue.nColor); + if(aValue.bIsVisible) + nAppearanceFlags |= VIEWOPT_INDEX_SHADINGS; + + aValue = rConfig.GetColorValue(svtools::LINKS); + aLinksColor.SetColor(aValue.nColor); + if(aValue.bIsVisible) + nAppearanceFlags |= VIEWOPT_LINKS; + + aValue = rConfig.GetColorValue(svtools::LINKSVISITED); + aVisitedLinksColor.SetColor(aValue.nColor); + if(aValue.bIsVisible) + nAppearanceFlags |= VIEWOPT_VISITED_LINKS; + + aDirectCursorColor.SetColor(rConfig.GetColorValue(svtools::WRITERDIRECTCURSOR).nColor); + + aTextGridColor.SetColor(rConfig.GetColorValue(svtools::WRITERTEXTGRID).nColor); + + aSpellColor.SetColor(rConfig.GetColorValue(svtools::SPELL).nColor); + + aSmarttagColor.SetColor(rConfig.GetColorValue(svtools::SMARTTAGS).nColor); + + aFontColor.SetColor(rConfig.GetColorValue(svtools::FONTCOLOR).nColor); + + aValue = rConfig.GetColorValue(svtools::WRITERFIELDSHADINGS); + aFieldShadingsColor.SetColor(aValue.nColor); + if(aValue.bIsVisible) + nAppearanceFlags |= VIEWOPT_FIELD_SHADINGS; + + aValue = rConfig.GetColorValue(svtools::WRITERSECTIONBOUNDARIES); + aSectionBoundColor.SetColor(aValue.nColor); + if(aValue.bIsVisible) + nAppearanceFlags |= VIEWOPT_SECTION_BOUNDARIES; + + aValue = rConfig.GetColorValue(svtools::WRITERPAGEBREAKS); + aPageBreakColor.SetColor(aValue.nColor); + + aScriptIndicatorColor.SetColor(rConfig.GetColorValue(svtools::WRITERSCRIPTINDICATOR).nColor); +} +/* -----------------------------23.04.2002 17:48------------------------------ + + ---------------------------------------------------------------------------*/ +void SwViewOption::SetAppearanceFlag(sal_Int32 nFlag, sal_Bool bSet, sal_Bool bSaveInConfig ) +{ + if(bSet) + nAppearanceFlags |= nFlag; + else + nAppearanceFlags &= ~nFlag; + if(bSaveInConfig) + { + //create an editable svtools::ColorConfig and store the change + svtools::EditableColorConfig aEditableConfig; + struct FlagToConfig_Impl + { + sal_Int32 nFlag; + svtools::ColorConfigEntry eEntry; + }; + static const FlagToConfig_Impl aFlags[] = + { + { VIEWOPT_DOC_BOUNDARIES , svtools::DOCBOUNDARIES }, + { VIEWOPT_OBJECT_BOUNDARIES , svtools::OBJECTBOUNDARIES }, + { VIEWOPT_TABLE_BOUNDARIES , svtools::TABLEBOUNDARIES }, + { VIEWOPT_INDEX_SHADINGS , svtools::WRITERIDXSHADINGS }, + { VIEWOPT_LINKS , svtools::LINKS }, + { VIEWOPT_VISITED_LINKS , svtools::LINKSVISITED }, + { VIEWOPT_FIELD_SHADINGS , svtools::WRITERFIELDSHADINGS }, + { VIEWOPT_SECTION_BOUNDARIES , svtools::WRITERSECTIONBOUNDARIES }, + { 0 , svtools::ColorConfigEntryCount } + }; + sal_uInt16 nPos = 0; + while(aFlags[nPos].nFlag) + { + if(0 != (nFlag&aFlags[nPos].nFlag)) + { + svtools::ColorConfigValue aValue = aEditableConfig.GetColorValue(aFlags[nPos].eEntry); + aValue.bIsVisible = bSet; + aEditableConfig.SetColorValue(aFlags[nPos].eEntry, aValue); + } + nPos++; + } + } +} +/* -----------------------------24.04.2002 10:42------------------------------ + + ---------------------------------------------------------------------------*/ +sal_Bool SwViewOption::IsAppearanceFlag(sal_Int32 nFlag) +{ + return 0 != (nAppearanceFlags & nFlag); +} + |