diff options
Diffstat (limited to 'sw/source/uibase')
-rw-r--r-- | sw/source/uibase/app/apphdl.cxx | 11 | ||||
-rw-r--r-- | sw/source/uibase/config/viewopt.cxx | 300 | ||||
-rw-r--r-- | sw/source/uibase/docvw/AnnotationWin2.cxx | 8 | ||||
-rw-r--r-- | sw/source/uibase/docvw/DashedLine.cxx | 6 | ||||
-rw-r--r-- | sw/source/uibase/docvw/HeaderFooterWin.cxx | 4 | ||||
-rw-r--r-- | sw/source/uibase/docvw/PageBreakWin.cxx | 2 | ||||
-rw-r--r-- | sw/source/uibase/docvw/UnfloatTableButton.cxx | 3 | ||||
-rw-r--r-- | sw/source/uibase/docvw/contentcontrolaliasbutton.cxx | 3 | ||||
-rw-r--r-- | sw/source/uibase/docvw/edtwin.cxx | 2 | ||||
-rw-r--r-- | sw/source/uibase/frmdlg/colex.cxx | 2 | ||||
-rw-r--r-- | sw/source/uibase/inc/DashedLine.hxx | 5 | ||||
-rw-r--r-- | sw/source/uibase/uiview/view0.cxx | 28 | ||||
-rw-r--r-- | sw/source/uibase/uiview/viewdraw.cxx | 2 | ||||
-rw-r--r-- | sw/source/uibase/uno/unomod.cxx | 20 | ||||
-rw-r--r-- | sw/source/uibase/uno/unotxdoc.cxx | 4 |
15 files changed, 213 insertions, 187 deletions
diff --git a/sw/source/uibase/app/apphdl.cxx b/sw/source/uibase/app/apphdl.cxx index 5d6a0a66514a..a78ba9416e19 100644 --- a/sw/source/uibase/app/apphdl.cxx +++ b/sw/source/uibase/app/apphdl.cxx @@ -969,19 +969,20 @@ void SwModule::ConfigurationChanged( utl::ConfigurationBroadcaster* pBrdCst, Con } else if ( pBrdCst == m_pColorConfig.get() ) { - if( pBrdCst == m_pColorConfig.get() ) - SwViewOption::ApplyColorConfigValues(*m_pColorConfig); - //invalidate all edit windows SfxViewShell* pViewShell = SfxViewShell::GetFirst(); while(pViewShell) { if(pViewShell->GetWindow()) { - if(dynamic_cast< const SwView *>( pViewShell ) != nullptr || + auto pSwView = dynamic_cast<SwView *>( pViewShell ); + if(pSwView != nullptr || dynamic_cast< const SwPagePreview *>( pViewShell ) != nullptr || dynamic_cast< const SwSrcView *>( pViewShell ) != nullptr) { + SwViewOption aNewOptions = *pSwView->GetWrtShell().GetViewOptions(); + aNewOptions.SetColorConfig(*m_pColorConfig); + pSwView->GetWrtShell().ApplyViewOptions(aNewOptions); pViewShell->GetWindow()->Invalidate(); } } @@ -1044,7 +1045,7 @@ svtools::ColorConfig& SwModule::GetColorConfig() if(!m_pColorConfig) { m_pColorConfig.reset(new svtools::ColorConfig); - SwViewOption::ApplyColorConfigValues(*m_pColorConfig); + SwViewOption::SetInitialColorConfig(*m_pColorConfig); m_pColorConfig->AddListener(this); } return *m_pColorConfig; diff --git a/sw/source/uibase/config/viewopt.cxx b/sw/source/uibase/config/viewopt.cxx index 8b272a09d1fc..04dfa0dd12f2 100644 --- a/sw/source/uibase/config/viewopt.cxx +++ b/sw/source/uibase/config/viewopt.cxx @@ -29,6 +29,9 @@ #include <viewopt.hxx> #include <wdocsh.hxx> #include <swrect.hxx> +#include <viewsh.hxx> +#include <view.hxx> +#include <wrtsh.hxx> #include <crstate.hxx> #include <authratr.hxx> #include <svtools/colorcfg.hxx> @@ -40,29 +43,103 @@ #include <comphelper/lok.hxx> #include <comphelper/configurationlistener.hxx> -Color SwViewOption::s_aDocBoundColor(COL_LIGHTGRAY); -Color SwViewOption::s_aObjectBoundColor(COL_LIGHTGRAY); -Color SwViewOption::s_aDocColor(COL_LIGHTGRAY); -Color SwViewOption::s_aAppBackgroundColor(COL_LIGHTGRAY); -Color SwViewOption::s_aTableBoundColor(COL_LIGHTGRAY); -Color SwViewOption::s_aIndexShadingsColor(COL_LIGHTGRAY); -Color SwViewOption::s_aLinksColor(COL_BLUE); -Color SwViewOption::s_aVisitedLinksColor(COL_RED); -Color SwViewOption::s_aDirectCursorColor(COL_BLUE); -Color SwViewOption::s_aTextGridColor(COL_LIGHTGRAY); -Color SwViewOption::s_aSpellColor(COL_LIGHTRED); -Color SwViewOption::s_aGrammarColor(COL_LIGHTBLUE); -Color SwViewOption::s_aSmarttagColor(COL_LIGHTMAGENTA); -Color SwViewOption::s_aFontColor(COL_BLACK); -Color SwViewOption::s_aFieldShadingsColor(COL_LIGHTGRAY); -Color SwViewOption::s_aSectionBoundColor(COL_LIGHTGRAY); -Color SwViewOption::s_aPageBreakColor(COL_BLUE); -Color SwViewOption::s_aScriptIndicatorColor(COL_GREEN); -Color SwViewOption::s_aShadowColor(COL_GRAY); -Color SwViewOption::s_aHeaderFooterMarkColor(COL_BLUE); - -ViewOptFlags SwViewOption::s_nAppearanceFlags = ViewOptFlags::DocBoundaries|ViewOptFlags::ObjectBoundaries; sal_uInt16 SwViewOption::s_nPixelTwips = 0; // one pixel on the screen +SwViewColors SwViewOption::s_aInitialColorConfig {}; + +SwViewColors::SwViewColors() : + m_aDocColor(COL_LIGHTGRAY), + m_aDocBoundColor(COL_LIGHTGRAY), + m_aObjectBoundColor(COL_LIGHTGRAY), + m_aAppBackgroundColor(COL_LIGHTGRAY), + m_aTableBoundColor(COL_LIGHTGRAY), + m_aFontColor(COL_BLACK), + m_aIndexShadingsColor(COL_LIGHTGRAY), + m_aLinksColor(COL_BLUE), + m_aVisitedLinksColor(COL_RED), + m_aDirectCursorColor(COL_BLUE), + m_aTextGridColor(COL_LIGHTGRAY), + m_aSpellColor(COL_LIGHTRED), + m_aGrammarColor(COL_LIGHTBLUE), + m_aSmarttagColor(COL_LIGHTMAGENTA), + m_aFieldShadingsColor(COL_LIGHTGRAY), + m_aSectionBoundColor(COL_LIGHTGRAY), + m_aPageBreakColor(COL_BLUE), + m_aScriptIndicatorColor(COL_GREEN), + m_aShadowColor(COL_GRAY), + m_aHeaderFooterMarkColor(COL_BLUE) +{} + +SwViewColors::SwViewColors(const svtools::ColorConfig& rConfig) +{ + m_aDocColor = rConfig.GetColorValue(svtools::DOCCOLOR).nColor; + + svtools::ColorConfigValue aValue = rConfig.GetColorValue(svtools::DOCBOUNDARIES); + m_aDocBoundColor = aValue.nColor; + m_nAppearanceFlags = ViewOptFlags::NONE; + if(aValue.bIsVisible) + m_nAppearanceFlags |= ViewOptFlags::DocBoundaries; + + m_aAppBackgroundColor = rConfig.GetColorValue(svtools::APPBACKGROUND).nColor; + + aValue = rConfig.GetColorValue(svtools::OBJECTBOUNDARIES); + m_aObjectBoundColor = aValue.nColor; + if(aValue.bIsVisible) + m_nAppearanceFlags |= ViewOptFlags::ObjectBoundaries; + + aValue = rConfig.GetColorValue(svtools::TABLEBOUNDARIES); + m_aTableBoundColor = aValue.nColor; + if(aValue.bIsVisible) + m_nAppearanceFlags |= ViewOptFlags::TableBoundaries; + + aValue = rConfig.GetColorValue(svtools::WRITERIDXSHADINGS); + m_aIndexShadingsColor = aValue.nColor; + if(aValue.bIsVisible) + m_nAppearanceFlags |= ViewOptFlags::IndexShadings; + + aValue = rConfig.GetColorValue(svtools::LINKS); + m_aLinksColor = aValue.nColor; + if(aValue.bIsVisible) + m_nAppearanceFlags |= ViewOptFlags::Links; + + aValue = rConfig.GetColorValue(svtools::LINKSVISITED); + m_aVisitedLinksColor = aValue.nColor; + if(aValue.bIsVisible) + m_nAppearanceFlags |= ViewOptFlags::VisitedLinks; + + aValue = rConfig.GetColorValue(svtools::SHADOWCOLOR); + m_aShadowColor = aValue.nColor; + if(aValue.bIsVisible) + m_nAppearanceFlags |= ViewOptFlags::Shadow; + + m_aDirectCursorColor = rConfig.GetColorValue(svtools::WRITERDIRECTCURSOR).nColor; + + m_aTextGridColor = rConfig.GetColorValue(svtools::WRITERTEXTGRID).nColor; + + m_aSpellColor = rConfig.GetColorValue(svtools::SPELL).nColor; + m_aGrammarColor = rConfig.GetColorValue(svtools::GRAMMAR).nColor; + + m_aSmarttagColor = rConfig.GetColorValue(svtools::SMARTTAGS).nColor; + + m_aFontColor = rConfig.GetColorValue(svtools::FONTCOLOR).nColor; + + aValue = rConfig.GetColorValue(svtools::WRITERFIELDSHADINGS); + m_aFieldShadingsColor = aValue.nColor; + if(aValue.bIsVisible) + m_nAppearanceFlags |= ViewOptFlags::FieldShadings; + + aValue = rConfig.GetColorValue(svtools::WRITERSECTIONBOUNDARIES); + m_aSectionBoundColor = aValue.nColor; + if(aValue.bIsVisible) + m_nAppearanceFlags |= ViewOptFlags::SectionBoundaries; + + aValue = rConfig.GetColorValue(svtools::WRITERPAGEBREAKS); + m_aPageBreakColor = aValue.nColor; + + aValue = rConfig.GetColorValue(svtools::WRITERHEADERFOOTERMARK); + m_aHeaderFooterMarkColor = aValue.nColor; + + m_aScriptIndicatorColor = rConfig.GetColorValue(svtools::WRITERSCRIPTINDICATOR).nColor; +} bool SwViewOption::IsEqualFlags( const SwViewOption &rOpt ) const { @@ -140,7 +217,7 @@ sal_uInt16 SwViewOption::GetPostItsWidth( const OutputDevice *pOut ) return sal_uInt16(pOut->GetTextWidth(" ")); } -void SwViewOption::PaintPostIts( OutputDevice *pOut, const SwRect &rRect, bool bIsScript ) +void SwViewOption::PaintPostIts( OutputDevice *pOut, const SwRect &rRect, bool bIsScript ) const { if( !(pOut && bIsScript) ) return; @@ -154,7 +231,7 @@ void SwViewOption::PaintPostIts( OutputDevice *pOut, const SwRect &rRect, bool b 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, s_aScriptIndicatorColor ); + DrawRect( pOut, aRect, m_aColorConfig.m_aScriptIndicatorColor ); pOut->SetLineColor( aOldLineColor ); } @@ -213,8 +290,9 @@ SwViewOption::SwViewOption() : m_bTest1 = m_bTest2 = m_bTest3 = m_bTest4 = m_bTest5 = m_bTest6 = m_bTest7 = m_bTest8 = m_bTest10 = false; #endif + m_aColorConfig = s_aInitialColorConfig; if (comphelper::LibreOfficeKit::isActive()) - s_aAppBackgroundColor = COL_TRANSPARENT; + m_aColorConfig.m_aAppBackgroundColor = COL_TRANSPARENT; } SwViewOption::SwViewOption(const SwViewOption& rVOpt) @@ -247,6 +325,7 @@ SwViewOption::SwViewOption(const SwViewOption& rVOpt) m_bShowPlaceHolderFields = rVOpt.m_bShowPlaceHolderFields; m_bIdle = rVOpt.m_bIdle; m_nDefaultAnchor = rVOpt.m_nDefaultAnchor; + m_aColorConfig = rVOpt.m_aColorConfig; #ifdef DBG_UTIL m_bTest1 = rVOpt.m_bTest1; @@ -289,6 +368,7 @@ SwViewOption& SwViewOption::operator=( const SwViewOption &rVOpt ) m_bShowPlaceHolderFields = rVOpt.m_bShowPlaceHolderFields; m_bIdle = rVOpt.m_bIdle; m_nDefaultAnchor = rVOpt.m_nDefaultAnchor; + m_aColorConfig = rVOpt.m_aColorConfig; #ifdef DBG_UTIL m_bTest1 = rVOpt.m_bTest1; @@ -366,179 +446,107 @@ RndStdIds SwViewOption::GetDefaultAnchorType() const }//switch } -Color& SwViewOption::GetDocColor() +const Color& SwViewOption::GetDocColor() const { - return s_aDocColor; + return m_aColorConfig.m_aDocColor; } -Color& SwViewOption::GetDocBoundariesColor() +const Color& SwViewOption::GetDocBoundariesColor() const { - return s_aDocBoundColor; + return m_aColorConfig.m_aDocBoundColor; } -Color& SwViewOption::GetObjectBoundariesColor() +const Color& SwViewOption::GetObjectBoundariesColor() const { - return s_aObjectBoundColor; + return m_aColorConfig.m_aObjectBoundColor; } -Color& SwViewOption::GetAppBackgroundColor() +const Color& SwViewOption::GetAppBackgroundColor() const { - return s_aAppBackgroundColor; + return m_aColorConfig.m_aAppBackgroundColor; } -Color& SwViewOption::GetTableBoundariesColor() +const Color& SwViewOption::GetTableBoundariesColor() const { - return s_aTableBoundColor; + return m_aColorConfig.m_aTableBoundColor; } -Color& SwViewOption::GetIndexShadingsColor() +const Color& SwViewOption::GetIndexShadingsColor() const { - return s_aIndexShadingsColor; + return m_aColorConfig.m_aIndexShadingsColor; } -Color& SwViewOption::GetLinksColor() +const Color& SwViewOption::GetLinksColor() const { - return s_aLinksColor; + return m_aColorConfig.m_aLinksColor; } -Color& SwViewOption::GetVisitedLinksColor() +const Color& SwViewOption::GetVisitedLinksColor() const { - return s_aVisitedLinksColor; + return m_aColorConfig.m_aVisitedLinksColor; } -Color& SwViewOption::GetDirectCursorColor() +const Color& SwViewOption::GetDirectCursorColor() const { - return s_aDirectCursorColor; + return m_aColorConfig.m_aDirectCursorColor; } -Color& SwViewOption::GetTextGridColor() +const Color& SwViewOption::GetTextGridColor() const { - return s_aTextGridColor; + return m_aColorConfig.m_aTextGridColor; } -Color& SwViewOption::GetSpellColor() +const Color& SwViewOption::GetSpellColor() const { - return s_aSpellColor; + return m_aColorConfig.m_aSpellColor; } -Color& SwViewOption::GetGrammarColor() +const Color& SwViewOption::GetGrammarColor() const { - return s_aGrammarColor; + return m_aColorConfig.m_aGrammarColor; } -Color& SwViewOption::GetSmarttagColor() +const Color& SwViewOption::GetSmarttagColor() const { - return s_aSmarttagColor; + return m_aColorConfig.m_aSmarttagColor; } -Color& SwViewOption::GetShadowColor() +const Color& SwViewOption::GetShadowColor() const { - return s_aShadowColor; + return m_aColorConfig.m_aShadowColor; } -Color& SwViewOption::GetFontColor() +const Color& SwViewOption::GetFontColor() const { - return s_aFontColor; + return m_aColorConfig.m_aFontColor; } -Color& SwViewOption::GetFieldShadingsColor() +const Color& SwViewOption::GetFieldShadingsColor() const { - return s_aFieldShadingsColor; + return m_aColorConfig.m_aFieldShadingsColor; } -Color& SwViewOption::GetSectionBoundColor() +const Color& SwViewOption::GetSectionBoundColor() const { - return s_aSectionBoundColor; + return m_aColorConfig.m_aSectionBoundColor; } -Color& SwViewOption::GetPageBreakColor() +const Color& SwViewOption::GetPageBreakColor() const { - return s_aPageBreakColor; + return m_aColorConfig.m_aPageBreakColor; } -Color& SwViewOption::GetHeaderFooterMarkColor() +const Color& SwViewOption::GetHeaderFooterMarkColor() const { - return s_aHeaderFooterMarkColor; -} - -void SwViewOption::ApplyColorConfigValues(const svtools::ColorConfig& rConfig ) -{ - s_aDocColor = rConfig.GetColorValue(svtools::DOCCOLOR).nColor; - - svtools::ColorConfigValue aValue = rConfig.GetColorValue(svtools::DOCBOUNDARIES); - s_aDocBoundColor = aValue.nColor; - s_nAppearanceFlags = ViewOptFlags::NONE; - if(aValue.bIsVisible) - s_nAppearanceFlags |= ViewOptFlags::DocBoundaries; - - s_aAppBackgroundColor = rConfig.GetColorValue(svtools::APPBACKGROUND).nColor; - - aValue = rConfig.GetColorValue(svtools::OBJECTBOUNDARIES); - s_aObjectBoundColor = aValue.nColor; - if(aValue.bIsVisible) - s_nAppearanceFlags |= ViewOptFlags::ObjectBoundaries; - - aValue = rConfig.GetColorValue(svtools::TABLEBOUNDARIES); - s_aTableBoundColor = aValue.nColor; - if(aValue.bIsVisible) - s_nAppearanceFlags |= ViewOptFlags::TableBoundaries; - - aValue = rConfig.GetColorValue(svtools::WRITERIDXSHADINGS); - s_aIndexShadingsColor = aValue.nColor; - if(aValue.bIsVisible) - s_nAppearanceFlags |= ViewOptFlags::IndexShadings; - - aValue = rConfig.GetColorValue(svtools::LINKS); - s_aLinksColor = aValue.nColor; - if(aValue.bIsVisible) - s_nAppearanceFlags |= ViewOptFlags::Links; - - aValue = rConfig.GetColorValue(svtools::LINKSVISITED); - s_aVisitedLinksColor = aValue.nColor; - if(aValue.bIsVisible) - s_nAppearanceFlags |= ViewOptFlags::VisitedLinks; - - aValue = rConfig.GetColorValue(svtools::SHADOWCOLOR); - s_aShadowColor = aValue.nColor; - if(aValue.bIsVisible) - s_nAppearanceFlags |= ViewOptFlags::Shadow; - - s_aDirectCursorColor = rConfig.GetColorValue(svtools::WRITERDIRECTCURSOR).nColor; - - s_aTextGridColor = rConfig.GetColorValue(svtools::WRITERTEXTGRID).nColor; - - s_aSpellColor = rConfig.GetColorValue(svtools::SPELL).nColor; - s_aGrammarColor = rConfig.GetColorValue(svtools::GRAMMAR).nColor; - - s_aSmarttagColor = rConfig.GetColorValue(svtools::SMARTTAGS).nColor; - - s_aFontColor = rConfig.GetColorValue(svtools::FONTCOLOR).nColor; - - aValue = rConfig.GetColorValue(svtools::WRITERFIELDSHADINGS); - s_aFieldShadingsColor = aValue.nColor; - if(aValue.bIsVisible) - s_nAppearanceFlags |= ViewOptFlags::FieldShadings; - - aValue = rConfig.GetColorValue(svtools::WRITERSECTIONBOUNDARIES); - s_aSectionBoundColor = aValue.nColor; - if(aValue.bIsVisible) - s_nAppearanceFlags |= ViewOptFlags::SectionBoundaries; - - aValue = rConfig.GetColorValue(svtools::WRITERPAGEBREAKS); - s_aPageBreakColor = aValue.nColor; - - aValue = rConfig.GetColorValue(svtools::WRITERHEADERFOOTERMARK); - s_aHeaderFooterMarkColor = aValue.nColor; - - s_aScriptIndicatorColor = rConfig.GetColorValue(svtools::WRITERSCRIPTINDICATOR).nColor; + return m_aColorConfig.m_aHeaderFooterMarkColor; } void SwViewOption::SetAppearanceFlag(ViewOptFlags nFlag, bool bSet, bool bSaveInConfig ) { if(bSet) - s_nAppearanceFlags |= nFlag; + m_aColorConfig.m_nAppearanceFlags |= nFlag; else - s_nAppearanceFlags &= ~nFlag; + m_aColorConfig.m_nAppearanceFlags &= ~nFlag; if(!bSaveInConfig) return; @@ -575,9 +583,9 @@ void SwViewOption::SetAppearanceFlag(ViewOptFlags nFlag, bool bSet, bool bSaveIn } } -bool SwViewOption::IsAppearanceFlag(ViewOptFlags nFlag) +bool SwViewOption::IsAppearanceFlag(ViewOptFlags nFlag) const { - return bool(s_nAppearanceFlags & nFlag); + return bool(m_aColorConfig.m_nAppearanceFlags & nFlag); } namespace{ @@ -594,4 +602,18 @@ bool SwViewOption::IsIgnoreProtectedArea() return gIgnoreProtectedArea.get(); } +const SwViewOption& SwViewOption::GetCurrentViewOptions() +{ + SfxViewShell* pCurrentShell = SfxViewShell::Current(); + SwView* pView = dynamic_cast<SwView*>(pCurrentShell); + if(pView) + { + return *pView->GetWrtShell().GetViewOptions(); + } + + // Some unit tests don't have a SfxViewShell, so we need to return something + static SwViewOption aDefaultViewOptions; + return aDefaultViewOptions; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/uibase/docvw/AnnotationWin2.cxx b/sw/source/uibase/docvw/AnnotationWin2.cxx index eff0c82571d8..677d62210046 100644 --- a/sw/source/uibase/docvw/AnnotationWin2.cxx +++ b/sw/source/uibase/docvw/AnnotationWin2.cxx @@ -352,14 +352,14 @@ void SwAnnotationWin::InitControls() EEControlBits nCntrl = mpOutliner->GetControlWord(); // TODO: crash when AUTOCOMPLETE enabled nCntrl |= EEControlBits::MARKFIELDS | EEControlBits::PASTESPECIAL | EEControlBits::AUTOCORRECT | EEControlBits::USECHARATTRIBS; // | EEControlBits::AUTOCOMPLETE; - if (SwViewOption::IsFieldShadings()) - nCntrl |= EEControlBits::MARKFIELDS; - else - nCntrl &= ~EEControlBits::MARKFIELDS; if (SwWrtShell* pWrtShell = mrView.GetWrtShellPtr()) { const SwViewOption* pVOpt = pWrtShell->GetViewOptions(); + if (pVOpt->IsFieldShadings()) + nCntrl |= EEControlBits::MARKFIELDS; + else + nCntrl &= ~EEControlBits::MARKFIELDS; if (pVOpt->IsOnlineSpell()) nCntrl |= EEControlBits::ONLINESPELLING; else diff --git a/sw/source/uibase/docvw/DashedLine.cxx b/sw/source/uibase/docvw/DashedLine.cxx index 2ec691b4c643..0ede6da3ae1f 100644 --- a/sw/source/uibase/docvw/DashedLine.cxx +++ b/sw/source/uibase/docvw/DashedLine.cxx @@ -19,7 +19,7 @@ #include <vcl/settings.hxx> #include <memory> -SwDashedLine::SwDashedLine( vcl::Window* pParent, Color& ( *pColorFn )() ) +SwDashedLine::SwDashedLine( vcl::Window* pParent, const Color& ( SwViewOption::* pColorFn )() const ) : Control( pParent, WB_DIALOGCONTROL | WB_HORZ ) , m_pColorFn( pColorFn ) { @@ -51,7 +51,7 @@ void SwDashedLine::Paint(vcl::RenderContext& rRenderContext, const tools::Rectan const StyleSettings& rSettings = Application::GetSettings().GetStyleSettings(); std::vector<double> aStrokePattern; - basegfx::BColor aColor = m_pColorFn().getBColor(); + basegfx::BColor aColor = (SwViewOption::GetCurrentViewOptions().*m_pColorFn)().getBColor(); if (rSettings.GetHighContrastMode()) { // Only a solid line in high contrast mode @@ -82,7 +82,7 @@ void SwDashedLine::Paint(vcl::RenderContext& rRenderContext, const tools::Rectan aSeq[aSeq.size() - 1] = new drawinglayer::primitive2d::PolyPolygonStrokePrimitive2D( basegfx::B2DPolyPolygon(aPolygon), - drawinglayer::attribute::LineAttribute(m_pColorFn().getBColor()), + drawinglayer::attribute::LineAttribute((SwViewOption::GetCurrentViewOptions().*m_pColorFn)().getBColor()), drawinglayer::attribute::StrokeAttribute(std::move(aStrokePattern))); pProcessor->process(aSeq); diff --git a/sw/source/uibase/docvw/HeaderFooterWin.cxx b/sw/source/uibase/docvw/HeaderFooterWin.cxx index 186deaa12ab2..654e6be416b6 100644 --- a/sw/source/uibase/docvw/HeaderFooterWin.cxx +++ b/sw/source/uibase/docvw/HeaderFooterWin.cxx @@ -132,7 +132,7 @@ void SwFrameButtonPainter::PaintButton(drawinglayer::primitive2d::Primitive2DCon B2DPolygon aPolygon = lcl_GetPolygon(rRect, bOnTop); // Colors - basegfx::BColor aLineColor = SwViewOption::GetHeaderFooterMarkColor().getBColor(); + basegfx::BColor aLineColor = SwViewOption::GetCurrentViewOptions().GetHeaderFooterMarkColor().getBColor(); basegfx::BColor aFillColor = lcl_GetFillColor(aLineColor); basegfx::BColor aLighterColor = lcl_GetLighterGradientColor(aFillColor); @@ -362,7 +362,7 @@ void SwHeaderFooterWin::PaintButton() SwFrameButtonPainter::PaintButton(aSeq, aRect, m_bIsHeader); // Create the text primitive - basegfx::BColor aLineColor = SwViewOption::GetHeaderFooterMarkColor().getBColor(); + basegfx::BColor aLineColor = SwViewOption::GetCurrentViewOptions().GetHeaderFooterMarkColor().getBColor(); B2DVector aFontSize; FontAttribute aFontAttr = drawinglayer::primitive2d::getFontAttributeFromVclFont(aFontSize, m_xVirDev->GetFont(), false, false); diff --git a/sw/source/uibase/docvw/PageBreakWin.cxx b/sw/source/uibase/docvw/PageBreakWin.cxx index 1af030258d01..398dfd2987b9 100644 --- a/sw/source/uibase/docvw/PageBreakWin.cxx +++ b/sw/source/uibase/docvw/PageBreakWin.cxx @@ -174,7 +174,7 @@ void SwPageBreakWin::PaintButton() const ::tools::Rectangle aRect(::tools::Rectangle(Point(0, 0), m_xVirDev->PixelToLogic(GetSizePixel()))); // Properly paint the control - BColor aColor = SwViewOption::GetPageBreakColor().getBColor(); + BColor aColor = SwViewOption::GetCurrentViewOptions().GetPageBreakColor().getBColor(); BColor aHslLine = rgb2hsl(aColor); double nLuminance = aHslLine.getZ(); diff --git a/sw/source/uibase/docvw/UnfloatTableButton.cxx b/sw/source/uibase/docvw/UnfloatTableButton.cxx index 79443c3adea1..e1cdf8c7aad9 100644 --- a/sw/source/uibase/docvw/UnfloatTableButton.cxx +++ b/sw/source/uibase/docvw/UnfloatTableButton.cxx @@ -207,7 +207,8 @@ void UnfloatTableButton::PaintButton() SwFrameButtonPainter::PaintButton(aSeq, aRect, true); // Create the text primitive - basegfx::BColor aLineColor = SwViewOption::GetHeaderFooterMarkColor().getBColor(); + basegfx::BColor aLineColor + = SwViewOption::GetCurrentViewOptions().GetHeaderFooterMarkColor().getBColor(); basegfx::B2DVector aFontSize; drawinglayer::attribute::FontAttribute aFontAttr = drawinglayer::primitive2d::getFontAttributeFromVclFont(aFontSize, m_xVirDev->GetFont(), diff --git a/sw/source/uibase/docvw/contentcontrolaliasbutton.cxx b/sw/source/uibase/docvw/contentcontrolaliasbutton.cxx index abb792dcd943..0d11b5c60641 100644 --- a/sw/source/uibase/docvw/contentcontrolaliasbutton.cxx +++ b/sw/source/uibase/docvw/contentcontrolaliasbutton.cxx @@ -102,7 +102,8 @@ void SwContentControlAliasButton::PaintButton() SwFrameButtonPainter::PaintButton(aSeq, aRect, /*bOnTop=*/false); // Create the text primitive - basegfx::BColor aLineColor = SwViewOption::GetHeaderFooterMarkColor().getBColor(); + const SwViewOption* pVOpt = GetEditWin()->GetView().GetWrtShell().GetViewOptions(); + basegfx::BColor aLineColor = pVOpt->GetHeaderFooterMarkColor().getBColor(); basegfx::B2DVector aFontSize; drawinglayer::attribute::FontAttribute aFontAttr = drawinglayer::primitive2d::getFontAttributeFromVclFont(aFontSize, m_xVirDev->GetFont(), diff --git a/sw/source/uibase/docvw/edtwin.cxx b/sw/source/uibase/docvw/edtwin.cxx index b7a63bda7a38..50ad58e1d7fd 100644 --- a/sw/source/uibase/docvw/edtwin.cxx +++ b/sw/source/uibase/docvw/edtwin.cxx @@ -4550,7 +4550,7 @@ void SwEditWin::MouseMove(const MouseEvent& _rMEvt) { if( !m_pShadCursor ) m_pShadCursor.reset( new SwShadowCursor( *this, - SwViewOption::GetDirectCursorColor() ) ); + rSh.GetViewOptions()->GetDirectCursorColor() ) ); if( text::HoriOrientation::RIGHT != eOrient && text::HoriOrientation::CENTER != eOrient ) eOrient = text::HoriOrientation::LEFT; m_pShadCursor->SetPos( aRect.Pos(), aRect.Height(), static_cast< sal_uInt16 >(eOrient) ); diff --git a/sw/source/uibase/frmdlg/colex.cxx b/sw/source/uibase/frmdlg/colex.cxx index 8649a33e049d..b77512b9e8e4 100644 --- a/sw/source/uibase/frmdlg/colex.cxx +++ b/sw/source/uibase/frmdlg/colex.cxx @@ -340,7 +340,7 @@ void SwColumnOnlyExample::Paint(vcl::RenderContext& rRenderContext, const tools: const StyleSettings& rStyleSettings = rRenderContext.GetSettings().GetStyleSettings(); const Color& rFieldColor = rStyleSettings.GetFieldColor(); const Color& rDlgColor = rStyleSettings.GetDialogColor(); - const Color& rFieldTextColor = SwViewOption::GetFontColor(); + const Color& rFieldTextColor = SwViewOption::GetCurrentViewOptions().GetFontColor(); Color aGrayColor(COL_LIGHTGRAY); if (rFieldColor == aGrayColor) aGrayColor.Invert(); diff --git a/sw/source/uibase/inc/DashedLine.hxx b/sw/source/uibase/inc/DashedLine.hxx index a2d2aa1b012f..f4b808ec29ad 100644 --- a/sw/source/uibase/inc/DashedLine.hxx +++ b/sw/source/uibase/inc/DashedLine.hxx @@ -10,15 +10,16 @@ #define INCLUDED_SW_SOURCE_UIBASE_INC_DASHEDLINE_HXX #include <vcl/ctrl.hxx> +#include <viewopt.hxx> /** Class for displaying a dashed line in the Writer GUI. */ class SwDashedLine : public Control { - Color& (*m_pColorFn)(); + const Color& (SwViewOption::*m_pColorFn)() const; public: - SwDashedLine(vcl::Window* pParent, Color& (*pColorFn)()); + SwDashedLine(vcl::Window* pParent, const Color& (SwViewOption::*pColorFn)() const); virtual ~SwDashedLine() override; virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override; diff --git a/sw/source/uibase/uiview/view0.cxx b/sw/source/uibase/uiview/view0.cxx index a9044776e029..ba555570044e 100644 --- a/sw/source/uibase/uiview/view0.cxx +++ b/sw/source/uibase/uiview/view0.cxx @@ -142,13 +142,13 @@ static bool lcl_IsViewMarks( const SwViewOption& rVOpt ) { return rVOpt.IsHardBlank() && rVOpt.IsSoftHyph() && - SwViewOption::IsFieldShadings(); + rVOpt.IsFieldShadings(); } static void lcl_SetViewMarks(SwViewOption& rVOpt, bool bOn ) { rVOpt.SetHardBlank(bOn); rVOpt.SetSoftHyph(bOn); - SwViewOption::SetAppearanceFlag( + rVOpt.SetAppearanceFlag( ViewOptFlags::FieldShadings, bOn, true); } @@ -253,13 +253,13 @@ void SwView::StateViewOptions(SfxItemSet &rSet) } break; case FN_VIEW_BOUNDS: - aBool.SetValue( SwViewOption::IsDocBoundaries()); break; + aBool.SetValue( pOpt->IsDocBoundaries()); break; case FN_VIEW_SECTION_BOUNDARIES: - aBool.SetValue(SwViewOption::IsSectionBoundaries()); break; + aBool.SetValue(pOpt->IsSectionBoundaries()); break; case FN_VIEW_GRAPHIC: aBool.SetValue( pOpt->IsGraphic() ); break; case FN_VIEW_FIELDS: - aBool.SetValue( SwViewOption::IsFieldShadings() ); break; + aBool.SetValue( pOpt->IsFieldShadings() ); break; case FN_VIEW_FIELDNAME: aBool.SetValue( pOpt->IsFieldName() ); break; case FN_VIEW_MARKS: @@ -267,7 +267,7 @@ void SwView::StateViewOptions(SfxItemSet &rSet) case FN_VIEW_META_CHARS: aBool.SetValue( pOpt->IsViewMetaChars() ); break; case FN_VIEW_TABLEGRID: - aBool.SetValue( SwViewOption::IsTableBoundaries() ); break; + aBool.SetValue( pOpt->IsTableBoundaries() ); break; case SID_TOGGLE_NOTES: { if (!GetPostItMgr()->HasNotes()) @@ -404,20 +404,20 @@ void SwView::ExecViewOptions(SfxRequest &rReq) case FN_VIEW_FIELDS: if( STATE_TOGGLE == eState ) - bFlag = !SwViewOption::IsFieldShadings() ; - SwViewOption::SetAppearanceFlag(ViewOptFlags::FieldShadings, bFlag, true ); + bFlag = !pOpt->IsFieldShadings() ; + pOpt->SetAppearanceFlag(ViewOptFlags::FieldShadings, bFlag, true ); break; case FN_VIEW_BOUNDS: if( STATE_TOGGLE == eState ) - bFlag = !SwViewOption::IsDocBoundaries(); - SwViewOption::SetAppearanceFlag(ViewOptFlags::DocBoundaries, bFlag, true ); + bFlag = !pOpt->IsDocBoundaries(); + pOpt->SetAppearanceFlag(ViewOptFlags::DocBoundaries, bFlag, true ); break; case FN_VIEW_SECTION_BOUNDARIES: if( STATE_TOGGLE == eState ) - bFlag = !SwViewOption::IsSectionBoundaries(); - SwViewOption::SetAppearanceFlag(ViewOptFlags::SectionBoundaries, bFlag, true ); + bFlag = !pOpt->IsSectionBoundaries(); + pOpt->SetAppearanceFlag(ViewOptFlags::SectionBoundaries, bFlag, true ); break; case SID_GRID_VISIBLE: @@ -531,8 +531,8 @@ void SwView::ExecViewOptions(SfxRequest &rReq) case FN_VIEW_TABLEGRID: if( STATE_TOGGLE == eState ) - bFlag = !SwViewOption::IsTableBoundaries(); - SwViewOption::SetAppearanceFlag(ViewOptFlags::TableBoundaries, bFlag, true ); + bFlag = !pOpt->IsTableBoundaries(); + pOpt->SetAppearanceFlag(ViewOptFlags::TableBoundaries, bFlag, true ); break; case FN_VIEW_FIELDNAME: diff --git a/sw/source/uibase/uiview/viewdraw.cxx b/sw/source/uibase/uiview/viewdraw.cxx index 35c3c3174f4e..9e718ee379ea 100644 --- a/sw/source/uibase/uiview/viewdraw.cxx +++ b/sw/source/uibase/uiview/viewdraw.cxx @@ -524,7 +524,7 @@ bool SwView::BeginTextEdit(SdrObject* pObj, SdrPageView* pPV, vcl::Window* pWin, const SwViewOption *pOpt = pSh->GetViewOptions(); - if (SwViewOption::IsFieldShadings()) + if (pOpt->IsFieldShadings()) nCntrl |= EEControlBits::MARKFIELDS; else nCntrl &= ~EEControlBits::MARKFIELDS; diff --git a/sw/source/uibase/uno/unomod.cxx b/sw/source/uibase/uno/unomod.cxx index 1506d197b850..a4f1def14629 100644 --- a/sw/source/uibase/uno/unomod.cxx +++ b/sw/source/uibase/uno/unomod.cxx @@ -575,10 +575,10 @@ void SwXViewSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, c case HANDLE_VIEWSET_DRAWINGS : mpViewOption->SetDraw(*o3tl::doAccess<bool>(rValue)); break; case HANDLE_VIEWSET_FIELD_COMMANDS : mpViewOption->SetFieldName(*o3tl::doAccess<bool>(rValue)); break; case HANDLE_VIEWSET_ANNOTATIONS : mpViewOption->SetPostIts(*o3tl::doAccess<bool>(rValue)); break; - case HANDLE_VIEWSET_INDEX_MARK_BACKGROUND : SwViewOption::SetAppearanceFlag(ViewOptFlags::FieldShadings, *o3tl::doAccess<bool>(rValue), true); break; + case HANDLE_VIEWSET_INDEX_MARK_BACKGROUND : mpViewOption->SetAppearanceFlag(ViewOptFlags::FieldShadings, *o3tl::doAccess<bool>(rValue), true); break; case HANDLE_VIEWSET_NONPRINTING_CHARACTERS: mpViewOption->SetViewMetaChars( *o3tl::doAccess<bool>(rValue) ); break; - case HANDLE_VIEWSET_FOOTNOTE_BACKGROUND : SwViewOption::SetAppearanceFlag(ViewOptFlags::FieldShadings, *o3tl::doAccess<bool>(rValue), true); break; - case HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND : SwViewOption::SetAppearanceFlag(ViewOptFlags::FieldShadings, *o3tl::doAccess<bool>(rValue), true); break; + case HANDLE_VIEWSET_FOOTNOTE_BACKGROUND : mpViewOption->SetAppearanceFlag(ViewOptFlags::FieldShadings, *o3tl::doAccess<bool>(rValue), true); break; + case HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND : mpViewOption->SetAppearanceFlag(ViewOptFlags::FieldShadings, *o3tl::doAccess<bool>(rValue), true); break; case HANDLE_VIEWSET_PARA_BREAKS : mpViewOption->SetParagraph(*o3tl::doAccess<bool>(rValue)); break; case HANDLE_VIEWSET_SOFT_HYPHENS : mpViewOption->SetSoftHyph(*o3tl::doAccess<bool>(rValue)); break; case HANDLE_VIEWSET_SPACES : mpViewOption->SetBlank(*o3tl::doAccess<bool>(rValue)); break; @@ -589,8 +589,8 @@ void SwXViewSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, c case HANDLE_VIEWSET_HIDDEN_TEXT : mpViewOption->SetShowHiddenField(*o3tl::doAccess<bool>(rValue)); break; case HANDLE_VIEWSET_HIDDEN_CHARACTERS : mpViewOption->SetShowHiddenChar(*o3tl::doAccess<bool>(rValue)); break; case HANDLE_VIEWSET_HIDDEN_PARAGRAPHS : mpViewOption->SetShowHiddenPara(*o3tl::doAccess<bool>(rValue)); break; - case HANDLE_VIEWSET_TABLE_BOUNDARIES : SwViewOption::SetAppearanceFlag(ViewOptFlags::TableBoundaries, *o3tl::doAccess<bool>(rValue), true); break; - case HANDLE_VIEWSET_TEXT_BOUNDARIES : SwViewOption::SetDocBoundaries(*o3tl::doAccess<bool>(rValue)); break; + case HANDLE_VIEWSET_TABLE_BOUNDARIES : mpViewOption->SetAppearanceFlag(ViewOptFlags::TableBoundaries, *o3tl::doAccess<bool>(rValue), true); break; + case HANDLE_VIEWSET_TEXT_BOUNDARIES : mpViewOption->SetDocBoundaries(*o3tl::doAccess<bool>(rValue)); break; case HANDLE_VIEWSET_SMOOTH_SCROLLING : mpViewOption->SetSmoothScroll(*o3tl::doAccess<bool>(rValue)); break; case HANDLE_VIEWSET_SHOW_CONTENT_TIPS : mpViewOption->SetShowContentTips(*o3tl::doAccess<bool>(rValue)); break; case HANDLE_VIEWSET_IS_RASTER_VISIBLE : mpViewOption->SetGridVisible(*o3tl::doAccess<bool>(rValue)); break; @@ -820,10 +820,10 @@ void SwXViewSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, u case HANDLE_VIEWSET_DRAWINGS : bBoolVal = mpConstViewOption->IsDraw(); break; case HANDLE_VIEWSET_FIELD_COMMANDS : bBoolVal = mpConstViewOption->IsFieldName(); break; case HANDLE_VIEWSET_ANNOTATIONS : bBoolVal = mpConstViewOption->IsPostIts(); break; - case HANDLE_VIEWSET_INDEX_MARK_BACKGROUND : bBoolVal = SwViewOption::IsFieldShadings(); break; + case HANDLE_VIEWSET_INDEX_MARK_BACKGROUND : bBoolVal = mpConstViewOption->IsFieldShadings(); break; case HANDLE_VIEWSET_NONPRINTING_CHARACTERS: bBoolVal = mpConstViewOption->IsViewMetaChars(); break; - case HANDLE_VIEWSET_FOOTNOTE_BACKGROUND : bBoolVal = SwViewOption::IsFieldShadings(); break; - case HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND : bBoolVal = SwViewOption::IsFieldShadings(); break; + case HANDLE_VIEWSET_FOOTNOTE_BACKGROUND : bBoolVal = mpConstViewOption->IsFieldShadings(); break; + case HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND : bBoolVal = mpConstViewOption->IsFieldShadings(); break; case HANDLE_VIEWSET_PARA_BREAKS : bBoolVal = mpConstViewOption->IsParagraph(true); break; case HANDLE_VIEWSET_SOFT_HYPHENS : bBoolVal = mpConstViewOption->IsSoftHyph(); break; case HANDLE_VIEWSET_SPACES : bBoolVal = mpConstViewOption->IsBlank(true); break; @@ -835,8 +835,8 @@ void SwXViewSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, u case HANDLE_VIEWSET_HIDDEN_CHARACTERS : bBoolVal = mpConstViewOption->IsShowHiddenChar(true); break; case HANDLE_VIEWSET_HIDE_WHITESPACE : bBoolVal = mpConstViewOption->IsHideWhitespaceMode(); break; case HANDLE_VIEWSET_HIDDEN_PARAGRAPHS : bBoolVal = mpConstViewOption->IsShowHiddenPara(); break; - case HANDLE_VIEWSET_TABLE_BOUNDARIES : bBoolVal = SwViewOption::IsTableBoundaries(); break; - case HANDLE_VIEWSET_TEXT_BOUNDARIES : bBoolVal = SwViewOption::IsDocBoundaries(); break; + case HANDLE_VIEWSET_TABLE_BOUNDARIES : bBoolVal = mpConstViewOption->IsTableBoundaries(); break; + case HANDLE_VIEWSET_TEXT_BOUNDARIES : bBoolVal = mpConstViewOption->IsDocBoundaries(); break; case HANDLE_VIEWSET_SMOOTH_SCROLLING : bBoolVal = mpConstViewOption->IsSmoothScroll(); break; case HANDLE_VIEWSET_SHOW_CONTENT_TIPS : bBoolVal = mpConstViewOption->IsShowContentTips(); break; case HANDLE_VIEWSET_INLINECHANGES_TIPS : bBoolVal = mpConstViewOption->IsShowInlineTooltips(); break; diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx index ece205867661..57ed9d0879c6 100644 --- a/sw/source/uibase/uno/unotxdoc.cxx +++ b/sw/source/uibase/uno/unotxdoc.cxx @@ -3598,7 +3598,7 @@ void SwXTextDocument::initializeForTiledRendering(const css::uno::Sequence<css:: aViewOption.SetHardBlank(false); // Disable field shadings: the result would depend on the cursor position. - SwViewOption::SetAppearanceFlag(ViewOptFlags::FieldShadings, false); + aViewOption.SetAppearanceFlag(ViewOptFlags::FieldShadings, false); OUString sOrigAuthor = SW_MOD()->GetRedlineAuthor(SW_MOD()->GetRedlineAuthor()); OUString sAuthor; @@ -3608,7 +3608,7 @@ void SwXTextDocument::initializeForTiledRendering(const css::uno::Sequence<css:: if (rValue.Name == ".uno:HideWhitespace" && rValue.Value.has<bool>()) aViewOption.SetHideWhitespaceMode(rValue.Value.get<bool>()); else if (rValue.Name == ".uno:ShowBorderShadow" && rValue.Value.has<bool>()) - SwViewOption::SetAppearanceFlag(ViewOptFlags::Shadow , rValue.Value.get<bool>()); + aViewOption.SetAppearanceFlag(ViewOptFlags::Shadow , rValue.Value.get<bool>()); else if (rValue.Name == ".uno:Author" && rValue.Value.has<OUString>()) { sAuthor = rValue.Value.get<OUString>(); |