summaryrefslogtreecommitdiff
path: root/sw/inc/viewopt.hxx
diff options
context:
space:
mode:
authorParis Oplopoios <paris.oplopoios@collabora.com>2023-03-08 17:34:02 +0200
committerMiklos Vajna <vmiklos@collabora.com>2023-03-16 08:41:38 +0000
commit1916d161902bdd52b8cfa5b29153c8f8c39fce52 (patch)
treefdb789357ef4e58e3f26066235b5928efcf63437 /sw/inc/viewopt.hxx
parentee8e9b993595e728f827a5fe6ab1ae5fb1f6aaae (diff)
De-static-izing colors in SwViewOption
The view colors in SwViewOption were static which means that two separate views couldn't have different colors Change-Id: Id595b00ba56bdb210ad1a784cf76e99ead0d6014 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148481 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Diffstat (limited to 'sw/inc/viewopt.hxx')
-rw-r--r--sw/inc/viewopt.hxx172
1 files changed, 110 insertions, 62 deletions
diff --git a/sw/inc/viewopt.hxx b/sw/inc/viewopt.hxx
index c399aa6b94dd..4c9dcf8e071b 100644
--- a/sw/inc/viewopt.hxx
+++ b/sw/inc/viewopt.hxx
@@ -193,30 +193,62 @@ namespace o3tl {
template<> struct typed_flags<ViewOptFlags> : is_typed_flags<ViewOptFlags, 0x01ff> {};
}
+struct SwViewColors
+{
+ SwViewColors();
+ SwViewColors(const svtools::ColorConfig& rConfig);
+ bool operator==(const SwViewColors& rOther) const
+ {
+ return m_aDocColor == rOther.m_aDocColor
+ && m_aDocBoundColor == rOther.m_aDocBoundColor
+ && m_aObjectBoundColor == rOther.m_aObjectBoundColor
+ && m_aAppBackgroundColor == rOther.m_aAppBackgroundColor
+ && m_aTableBoundColor == rOther.m_aTableBoundColor
+ && m_aFontColor == rOther.m_aFontColor
+ && m_aIndexShadingsColor == rOther.m_aIndexShadingsColor
+ && m_aLinksColor == rOther.m_aLinksColor
+ && m_aVisitedLinksColor == rOther.m_aVisitedLinksColor
+ && m_aDirectCursorColor == rOther.m_aDirectCursorColor
+ && m_aTextGridColor == rOther.m_aTextGridColor
+ && m_aSpellColor == rOther.m_aSpellColor
+ && m_aGrammarColor == rOther.m_aGrammarColor
+ && m_aSmarttagColor == rOther.m_aSmarttagColor
+ && m_aFieldShadingsColor == rOther.m_aFieldShadingsColor
+ && m_aSectionBoundColor == rOther.m_aSectionBoundColor
+ && m_aPageBreakColor == rOther.m_aPageBreakColor
+ && m_aScriptIndicatorColor == rOther.m_aScriptIndicatorColor
+ && m_aShadowColor == rOther.m_aShadowColor
+ && m_aHeaderFooterMarkColor == rOther.m_aHeaderFooterMarkColor
+ && m_nAppearanceFlags == rOther.m_nAppearanceFlags;
+ }
+ Color m_aDocColor; // color of document boundaries
+ Color m_aDocBoundColor; // color of document boundaries
+ Color m_aObjectBoundColor; // color of object boundaries
+ Color m_aAppBackgroundColor; // application background
+ Color m_aTableBoundColor; // color of table boundaries
+ Color m_aFontColor;
+ Color m_aIndexShadingsColor; // background color of indexes
+ Color m_aLinksColor;
+ Color m_aVisitedLinksColor;
+ Color m_aDirectCursorColor;
+ Color m_aTextGridColor;
+ Color m_aSpellColor; // mark color of online spell checking
+ Color m_aGrammarColor;
+ Color m_aSmarttagColor;
+ Color m_aFieldShadingsColor;
+ Color m_aSectionBoundColor;
+ Color m_aPageBreakColor;
+ Color m_aScriptIndicatorColor;
+ Color m_aShadowColor;
+ Color m_aHeaderFooterMarkColor;
+ ViewOptFlags m_nAppearanceFlags;
+};
+
class SW_DLLPUBLIC SwViewOption
{
- static Color s_aDocColor; // color of document boundaries
- static Color s_aDocBoundColor; // color of document boundaries
- static Color s_aObjectBoundColor; // color of object boundaries
- static Color s_aAppBackgroundColor; // application background
- static Color s_aTableBoundColor; // color of table boundaries
- static Color s_aFontColor;
- static Color s_aIndexShadingsColor; // background color of indexes
- static Color s_aLinksColor;
- static Color s_aVisitedLinksColor;
- static Color s_aDirectCursorColor;
- static Color s_aTextGridColor;
- static Color s_aSpellColor; // mark color of online spell checking
- static Color s_aGrammarColor;
- static Color s_aSmarttagColor;
- static Color s_aFieldShadingsColor;
- static Color s_aSectionBoundColor;
- static Color s_aPageBreakColor;
- static Color s_aScriptIndicatorColor;
- static Color s_aShadowColor;
- static Color s_aHeaderFooterMarkColor;
-
- static ViewOptFlags s_nAppearanceFlags;
+ SwViewColors m_aColorConfig;
+ static SwViewColors s_aInitialColorConfig;
+
static sal_uInt16 s_nPixelTwips;// 1 Pixel == ? Twips
OUString m_sSymbolFont; // Symbolfont.
@@ -272,6 +304,21 @@ public:
inline void SetUIOptions( const SwViewOption& );
+ void SetColorConfig(const SwViewColors& rColorConfig)
+ {
+ m_aColorConfig = rColorConfig;
+ }
+
+ const SwViewColors& GetColorConfig() const
+ {
+ return m_aColorConfig;
+ }
+
+ static void SetInitialColorConfig(const SwViewColors& rColorConfig)
+ {
+ s_aInitialColorConfig = rColorConfig;
+ }
+
// Options from nCoreOptions
bool IsIdle() const
{ return m_bIdle; }
@@ -382,8 +429,8 @@ public:
void SetResolvedPostIts( bool b )
{ SetUIOption(b, ViewOptFlags2::ResolvedPostits); }
- static void PaintPostIts( OutputDevice *pOut, const SwRect &rRect,
- bool bIsScript );
+ void PaintPostIts( OutputDevice *pOut, const SwRect &rRect,
+ bool bIsScript ) const;
static sal_uInt16 GetPostItsWidth( const OutputDevice *pOut );
//show/hide tooltips on tracked changes
@@ -749,43 +796,41 @@ public:
bool IsShowPlaceHolderFields() const { return m_bShowPlaceHolderFields; }
void SetShowPlaceHolderFields(bool bSet) { m_bShowPlaceHolderFields = bSet; }
- static Color& GetDocColor();
- static Color& GetDocBoundariesColor();
- static Color& GetAppBackgroundColor();
- static Color& GetObjectBoundariesColor();
- static Color& GetTableBoundariesColor();
- static Color& GetIndexShadingsColor();
- static Color& GetLinksColor();
- static Color& GetVisitedLinksColor();
- static Color& GetDirectCursorColor();
- static Color& GetTextGridColor();
- static Color& GetSpellColor();
- static Color& GetGrammarColor();
- static Color& GetSmarttagColor();
- static Color& GetShadowColor();
- static Color& GetFontColor();
- static Color& GetFieldShadingsColor();
- static Color& GetSectionBoundColor();
- static Color& GetPageBreakColor();
- static Color& GetHeaderFooterMarkColor();
-
- static bool IsAppearanceFlag(ViewOptFlags nFlag);
-
- static bool IsDocBoundaries() {return IsAppearanceFlag(ViewOptFlags::DocBoundaries);}
- static bool IsObjectBoundaries() {return IsAppearanceFlag(ViewOptFlags::ObjectBoundaries);}
- static bool IsTableBoundaries() {return IsAppearanceFlag(ViewOptFlags::TableBoundaries );}
- static bool IsIndexShadings() {return IsAppearanceFlag(ViewOptFlags::IndexShadings );}
- static bool IsLinks() {return IsAppearanceFlag(ViewOptFlags::Links );}
- static bool IsVisitedLinks() {return IsAppearanceFlag(ViewOptFlags::VisitedLinks );}
- static bool IsFieldShadings() {return IsAppearanceFlag(ViewOptFlags::FieldShadings);}
- static bool IsSectionBoundaries() {return IsAppearanceFlag(ViewOptFlags::SectionBoundaries);}
- static bool IsShadow() {return IsAppearanceFlag(ViewOptFlags::Shadow );}
-
- static void SetAppearanceFlag(ViewOptFlags nFlag, bool bSet, bool bSaveInConfig = false);
-
- static void SetDocBoundaries(bool bSet) {SetAppearanceFlag(ViewOptFlags::DocBoundaries, bSet);}
-
- static void ApplyColorConfigValues(const svtools::ColorConfig& rConfig);
+ const Color& GetDocColor() const;
+ const Color& GetDocBoundariesColor() const;
+ const Color& GetAppBackgroundColor() const;
+ const Color& GetObjectBoundariesColor() const;
+ const Color& GetTableBoundariesColor() const;
+ const Color& GetIndexShadingsColor() const;
+ const Color& GetLinksColor() const;
+ const Color& GetVisitedLinksColor() const;
+ const Color& GetDirectCursorColor() const;
+ const Color& GetTextGridColor() const;
+ const Color& GetSpellColor() const;
+ const Color& GetGrammarColor() const;
+ const Color& GetSmarttagColor() const;
+ const Color& GetShadowColor() const;
+ const Color& GetFontColor() const;
+ const Color& GetFieldShadingsColor() const;
+ const Color& GetSectionBoundColor() const;
+ const Color& GetPageBreakColor() const;
+ const Color& GetHeaderFooterMarkColor() const;
+
+ bool IsAppearanceFlag(ViewOptFlags nFlag) const;
+
+ bool IsDocBoundaries() const {return IsAppearanceFlag(ViewOptFlags::DocBoundaries);}
+ bool IsObjectBoundaries() const {return IsAppearanceFlag(ViewOptFlags::ObjectBoundaries);}
+ bool IsTableBoundaries() const {return IsAppearanceFlag(ViewOptFlags::TableBoundaries);}
+ bool IsIndexShadings() const {return IsAppearanceFlag(ViewOptFlags::IndexShadings);}
+ bool IsLinks() const {return IsAppearanceFlag(ViewOptFlags::Links);}
+ bool IsVisitedLinks() const {return IsAppearanceFlag(ViewOptFlags::VisitedLinks);}
+ bool IsFieldShadings() const {return IsAppearanceFlag(ViewOptFlags::FieldShadings);}
+ bool IsSectionBoundaries() const {return IsAppearanceFlag(ViewOptFlags::SectionBoundaries);}
+ bool IsShadow() const {return IsAppearanceFlag(ViewOptFlags::Shadow);}
+
+ void SetAppearanceFlag(ViewOptFlags nFlag, bool bSet, bool bSaveInConfig = false);
+
+ void SetDocBoundaries(bool bSet) {SetAppearanceFlag(ViewOptFlags::DocBoundaries, bSet);}
// get/set default anchor (0..2); use GetDefaultAnchorType() to convert into RndStdIds::FLY_*
sal_Int32 GetDefaultAnchor() const
@@ -794,11 +839,14 @@ public:
{ m_nDefaultAnchor = aFlag; }
RndStdIds GetDefaultAnchorType() const;
+
+ // Useful for when getting the current view SwViewOption is not possible otherwise
+ static const SwViewOption& GetCurrentViewOptions();
};
inline bool SwViewOption::operator==( const SwViewOption &rOpt ) const
{
- return IsEqualFlags( rOpt ) && m_nZoom == rOpt.GetZoom();
+ return IsEqualFlags( rOpt ) && m_nZoom == rOpt.GetZoom() && m_aColorConfig == rOpt.m_aColorConfig;
}
inline void SwViewOption::SetUIOptions( const SwViewOption& rVOpt )