basctl/inc/pch/precompiled_basctl.hxx            |    4 
 chart2/inc/pch/precompiled_chartcontroller.hxx   |    4 
 cui/inc/pch/precompiled_cui.hxx                  |    3 
 cui/source/tabpages/chardlg.cxx                  |    3 
 docmodel/Library_docmodel.mk                     |    2 
 docmodel/source/color/ComplexColorJSON.cxx       |    4 
 docmodel/source/theme/ColorSet.cxx               |    6 -
 docmodel/source/uno/UnoComplexColor.cxx          |    2 
 editeng/source/items/textitem.cxx                |    6 -
 editeng/source/uno/unotext.cxx                   |    4 
 include/docmodel/color/ComplexColor.hxx          |   75 ++++++++++-------
 include/docmodel/theme/ColorSet.hxx              |    1 
 include/docmodel/theme/FormatScheme.hxx          |   19 ++--
 include/docmodel/theme/Theme.hxx                 |    1 
 include/docmodel/theme/ThemeColor.hxx            |  101 -----------------------
 include/docmodel/uno/UnoComplexColor.hxx         |    2 
 include/oox/export/ThemeExport.hxx               |    2 
 include/svx/Palette.hxx                          |    6 -
 offapi/com/sun/star/util/XComplexColor.idl       |    5 -
 oox/inc/pch/precompiled_oox.hxx                  |    3 
 oox/qa/unit/drawingml.cxx                        |   14 +--
 oox/qa/unit/shape.cxx                            |    2 
 oox/source/drawingml/color.cxx                   |    7 -
 oox/source/drawingml/colorchoicecontext.cxx      |   11 --
 oox/source/drawingml/fillproperties.cxx          |    2 
 oox/source/drawingml/lineproperties.cxx          |    4 
 oox/source/export/ThemeExport.cxx                |   36 ++++----
 oox/source/export/drawingml.cxx                  |    4 
 reportdesign/inc/pch/precompiled_rptui.hxx       |    4 
 sc/qa/unit/SparklineImportExportTest.cxx         |   15 +--
 sc/qa/unit/ThemeImportExportTest.cxx             |   24 ++---
 sc/qa/unit/ucalc_DocumentThemes.cxx              |    4 
 sc/qa/unit/ucalc_sparkline.cxx                   |    4 
 sc/source/filter/excel/export/ExportTools.cxx    |    6 -
 sc/source/filter/excel/xestream.cxx              |    4 
 sc/source/filter/excel/xestyle.cxx               |    4 
 sc/source/filter/xml/SparklineGroupsExport.cxx   |    2 
 sc/source/ui/theme/ThemeColorChanger.cxx         |   52 ++++-------
 sd/inc/pch/precompiled_sdui.hxx                  |    4 
 sd/qa/unit/uiimpress.cxx                         |    4 
 sd/source/core/stlsheet.cxx                      |    2 
 sd/source/ui/view/drtxtob1.cxx                   |    2 
 sd/source/ui/view/drviews2.cxx                   |    2 
 svx/inc/pch/precompiled_svx.hxx                  |    1 
 svx/qa/unit/styles.cxx                           |    4 
 svx/qa/unit/xoutdev.cxx                          |    4 
 svx/source/table/cell.cxx                        |    3 
 svx/source/tbxctrls/PaletteManager.cxx           |    2 
 svx/source/theme/ThemeColorChanger.cxx           |    6 -
 svx/source/theme/ThemeColorPaletteManager.cxx    |    2 
 svx/source/unodraw/unoshape.cxx                  |    3 
 svx/source/xoutdev/xattr.cxx                     |    6 -
 sw/inc/pch/precompiled_msword.hxx                |    5 +
 sw/inc/pch/precompiled_swui.hxx                  |    4 
 sw/qa/core/theme/ThemeTest.cxx                   |   92 ++++++++++----------
 sw/qa/extras/ooxmlexport/ooxml_ThemeExport.cxx   |   16 +--
 sw/source/core/model/ThemeColorChanger.cxx       |   97 +++++++---------------
 sw/source/filter/ww8/docxattributeoutput.cxx     |   17 +--
 writerfilter/source/dmapper/BorderHandler.cxx    |    2 
 writerfilter/source/dmapper/CellColorHandler.cxx |    4 
 writerfilter/source/dmapper/DomainMapper.cxx     |    6 -
 writerfilter/source/dmapper/TDefTableHandler.cxx |    2 
 xmloff/qa/unit/draw.cxx                          |   14 +--
 xmloff/source/text/XMLComplexColorContext.cxx    |    6 -
 xmloff/source/text/XMLComplexColorExport.cxx     |    5 -
 65 files changed, 326 insertions(+), 441 deletions(-)

New commits:
commit e9e18abdc76368e2599dd7a5c4f2d9903a0b9cf6
Author:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
AuthorDate: Thu Aug 3 10:14:40 2023 +0200
Commit:     Mike Kaganski <mike.kagan...@collabora.com>
CommitDate: Mon Aug 28 12:42:43 2023 +0200

    ComplexColor various clean-up and (trivial) refactorings
    
    Don't allow access to member variables of ComplexColor and makes
    them private. Needs a lot of changes.
    
    Change "scheme" to "theme" to be more consistent. In LO we usually
    call the "theme color" what is usually refered to as "scheme color"
    in OOXML, where it is sometimes refered to as "scheme" and other times
    as theme color.
    
    Remove ThemeColor class which was replaced with CmplexColor some
    time ago.
    
    Remove un-needed includes and un-needed components.
    
    Use isValidThemeColor in many places where we check that the
    ComplexColor is of "Theme" type and that ThemeColorType is set to
    a valid value.
    
    Change-Id: I325595fa65b8e56a4707e9d22acc6330aac28961
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155359
    Tested-by: Jenkins
    Reviewed-by: Tomaž Vajngerl <qui...@gmail.com>
    (cherry picked from commit 9d5a7d9257db78eb3f4d77c39eae1affe877ea6b)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156150
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>

diff --git a/basctl/inc/pch/precompiled_basctl.hxx 
b/basctl/inc/pch/precompiled_basctl.hxx
index 257159149a3b..d882231ec62d 100644
--- a/basctl/inc/pch/precompiled_basctl.hxx
+++ b/basctl/inc/pch/precompiled_basctl.hxx
@@ -369,6 +369,10 @@
 #include <cppuhelper/weak.hxx>
 #include <cppuhelper/weakagg.hxx>
 #include <cppuhelper/weakref.hxx>
+#include <docmodel/color/ComplexColor.hxx>
+#include <docmodel/color/Transformation.hxx>
+#include <docmodel/dllapi.h>
+#include <docmodel/theme/ThemeColorType.hxx>
 #include <drawinglayer/drawinglayerdllapi.h>
 #include <drawinglayer/geometry/viewinformation2d.hxx>
 #include <drawinglayer/primitive2d/CommonTypes.hxx>
diff --git a/chart2/inc/pch/precompiled_chartcontroller.hxx 
b/chart2/inc/pch/precompiled_chartcontroller.hxx
index ba4ccbddf15e..1024143cec34 100644
--- a/chart2/inc/pch/precompiled_chartcontroller.hxx
+++ b/chart2/inc/pch/precompiled_chartcontroller.hxx
@@ -301,6 +301,10 @@
 #include <cppuhelper/weak.hxx>
 #include <cppuhelper/weakagg.hxx>
 #include <cppuhelper/weakref.hxx>
+#include <docmodel/color/ComplexColor.hxx>
+#include <docmodel/color/Transformation.hxx>
+#include <docmodel/dllapi.h>
+#include <docmodel/theme/ThemeColorType.hxx>
 #include <drawinglayer/drawinglayerdllapi.h>
 #include <drawinglayer/geometry/viewinformation2d.hxx>
 #include <drawinglayer/primitive2d/CommonTypes.hxx>
diff --git a/cui/inc/pch/precompiled_cui.hxx b/cui/inc/pch/precompiled_cui.hxx
index 7b7688c74ad9..bebb8176e56b 100644
--- a/cui/inc/pch/precompiled_cui.hxx
+++ b/cui/inc/pch/precompiled_cui.hxx
@@ -281,6 +281,9 @@
 #include <cppuhelper/queryinterface.hxx>
 #include <cppuhelper/weak.hxx>
 #include <cppuhelper/weakref.hxx>
+#include <docmodel/color/ComplexColor.hxx>
+#include <docmodel/color/Transformation.hxx>
+#include <docmodel/dllapi.h>
 #include <docmodel/theme/ThemeColorType.hxx>
 #include <drawinglayer/drawinglayerdllapi.h>
 #include <drawinglayer/geometry/viewinformation2d.hxx>
diff --git a/cui/source/tabpages/chardlg.cxx b/cui/source/tabpages/chardlg.cxx
index c8bbdd441231..325b7925fb66 100644
--- a/cui/source/tabpages/chardlg.cxx
+++ b/cui/source/tabpages/chardlg.cxx
@@ -1600,8 +1600,7 @@ bool SvxCharEffectsPage::FillItemSetColor_Impl( 
SfxItemSet& rSet )
         model::ThemeColorType eType = 
model::convertToThemeColorType(aSelectedColor.m_nThemeIndex);
         if (eType != model::ThemeColorType::Unknown)
         {
-            model::ComplexColor aComplexColor;
-            aComplexColor.setSchemeColor(eType);
+            auto aComplexColor = model::ComplexColor::Theme(eType);
             
aComplexColor.addTransformation({model::TransformationType::LumMod, 
aSelectedColor.m_nLumMod});
             
aComplexColor.addTransformation({model::TransformationType::LumOff, 
aSelectedColor.m_nLumOff});
             aItem.setComplexColor(aComplexColor);
diff --git a/docmodel/Library_docmodel.mk b/docmodel/Library_docmodel.mk
index 2e474eb4f0b8..722e723daa55 100644
--- a/docmodel/Library_docmodel.mk
+++ b/docmodel/Library_docmodel.mk
@@ -36,12 +36,10 @@ $(eval $(call 
gb_Library_set_precompiled_header,docmodel,docmodel/inc/pch/precom
 $(eval $(call gb_Library_use_sdk_api,docmodel))
 
 $(eval $(call gb_Library_use_libraries,docmodel,\
-    basegfx \
     comphelper \
     cppuhelper \
     cppu \
     sal \
-    vcl \
     tl \
 ))
 
diff --git a/docmodel/source/color/ComplexColorJSON.cxx 
b/docmodel/source/color/ComplexColorJSON.cxx
index f4d6fdf0af1b..be4816e05e0a 100644
--- a/docmodel/source/color/ComplexColorJSON.cxx
+++ b/docmodel/source/color/ComplexColorJSON.cxx
@@ -26,7 +26,7 @@ bool convertFromJSON(OString const& rJsonString, 
model::ComplexColor& rComplexCo
         boost::property_tree::read_json(aStream, aRootTree);
 
         sal_Int32 nThemeType = aRootTree.get<sal_Int32>("ThemeIndex", -1);
-        
aComplexColor.setSchemeColor(model::convertToThemeColorType(nThemeType));
+        
aComplexColor.setThemeColor(model::convertToThemeColorType(nThemeType));
         boost::property_tree::ptree aTransformTree = 
aRootTree.get_child("Transformations");
         for (const auto& rEachTransformationNode :
              boost::make_iterator_range(aTransformTree.equal_range("")))
@@ -60,7 +60,7 @@ bool convertFromJSON(OString const& rJsonString, 
model::ComplexColor& rComplexCo
 
 void convertToJSONTree(boost::property_tree::ptree& rTree, model::ComplexColor 
const& rComplexColor)
 {
-    rTree.put("ThemeIndex", sal_Int16(rComplexColor.getSchemeType()));
+    rTree.put("ThemeIndex", sal_Int16(rComplexColor.getThemeColorType()));
 
     boost::property_tree::ptree aTransformationsList;
     for (auto const& rTransformation : rComplexColor.getTransformations())
diff --git a/docmodel/source/theme/ColorSet.cxx 
b/docmodel/source/theme/ColorSet.cxx
index 71b928b9f2a7..df7cf18f61b6 100644
--- a/docmodel/source/theme/ColorSet.cxx
+++ b/docmodel/source/theme/ColorSet.cxx
@@ -40,13 +40,13 @@ Color ColorSet::getColor(model::ThemeColorType eType) const
 
 Color ColorSet::resolveColor(model::ComplexColor const& rComplexColor) const
 {
-    auto eSchemeType = rComplexColor.meSchemeType;
-    if (eSchemeType == model::ThemeColorType::Unknown)
+    auto eThemeType = rComplexColor.getThemeColorType();
+    if (eThemeType == model::ThemeColorType::Unknown)
     {
         SAL_WARN("svx", "ColorSet::resolveColor with ThemeColorType::Unknown");
         return COL_AUTO;
     }
-    Color aColor = getColor(eSchemeType);
+    Color aColor = getColor(eThemeType);
     return rComplexColor.applyTransformations(aColor);
 }
 
diff --git a/docmodel/source/uno/UnoComplexColor.cxx 
b/docmodel/source/uno/UnoComplexColor.cxx
index 673627bc98a4..f419543ca0a9 100644
--- a/docmodel/source/uno/UnoComplexColor.cxx
+++ b/docmodel/source/uno/UnoComplexColor.cxx
@@ -15,7 +15,7 @@ using namespace css;
 
 sal_Int32 UnoComplexColor::getType() { return sal_Int32(maColor.getType()); }
 
-sal_Int32 UnoComplexColor::getSchemeColorType() { return 
sal_Int32(maColor.getSchemeType()); }
+sal_Int32 UnoComplexColor::getThemeColorType() { return 
sal_Int32(maColor.getThemeColorType()); }
 
 util::Color UnoComplexColor::resolveColor(uno::Reference<util::XTheme> const& 
/*xTheme*/)
 {
diff --git a/editeng/source/items/textitem.cxx 
b/editeng/source/items/textitem.cxx
index f4194da865a6..a835a9f3affa 100644
--- a/editeng/source/items/textitem.cxx
+++ b/editeng/source/items/textitem.cxx
@@ -1424,7 +1424,7 @@ bool SvxColorItem::QueryValue( uno::Any& rVal, sal_uInt8 
nMemberId ) const
         }
         case MID_COLOR_THEME_INDEX:
         {
-            rVal <<= sal_Int16(maComplexColor.meSchemeType);
+            rVal <<= sal_Int16(maComplexColor.getThemeColorType());
             break;
         }
         case MID_COLOR_TINT_OR_SHADE:
@@ -1509,7 +1509,7 @@ bool SvxColorItem::PutValue( const uno::Any& rVal, 
sal_uInt8 nMemberId )
             sal_Int16 nIndex = -1;
             if (!(rVal >>= nIndex))
                 return false;
-            
maComplexColor.setSchemeColor(model::convertToThemeColorType(nIndex));
+            
maComplexColor.setThemeColor(model::convertToThemeColorType(nIndex));
         }
         break;
         case MID_COLOR_TINT_OR_SHADE:
@@ -1617,7 +1617,7 @@ void SvxColorItem::dumpAsXml(xmlTextWriterPtr pWriter) 
const
     (void)xmlTextWriterStartElement(pWriter, BAD_CAST("complex-color"));
 
     (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST("type"),
-                                      
BAD_CAST(OString::number(sal_Int16(maComplexColor.meType)).getStr()));
+                                      
BAD_CAST(OString::number(sal_Int16(maComplexColor.getType())).getStr()));
 
     for (auto const& rTransform : maComplexColor.getTransformations())
     {
diff --git a/editeng/source/uno/unotext.cxx b/editeng/source/uno/unotext.cxx
index 9d7493389fdd..1dfb4f6f9d8e 100644
--- a/editeng/source/uno/unotext.cxx
+++ b/editeng/source/uno/unotext.cxx
@@ -1142,7 +1142,7 @@ bool SvxUnoTextRangeBase::_getOnePropertyStates(const 
SfxItemSet* pSet, const Sf
             switch (pMap->nMemberId)
             {
                 case MID_COLOR_THEME_INDEX:
-                    if (pColor->getComplexColor().meSchemeType == 
model::ThemeColorType::Unknown)
+                    if (!pColor->getComplexColor().isValidThemeType())
                     {
                         eItemState = SfxItemState::DEFAULT;
                     }
@@ -1176,7 +1176,7 @@ bool SvxUnoTextRangeBase::_getOnePropertyStates(const 
SfxItemSet* pSet, const Sf
                     break;
                 }
                 case MID_COMPLEX_COLOR:
-                    if (pColor->getComplexColor().meType == 
model::ColorType::Unused)
+                    if (pColor->getComplexColor().getType() == 
model::ColorType::Unused)
                     {
                         eItemState = SfxItemState::DEFAULT;
                     }
diff --git a/include/docmodel/color/ComplexColor.hxx 
b/include/docmodel/color/ComplexColor.hxx
index 88ff7a42a478..92d39a28426b 100644
--- a/include/docmodel/color/ComplexColor.hxx
+++ b/include/docmodel/color/ComplexColor.hxx
@@ -12,8 +12,8 @@
 
 #include <docmodel/dllapi.h>
 #include <tools/color.hxx>
-#include <docmodel/theme/ThemeColor.hxx>
-#include <com/sun/star/graphic/XGraphic.hpp>
+#include <docmodel/theme/ThemeColorType.hxx>
+#include <docmodel/color/Transformation.hxx>
 #include <o3tl/hash_combine.hxx>
 
 namespace model
@@ -24,7 +24,7 @@ enum class ColorType
     RGB,
     CRGB,
     HSL,
-    Scheme,
+    Theme,
     Palette,
     System,
     Placeholder
@@ -69,7 +69,7 @@ enum class SystemColorType
  *
  * A color that can be expresses as a RGB, CRGB or HSL representation or
  * a more abstract representation as for example system color, palette,
- * scheme (theme) color or a placeholder. In these representations the
+ * theme color or a placeholder. In these representations the
  * color needs to be additionally
  *
  * The color can also have transformations defined, which in addition
@@ -77,32 +77,45 @@ enum class SystemColorType
  */
 class DOCMODEL_DLLPUBLIC ComplexColor
 {
-public:
+private:
     ColorType meType = ColorType::Unused;
 
-    sal_Int32 mnComponent1 = 0; // Red, Hue
-    sal_Int32 mnComponent2 = 0; // Green, Saturation
-    sal_Int32 mnComponent3 = 0; // Blue, Luminance
+    double mnComponent1 = 0.0; // Red, Hue
+    double mnComponent2 = 0.0; // Green, Saturation
+    double mnComponent3 = 0.0; // Blue, Luminance
 
     SystemColorType meSystemColorType = SystemColorType::Unused;
     ::Color maLastColor;
 
-    ThemeColorType meSchemeType = ThemeColorType::Unknown;
+    ThemeColorType meThemeColorType = ThemeColorType::Unknown;
     ThemeColorUsage meThemeColorUsage = ThemeColorUsage::Unknown;
+
     std::vector<Transformation> maTransformations;
 
     ::Color maFinalColor;
 
 public:
     ColorType getType() const { return meType; }
-
     void setType(ColorType eType) { meType = eType; }
 
-    ThemeColorType getSchemeType() const { return meSchemeType; }
+    ThemeColorType getThemeColorType() const { return meThemeColorType; }
+    bool isValidThemeType() const
+    {
+        return meType == model::ColorType::Theme && meThemeColorType != 
ThemeColorType::Unknown;
+    }
+
+    ThemeColorUsage getThemeColorUsage() const { return meThemeColorUsage; }
+    void setThemeColorUsage(ThemeColorUsage eThemeColorUsage)
+    {
+        meThemeColorUsage = eThemeColorUsage;
+    }
+
+    SystemColorType getSystemColorType() const { return meSystemColorType; }
 
-    bool isValidSchemeType() const
+    void setSystemColorType(SystemColorType eSystemColorType)
     {
-        return meType == model::ColorType::Scheme && meSchemeType != 
ThemeColorType::Unknown;
+        meSystemColorType = eSystemColorType;
+        meType = ColorType::System;
     }
 
     Color getRGBColor() const { return Color(mnComponent1, mnComponent2, 
mnComponent3); }
@@ -130,6 +143,10 @@ public:
 
     void clearTransformations() { maTransformations.clear(); }
 
+    double getRed() const { return mnComponent1; }
+    double getGreen() const { return mnComponent2; }
+    double getBlue() const { return mnComponent3; }
+
     void setCRGB(sal_Int32 nR, sal_Int32 nG, sal_Int32 nB)
     {
         mnComponent1 = nR;
@@ -138,6 +155,8 @@ public:
         meType = ColorType::CRGB;
     }
 
+    Color getRGB() const { return Color(mnComponent1, mnComponent2, 
mnComponent3); }
+
     void setColor(Color const& rColor)
     {
         mnComponent1 = rColor.GetRed();
@@ -161,6 +180,8 @@ public:
         meType = ColorType::HSL;
     }
 
+    void setPlaceholder() { meType = ColorType::Placeholder; }
+
     void setSystemColor(SystemColorType eSystemColorType, sal_Int32 nRGB)
     {
         maLastColor = ::Color(ColorTransparency, nRGB);
@@ -168,23 +189,12 @@ public:
         meType = ColorType::System;
     }
 
-    void setSchemePlaceholder() { meType = ColorType::Placeholder; }
-
-    void setSchemeColor(ThemeColorType eType)
-    {
-        meSchemeType = eType;
-        meType = ColorType::Scheme;
-    }
+    void setThemePlaceholder() { meType = ColorType::Placeholder; }
 
-    model::ThemeColor createThemeColor() const
+    void setThemeColor(ThemeColorType eType)
     {
-        model::ThemeColor aThemeColor;
-        if (meType == ColorType::Scheme)
-        {
-            aThemeColor.setType(meSchemeType);
-            aThemeColor.setTransformations(maTransformations);
-        }
-        return aThemeColor;
+        meThemeColorType = eType;
+        meType = ColorType::Theme;
     }
 
     bool operator==(const ComplexColor& rComplexColor) const
@@ -194,7 +204,7 @@ public:
                && mnComponent3 == rComplexColor.mnComponent3
                && meSystemColorType == rComplexColor.meSystemColorType
                && maLastColor == rComplexColor.maLastColor
-               && meSchemeType == rComplexColor.meSchemeType
+               && meThemeColorType == rComplexColor.meThemeColorType
                && maTransformations.size() == 
rComplexColor.maTransformations.size()
                && std::equal(maTransformations.begin(), 
maTransformations.end(),
                              rComplexColor.maTransformations.begin());
@@ -253,6 +263,13 @@ public:
         aComplexColor.setColor(rColor);
         return aComplexColor;
     }
+
+    static model::ComplexColor Theme(ThemeColorType eThemeColorType)
+    {
+        model::ComplexColor aComplexColor;
+        aComplexColor.setThemeColor(eThemeColorType);
+        return aComplexColor;
+    }
 };
 
 } // end of namespace svx
diff --git a/include/docmodel/theme/ColorSet.hxx 
b/include/docmodel/theme/ColorSet.hxx
index 4309c4719a64..5bad82633c78 100644
--- a/include/docmodel/theme/ColorSet.hxx
+++ b/include/docmodel/theme/ColorSet.hxx
@@ -14,7 +14,6 @@
 #include <docmodel/dllapi.h>
 #include <rtl/ustring.hxx>
 #include <docmodel/theme/ThemeColorType.hxx>
-#include <docmodel/theme/ThemeColor.hxx>
 #include <docmodel/color/ComplexColor.hxx>
 #include <tools/color.hxx>
 
diff --git a/include/docmodel/theme/FormatScheme.hxx 
b/include/docmodel/theme/FormatScheme.hxx
index 6e20d88b51ca..96c8afc48214 100644
--- a/include/docmodel/theme/FormatScheme.hxx
+++ b/include/docmodel/theme/FormatScheme.hxx
@@ -12,7 +12,6 @@
 
 #include <docmodel/dllapi.h>
 #include <tools/color.hxx>
-#include <docmodel/theme/ThemeColor.hxx>
 #include <docmodel/color/ComplexColor.hxx>
 #include <com/sun/star/graphic/XGraphic.hpp>
 
@@ -475,19 +474,19 @@ public:
         {
             FillStyle* pFillStyle = pThis->addFillStyle();
             auto pFill = std::make_shared<SolidFill>();
-            pFill->maColor.meType = model::ColorType::Placeholder;
+            pFill->maColor.setPlaceholder();
             pFillStyle->mpFill = pFill;
         }
         {
             FillStyle* pFillStyle = pThis->addFillStyle();
             auto pFill = std::make_shared<SolidFill>();
-            pFill->maColor.meType = model::ColorType::Placeholder;
+            pFill->maColor.setPlaceholder();
             pFillStyle->mpFill = pFill;
         }
         {
             FillStyle* pFillStyle = pThis->addFillStyle();
             auto pFill = std::make_shared<SolidFill>();
-            pFill->maColor.meType = model::ColorType::Placeholder;
+            pFill->maColor.setPlaceholder();
             pFillStyle->mpFill = pFill;
         }
     }
@@ -518,7 +517,7 @@ public:
             pLineStyle->maLineDash.mePresetType = PresetDashType::Solid;
             pLineStyle->maLineJoin.meType = LineJoinType::Miter;
             auto pFill = std::make_shared<SolidFill>();
-            pFill->maColor.meType = model::ColorType::Placeholder;
+            pFill->maColor.setPlaceholder();
             pLineStyle->maLineFillStyle.mpFill = pFill;
         }
         {
@@ -530,7 +529,7 @@ public:
             pLineStyle->maLineDash.mePresetType = PresetDashType::Solid;
             pLineStyle->maLineJoin.meType = LineJoinType::Miter;
             auto pFill = std::make_shared<SolidFill>();
-            pFill->maColor.meType = model::ColorType::Placeholder;
+            pFill->maColor.setPlaceholder();
             pLineStyle->maLineFillStyle.mpFill = pFill;
         }
         {
@@ -542,7 +541,7 @@ public:
             pLineStyle->maLineDash.mePresetType = PresetDashType::Solid;
             pLineStyle->maLineJoin.meType = LineJoinType::Miter;
             auto pFill = std::make_shared<SolidFill>();
-            pFill->maColor.meType = model::ColorType::Placeholder;
+            pFill->maColor.setPlaceholder();
             pLineStyle->maLineFillStyle.mpFill = pFill;
         }
     }
@@ -592,19 +591,19 @@ public:
         {
             FillStyle* pFillStyle = pThis->addBackgroundFillStyle();
             auto pFill = std::make_shared<SolidFill>();
-            pFill->maColor.meType = model::ColorType::Placeholder;
+            pFill->maColor.setPlaceholder();
             pFillStyle->mpFill = pFill;
         }
         {
             FillStyle* pFillStyle = pThis->addBackgroundFillStyle();
             auto pFill = std::make_shared<SolidFill>();
-            pFill->maColor.meType = model::ColorType::Placeholder;
+            pFill->maColor.setPlaceholder();
             pFillStyle->mpFill = pFill;
         }
         {
             FillStyle* pFillStyle = pThis->addBackgroundFillStyle();
             auto pFill = std::make_shared<SolidFill>();
-            pFill->maColor.meType = model::ColorType::Placeholder;
+            pFill->maColor.setPlaceholder();
             pFillStyle->mpFill = pFill;
         }
     }
diff --git a/include/docmodel/theme/Theme.hxx b/include/docmodel/theme/Theme.hxx
index 4643f0d0b33a..c81d04ef5a5c 100644
--- a/include/docmodel/theme/Theme.hxx
+++ b/include/docmodel/theme/Theme.hxx
@@ -14,7 +14,6 @@
 #include <vector>
 
 #include <rtl/ustring.hxx>
-#include <docmodel/theme/ThemeColor.hxx>
 #include <docmodel/theme/ThemeColorType.hxx>
 #include <docmodel/theme/Theme.hxx>
 #include <docmodel/theme/ColorSet.hxx>
diff --git a/include/docmodel/theme/ThemeColor.hxx 
b/include/docmodel/theme/ThemeColor.hxx
deleted file mode 100644
index d497883cae04..000000000000
--- a/include/docmodel/theme/ThemeColor.hxx
+++ /dev/null
@@ -1,101 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- */
-
-#pragma once
-
-#include <docmodel/dllapi.h>
-#include <vector>
-#include <docmodel/theme/ThemeColorType.hxx>
-#include <docmodel/color/Transformation.hxx>
-#include <tools/color.hxx>
-
-namespace model
-{
-/** Definition of a theme color
- *
- * A theme color is defined by the type of theme color and a set of
- * transformations that in addition manipulate the resulting color
- * (i.e. tints, shades).
- */
-class DOCMODEL_DLLPUBLIC ThemeColor
-{
-    ThemeColorType meType = ThemeColorType::Unknown;
-    std::vector<Transformation> maTransformations;
-
-public:
-    ThemeColor() = default;
-
-    ThemeColorType getType() const { return meType; }
-
-    void setType(ThemeColorType eType) { meType = eType; }
-
-    void clearTransformations() { maTransformations.clear(); }
-
-    void setTransformations(std::vector<Transformation> const& 
rTransformations)
-    {
-        maTransformations = rTransformations;
-    }
-
-    void addTransformation(Transformation const& rTransform)
-    {
-        maTransformations.push_back(rTransform);
-    }
-
-    void removeTransformations(TransformationType eType)
-    {
-        maTransformations.erase(std::remove_if(maTransformations.begin(), 
maTransformations.end(),
-                                               [eType](Transformation const& 
rTransform) {
-                                                   return rTransform.meType == 
eType;
-                                               }),
-                                maTransformations.end());
-    }
-
-    std::vector<Transformation> const& getTransformations() const { return 
maTransformations; }
-
-    /** Applies the defined trasformations to the input color */
-    Color applyTransformations(Color const& rColor) const
-    {
-        Color aColor(rColor);
-
-        for (auto const& rTransform : maTransformations)
-        {
-            switch (rTransform.meType)
-            {
-                case TransformationType::Tint:
-                    aColor.ApplyTintOrShade(rTransform.mnValue);
-                    break;
-                case TransformationType::Shade:
-                    aColor.ApplyTintOrShade(-rTransform.mnValue);
-                    break;
-                case TransformationType::LumMod:
-                    aColor.ApplyLumModOff(rTransform.mnValue, 0);
-                    break;
-                case TransformationType::LumOff:
-                    aColor.ApplyLumModOff(10000, rTransform.mnValue);
-                    break;
-                default:
-                    break;
-            }
-        }
-        return aColor;
-    }
-
-    bool operator==(const ThemeColor& rThemeColor) const
-    {
-        return meType == rThemeColor.meType
-               && maTransformations.size() == 
rThemeColor.maTransformations.size()
-               && std::equal(maTransformations.begin(), 
maTransformations.end(),
-                             rThemeColor.maTransformations.begin());
-    }
-};
-
-} // end of namespace model
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/docmodel/uno/UnoComplexColor.hxx 
b/include/docmodel/uno/UnoComplexColor.hxx
index c15e53404a3b..3783c0b2e95f 100644
--- a/include/docmodel/uno/UnoComplexColor.hxx
+++ b/include/docmodel/uno/UnoComplexColor.hxx
@@ -37,7 +37,7 @@ public:
 
     // XComplexColor
     sal_Int32 SAL_CALL getType() override;
-    sal_Int32 SAL_CALL getSchemeColorType() override;
+    sal_Int32 SAL_CALL getThemeColorType() override;
     css::util::Color SAL_CALL
     resolveColor(css::uno::Reference<css::util::XTheme> const& xTheme) 
override;
 };
diff --git a/include/oox/export/ThemeExport.hxx 
b/include/oox/export/ThemeExport.hxx
index e1162279ec84..c220d2d3037d 100644
--- a/include/oox/export/ThemeExport.hxx
+++ b/include/oox/export/ThemeExport.hxx
@@ -61,7 +61,7 @@ private:
     void writeComplexColor(model::ComplexColor const& rComplexColor);
     void writeColorPlaceholder(model::ComplexColor const& rComplexColor);
     void writeColorSystem(model::ComplexColor const& rComplexColor);
-    void writeColorScheme(model::ComplexColor const& rComplexColor);
+    void writeColorTheme(model::ComplexColor const& rComplexColor);
     void writeColorHSL(model::ComplexColor const& rComplexColor);
     void writeColorCRGB(model::ComplexColor const& rComplexColor);
     void writeColorRGB(model::ComplexColor const& rComplexColor);
diff --git a/include/svx/Palette.hxx b/include/svx/Palette.hxx
index 7ac8ece71eea..4b1a5767e98e 100644
--- a/include/svx/Palette.hxx
+++ b/include/svx/Palette.hxx
@@ -56,21 +56,21 @@ struct SVXCORE_DLLPUBLIC NamedColor
 
         if (eThemeColorType != model::ThemeColorType::Unknown)
         {
-            aComplexColor.setSchemeColor(eThemeColorType);
+            aComplexColor.setThemeColor(eThemeColorType);
 
             if (m_nLumMod != 10000)
                 aComplexColor.addTransformation({ 
model::TransformationType::LumMod, m_nLumMod });
 
             if (m_nLumOff != 0)
                 aComplexColor.addTransformation({ 
model::TransformationType::LumOff, m_nLumOff });
+
+            aComplexColor.setFinalColor(m_aColor);
         }
         else
         {
             aComplexColor.setColor(m_aColor);
         }
 
-        aComplexColor.setFinalColor(m_aColor);
-
         return aComplexColor;
     }
 };
diff --git a/offapi/com/sun/star/util/XComplexColor.idl 
b/offapi/com/sun/star/util/XComplexColor.idl
index 668b7b310eb2..c2f10e92b124 100644
--- a/offapi/com/sun/star/util/XComplexColor.idl
+++ b/offapi/com/sun/star/util/XComplexColor.idl
@@ -17,13 +17,14 @@ module com {  module sun {  module star {  module util {
 */
 interface XComplexColor
 {
+    /** Type of the color */
     long getType();
 
-    long getSchemeColorType();
+    /** Type of the theme color */
+    long getThemeColorType();
 
     /** resolve the color */
     Color resolveColor([in] com::sun::star::util::XTheme xTheme);
-
 };
 
 }; }; }; };
diff --git a/oox/inc/pch/precompiled_oox.hxx b/oox/inc/pch/precompiled_oox.hxx
index cba76097feed..927eb8ab33a1 100644
--- a/oox/inc/pch/precompiled_oox.hxx
+++ b/oox/inc/pch/precompiled_oox.hxx
@@ -202,6 +202,9 @@
 #include <cppuhelper/implbase_ex.hxx>
 #include <cppuhelper/weak.hxx>
 #include <cppuhelper/weakref.hxx>
+#include <docmodel/color/ComplexColor.hxx>
+#include <docmodel/dllapi.h>
+#include <docmodel/theme/ColorSet.hxx>
 #include <docmodel/theme/ThemeColorType.hxx>
 #include <drawinglayer/primitive2d/Primitive2DContainer.hxx>
 #include <drawingml/colorchoicecontext.hxx>
diff --git a/oox/qa/unit/drawingml.cxx b/oox/qa/unit/drawingml.cxx
index b9a699f35bd4..4f69d8e9c7e2 100644
--- a/oox/qa/unit/drawingml.cxx
+++ b/oox/qa/unit/drawingml.cxx
@@ -419,7 +419,7 @@ CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, testPptxTheme)
         CPPUNIT_ASSERT(xPortion->getPropertyValue("CharComplexColor") >>= 
xComplexColor);
         CPPUNIT_ASSERT(xComplexColor.is());
         auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
-        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getSchemeType());
+        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getThemeColorType());
         CPPUNIT_ASSERT_EQUAL(model::TransformationType::LumMod,
                              aComplexColor.getTransformations()[0].meType);
         CPPUNIT_ASSERT_EQUAL(sal_Int16(6000), 
aComplexColor.getTransformations()[0].mnValue);
@@ -474,7 +474,7 @@ CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, 
testThemeColorTint_Table)
         CPPUNIT_ASSERT(xA1->getPropertyValue("FillComplexColor") >>= 
xComplexColor);
         CPPUNIT_ASSERT(xComplexColor.is());
         auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
-        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getSchemeType());
+        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getThemeColorType());
         {
             auto const& rTrans = aComplexColor.getTransformations();
             CPPUNIT_ASSERT_EQUAL(size_t(0), rTrans.size());
@@ -487,7 +487,7 @@ CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, 
testThemeColorTint_Table)
         CPPUNIT_ASSERT(xA2->getPropertyValue("FillComplexColor") >>= 
xComplexColor);
         CPPUNIT_ASSERT(xComplexColor.is());
         auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
-        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getSchemeType());
+        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getThemeColorType());
         {
             auto const& rTrans = aComplexColor.getTransformations();
             CPPUNIT_ASSERT_EQUAL(size_t(1), rTrans.size());
@@ -516,7 +516,7 @@ CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, testThemeColor_Shape)
         CPPUNIT_ASSERT(xComplexColor.is());
         {
             auto aComplexColor = 
model::color::getFromXComplexColor(xComplexColor);
-            CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent6, 
aComplexColor.getSchemeType());
+            CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent6, 
aComplexColor.getThemeColorType());
 
             auto const& rTrans = aComplexColor.getTransformations();
             CPPUNIT_ASSERT_EQUAL(size_t(2), rTrans.size());
@@ -530,7 +530,7 @@ CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, testThemeColor_Shape)
         CPPUNIT_ASSERT(xComplexColor.is());
         {
             auto aComplexColor = 
model::color::getFromXComplexColor(xComplexColor);
-            CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent6, 
aComplexColor.getSchemeType());
+            CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent6, 
aComplexColor.getThemeColorType());
 
             auto const& rTrans = aComplexColor.getTransformations();
             CPPUNIT_ASSERT_EQUAL(size_t(1), rTrans.size());
@@ -546,7 +546,7 @@ CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, testThemeColor_Shape)
         CPPUNIT_ASSERT(xComplexColor.is());
         {
             auto aComplexColor = 
model::color::getFromXComplexColor(xComplexColor);
-            CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getSchemeType());
+            CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getThemeColorType());
 
             auto const& rTrans = aComplexColor.getTransformations();
             CPPUNIT_ASSERT_EQUAL(size_t(0), rTrans.size());
@@ -556,7 +556,7 @@ CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, testThemeColor_Shape)
         CPPUNIT_ASSERT(xComplexColor.is());
         {
             auto aComplexColor = 
model::color::getFromXComplexColor(xComplexColor);
-            CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getSchemeType());
+            CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getThemeColorType());
 
             auto const& rTrans = aComplexColor.getTransformations();
             CPPUNIT_ASSERT_EQUAL(size_t(1), rTrans.size());
diff --git a/oox/qa/unit/shape.cxx b/oox/qa/unit/shape.cxx
index 97bec7121e2d..cc44152a84b4 100644
--- a/oox/qa/unit/shape.cxx
+++ b/oox/qa/unit/shape.cxx
@@ -307,7 +307,7 @@ CPPUNIT_TEST_FIXTURE(OoxShapeTest, 
testTdf54095_SmartArtThemeTextColor)
     xPortion->getPropertyValue("CharComplexColor") >>= xComplexColor;
     CPPUNIT_ASSERT(xComplexColor.is());
     auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
-    CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Dark2, 
aComplexColor.getSchemeType());
+    CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Dark2, 
aComplexColor.getThemeColorType());
 
     if (!bUseGroup)
     {
diff --git a/oox/source/drawingml/color.cxx b/oox/source/drawingml/color.cxx
index 1a9e39f3832d..1f6e68d73bd5 100644
--- a/oox/source/drawingml/color.cxx
+++ b/oox/source/drawingml/color.cxx
@@ -617,8 +617,7 @@ sal_Int16 Color::getLumOff() const
 
 model::ComplexColor Color::getComplexColor() const
 {
-    model::ComplexColor aComplexColor;
-    
aComplexColor.setSchemeColor(model::convertToThemeColorType(getSchemeColorIndex()));
+    auto aComplexColor = 
model::ComplexColor::Theme(model::convertToThemeColorType(getSchemeColorIndex()));
 
     if (getTintOrShade() > 0)
     {
@@ -816,12 +815,12 @@ model::ComplexColor Color::createComplexColor(const 
GraphicHelper& /*rGraphicHel
     if (meMode == COLOR_PH)
     {
         auto eTheme = model::convertToThemeColorType(nPhClrTheme);
-        aNewComplexColor.setSchemeColor(eTheme);
+        aNewComplexColor.setThemeColor(eTheme);
     }
     else if (meMode == COLOR_SCHEME)
     {
         auto eTheme = getThemeColorType();
-        aNewComplexColor.setSchemeColor(eTheme);
+        aNewComplexColor.setThemeColor(eTheme);
     }
     else if (meMode == COLOR_RGB)
     {
diff --git a/oox/source/drawingml/colorchoicecontext.cxx 
b/oox/source/drawingml/colorchoicecontext.cxx
index b0977c5e003c..4a47a5d4a761 100644
--- a/oox/source/drawingml/colorchoicecontext.cxx
+++ b/oox/source/drawingml/colorchoicecontext.cxx
@@ -185,12 +185,12 @@ void ColorValueContext::onStartElement( const 
AttributeList& rAttribs )
                 {
                     if (nToken == XML_phClr)
                     {
-                        mpComplexColor->setSchemePlaceholder();
+                        mpComplexColor->setThemePlaceholder();
                     }
                     else
                     {
                         model::ThemeColorType eType = 
schemeNameToThemeColorType(*sSchemeName);
-                        mpComplexColor->setSchemeColor(eType);
+                        mpComplexColor->setThemeColor(eType);
                     }
                 }
             }
@@ -205,10 +205,7 @@ void ColorValueContext::onStartElement( const 
AttributeList& rAttribs )
             {
                 // TODO - just converted to RGB for now
                 ::Color nRgbValue = Color::getDmlPresetColor(nToken, 
API_RGB_TRANSPARENT);
-                mpComplexColor->mnComponent1 = nRgbValue.GetRed();
-                mpComplexColor->mnComponent2 = nRgbValue.GetGreen();
-                mpComplexColor->mnComponent3 = nRgbValue.GetBlue();
-                mpComplexColor->meType = model::ColorType::RGB;
+                mpComplexColor->setColor(nRgbValue);
             }
         }
         break;
@@ -279,7 +276,7 @@ void ColorValueContext::onStartElement( const 
AttributeList& rAttribs )
             else
                 nValue = rAttribs.getInteger(XML_val, 0);
 
-            mpComplexColor->maTransformations.push_back({eType, 
sal_Int16(nValue / 10)});
+            mpComplexColor->addTransformation({eType, sal_Int16(nValue / 10)});
         }
     }
 
diff --git a/oox/source/drawingml/fillproperties.cxx 
b/oox/source/drawingml/fillproperties.cxx
index becc632fd923..0cee56835183 100644
--- a/oox/source/drawingml/fillproperties.cxx
+++ b/oox/source/drawingml/fillproperties.cxx
@@ -430,7 +430,7 @@ void FillProperties::pushToPropMap(ShapePropertyMap& 
rPropMap, const GraphicHelp
                 model::ComplexColor aComplexColor;
                 if (aFillColor == nPhClr)
                 {
-                    
aComplexColor.setSchemeColor(model::convertToThemeColorType(nPhClrTheme));
+                    
aComplexColor.setThemeColor(model::convertToThemeColorType(nPhClrTheme));
                 }
                 else
                 {
diff --git a/oox/source/drawingml/lineproperties.cxx 
b/oox/source/drawingml/lineproperties.cxx
index 277e1bf9da3d..f5e3a814405b 100644
--- a/oox/source/drawingml/lineproperties.cxx
+++ b/oox/source/drawingml/lineproperties.cxx
@@ -504,12 +504,12 @@ void LineProperties::pushToPropMap( ShapePropertyMap& 
rPropMap,
 
         if (aColor == nPhClr)
         {
-            
aComplexColor.setSchemeColor(model::convertToThemeColorType(nPhClrTheme));
+            
aComplexColor.setThemeColor(model::convertToThemeColorType(nPhClrTheme));
             rPropMap.setProperty(PROP_LineComplexColor, 
model::color::createXComplexColor(aComplexColor));
         }
         else
         {
-            
aComplexColor.setSchemeColor(model::convertToThemeColorType(aLineColor.getSchemeColorIndex()));
+            
aComplexColor.setThemeColor(model::convertToThemeColorType(aLineColor.getSchemeColorIndex()));
             if (aLineColor.getLumMod() != 10000)
                 
aComplexColor.addTransformation({model::TransformationType::LumMod, 
aLineColor.getLumMod()});
             if (aLineColor.getLumOff() != 0)
diff --git a/oox/source/export/ThemeExport.cxx 
b/oox/source/export/ThemeExport.cxx
index 568d0dbbf615..05cb19c0850b 100644
--- a/oox/source/export/ThemeExport.cxx
+++ b/oox/source/export/ThemeExport.cxx
@@ -174,23 +174,25 @@ void ThemeExport::writeColorRGB(model::ComplexColor 
const& rComplexColor)
 
 void ThemeExport::writeColorCRGB(model::ComplexColor const& rComplexColor)
 {
-    mpFS->startElementNS(XML_a, XML_scrgbClr, XML_r, 
OString::number(rComplexColor.mnComponent1),
-                         XML_g, OString::number(rComplexColor.mnComponent2), 
XML_b,
-                         OString::number(rComplexColor.mnComponent3));
-    writeColorTransformations(rComplexColor.maTransformations);
+    mpFS->startElementNS(XML_a, XML_scrgbClr, XML_r,
+                         OString::number(sal_Int32(rComplexColor.getRed())), 
XML_g,
+                         OString::number(sal_Int32(rComplexColor.getGreen())), 
XML_b,
+                         OString::number(sal_Int32(rComplexColor.getBlue())));
+    writeColorTransformations(rComplexColor.getTransformations());
     mpFS->endElementNS(XML_a, XML_scrgbClr);
 }
 
 void ThemeExport::writeColorHSL(model::ComplexColor const& rComplexColor)
 {
-    mpFS->startElementNS(XML_a, XML_hslClr, XML_hue, 
OString::number(rComplexColor.mnComponent1),
-                         XML_sat, OString::number(rComplexColor.mnComponent2), 
XML_lum,
-                         OString::number(rComplexColor.mnComponent3));
-    writeColorTransformations(rComplexColor.maTransformations);
+    mpFS->startElementNS(XML_a, XML_hslClr, XML_hue,
+                         OString::number(sal_Int32(rComplexColor.getRed())), 
XML_sat,
+                         OString::number(sal_Int32(rComplexColor.getGreen())), 
XML_lum,
+                         OString::number(sal_Int32(rComplexColor.getBlue())));
+    writeColorTransformations(rComplexColor.getTransformations());
     mpFS->endElementNS(XML_a, XML_hslClr);
 }
 
-void ThemeExport::writeColorScheme(model::ComplexColor const& rComplexColor)
+void ThemeExport::writeColorTheme(model::ComplexColor const& rComplexColor)
 {
     static std::unordered_map<model::ThemeColorType, const char*> 
constThemeColorTypeTokenMap
         = { { model::ThemeColorType::Dark1, "dk1" },
@@ -205,12 +207,12 @@ void ThemeExport::writeColorScheme(model::ComplexColor 
const& rComplexColor)
             { model::ThemeColorType::Accent6, "accent6" },
             { model::ThemeColorType::Hyperlink, "hlink" },
             { model::ThemeColorType::FollowedHyperlink, "folHlink" } };
-    auto iterator = 
constThemeColorTypeTokenMap.find(rComplexColor.meSchemeType);
+    auto iterator = 
constThemeColorTypeTokenMap.find(rComplexColor.getThemeColorType());
     if (iterator != constThemeColorTypeTokenMap.end())
     {
         const char* sValue = iterator->second;
         mpFS->startElementNS(XML_a, XML_schemeClr, XML_val, sValue);
-        writeColorTransformations(rComplexColor.maTransformations);
+        writeColorTransformations(rComplexColor.getTransformations());
         mpFS->endElementNS(XML_a, XML_schemeClr);
     }
 }
@@ -249,13 +251,13 @@ void ThemeExport::writeColorSystem(model::ComplexColor 
const& rComplexColor)
         { model::SystemColorType::WindowFrame, "windowFrame" },
         { model::SystemColorType::WindowText, "windowText" },
     };
-    auto iterator = 
constThemeColorTypeTokenMap.find(rComplexColor.meSystemColorType);
+    auto iterator = 
constThemeColorTypeTokenMap.find(rComplexColor.getSystemColorType());
     if (iterator != constThemeColorTypeTokenMap.end())
     {
         const char* sValue = iterator->second;
         mpFS->startElementNS(XML_a, XML_sysClr, XML_val, sValue);
         //XML_lastClr
-        writeColorTransformations(rComplexColor.maTransformations);
+        writeColorTransformations(rComplexColor.getTransformations());
         mpFS->endElementNS(XML_a, XML_schemeClr);
     }
 }
@@ -263,13 +265,13 @@ void ThemeExport::writeColorSystem(model::ComplexColor 
const& rComplexColor)
 void ThemeExport::writeColorPlaceholder(model::ComplexColor const& 
rComplexColor)
 {
     mpFS->startElementNS(XML_a, XML_schemeClr, XML_val, "phClr");
-    writeColorTransformations(rComplexColor.maTransformations);
+    writeColorTransformations(rComplexColor.getTransformations());
     mpFS->endElementNS(XML_a, XML_schemeClr);
 }
 
 void ThemeExport::writeComplexColor(model::ComplexColor const& rComplexColor)
 {
-    switch (rComplexColor.meType)
+    switch (rComplexColor.getType())
     {
         case model::ColorType::Unused:
             break;
@@ -282,8 +284,8 @@ void ThemeExport::writeComplexColor(model::ComplexColor 
const& rComplexColor)
         case model::ColorType::HSL:
             writeColorHSL(rComplexColor);
             break;
-        case model::ColorType::Scheme:
-            writeColorScheme(rComplexColor);
+        case model::ColorType::Theme:
+            writeColorTheme(rComplexColor);
             break;
         case model::ColorType::Palette:
             break;
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index c0d82d41996b..2e8bf4129860 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -537,9 +537,9 @@ bool DrawingML::WriteSchemeColor(OUString const& 
rPropertyName, const uno::Refer
         return false;
 
     auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
-    if (aComplexColor.getSchemeType() == model::ThemeColorType::Unknown)
+    if (aComplexColor.getThemeColorType() == model::ThemeColorType::Unknown)
         return false;
-    const char* pColorName = 
g_aPredefinedClrNames[sal_Int16(aComplexColor.getSchemeType())];
+    const char* pColorName = 
g_aPredefinedClrNames[sal_Int16(aComplexColor.getThemeColorType())];
     mpFS->startElementNS(XML_a, XML_solidFill);
     mpFS->startElementNS(XML_a, XML_schemeClr, XML_val, pColorName);
     for (auto const& rTransform : aComplexColor.getTransformations())
diff --git a/reportdesign/inc/pch/precompiled_rptui.hxx 
b/reportdesign/inc/pch/precompiled_rptui.hxx
index 46c40c5437d3..4197321a8f8e 100644
--- a/reportdesign/inc/pch/precompiled_rptui.hxx
+++ b/reportdesign/inc/pch/precompiled_rptui.hxx
@@ -294,6 +294,10 @@
 #include <cppuhelper/weak.hxx>
 #include <cppuhelper/weakagg.hxx>
 #include <cppuhelper/weakref.hxx>
+#include <docmodel/color/ComplexColor.hxx>
+#include <docmodel/color/Transformation.hxx>
+#include <docmodel/dllapi.h>
+#include <docmodel/theme/ThemeColorType.hxx>
 #include <drawinglayer/drawinglayerdllapi.h>
 #include <drawinglayer/geometry/viewinformation2d.hxx>
 #include <drawinglayer/primitive2d/CommonTypes.hxx>
diff --git a/sc/qa/unit/SparklineImportExportTest.cxx 
b/sc/qa/unit/SparklineImportExportTest.cxx
index 2e381b5668ae..bad14b6eb0d0 100644
--- a/sc/qa/unit/SparklineImportExportTest.cxx
+++ b/sc/qa/unit/SparklineImportExportTest.cxx
@@ -260,19 +260,20 @@ void checkSparklineThemeColors(ScDocument& rDocument)
     CPPUNIT_ASSERT_EQUAL(sc::SparklineType::Column, rAttributes.getType());
 
     CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent3,
-                         rAttributes.getColorSeries().getSchemeType());
+                         rAttributes.getColorSeries().getThemeColorType());
     CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent6,
-                         rAttributes.getColorNegative().getSchemeType());
+                         rAttributes.getColorNegative().getThemeColorType());
     CPPUNIT_ASSERT_EQUAL(model::ColorType::Unused, 
rAttributes.getColorAxis().getType());
     CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Light1,
-                         rAttributes.getColorMarkers().getSchemeType());
+                         rAttributes.getColorMarkers().getThemeColorType());
     CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent5,
-                         rAttributes.getColorFirst().getSchemeType());
+                         rAttributes.getColorFirst().getThemeColorType());
     CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent2,
-                         rAttributes.getColorLast().getSchemeType());
+                         rAttributes.getColorLast().getThemeColorType());
     CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1,
-                         rAttributes.getColorHigh().getSchemeType());
-    CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent4, 
rAttributes.getColorLow().getSchemeType());
+                         rAttributes.getColorHigh().getThemeColorType());
+    CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent4,
+                         rAttributes.getColorLow().getThemeColorType());
 }
 } // end anonymous namespace
 
diff --git a/sc/qa/unit/ThemeImportExportTest.cxx 
b/sc/qa/unit/ThemeImportExportTest.cxx
index f8b2a49b7114..7e054ce5fe92 100644
--- a/sc/qa/unit/ThemeImportExportTest.cxx
+++ b/sc/qa/unit/ThemeImportExportTest.cxx
@@ -93,7 +93,7 @@ void checkCellBackgroundThemeColor(ScDocument* pDoc)
         auto* pBrushItem = static_cast<const SvxBrushItem*>(pItem);
         CPPUNIT_ASSERT_EQUAL(Color(0x27ced7), pBrushItem->GetColor());
         auto aComplexColor = pBrushItem->getComplexColor();
-        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent3, 
aComplexColor.getSchemeType());
+        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent3, 
aComplexColor.getThemeColorType());
         CPPUNIT_ASSERT_EQUAL(size_t(0), 
aComplexColor.getTransformations().size());
     }
 
@@ -107,7 +107,7 @@ void checkCellBackgroundThemeColor(ScDocument* pDoc)
         auto* pBrushItem = static_cast<const SvxBrushItem*>(pItem);
         CPPUNIT_ASSERT_EQUAL(Color(0xd4f5f7), pBrushItem->GetColor());
         auto aComplexColor = pBrushItem->getComplexColor();
-        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent3, 
aComplexColor.getSchemeType());
+        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent3, 
aComplexColor.getThemeColorType());
         auto& rTransformations = aComplexColor.getTransformations();
         CPPUNIT_ASSERT_EQUAL(size_t(2), rTransformations.size());
         CPPUNIT_ASSERT_EQUAL(model::TransformationType::LumMod, 
rTransformations[0].meType);
@@ -126,7 +126,7 @@ void checkCellBackgroundThemeColor(ScDocument* pDoc)
         auto* pBrushItem = static_cast<const SvxBrushItem*>(pItem);
         CPPUNIT_ASSERT_EQUAL(Color(0x14676b), pBrushItem->GetColor());
         auto aComplexColor = pBrushItem->getComplexColor();
-        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent3, 
aComplexColor.getSchemeType());
+        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent3, 
aComplexColor.getThemeColorType());
         auto& rTransformations = aComplexColor.getTransformations();
         CPPUNIT_ASSERT_EQUAL(size_t(1), rTransformations.size());
         CPPUNIT_ASSERT_EQUAL(model::TransformationType::LumMod, 
rTransformations[0].meType);
@@ -164,7 +164,7 @@ void checkCellTextThemeColor(ScDocument* pDoc)
         auto* pColorItem = static_cast<const SvxColorItem*>(pItem);
         CPPUNIT_ASSERT_EQUAL(Color(0x62a39f), pColorItem->getColor());
         auto aComplexColor = pColorItem->getComplexColor();
-        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent6, 
aComplexColor.getSchemeType());
+        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent6, 
aComplexColor.getThemeColorType());
         CPPUNIT_ASSERT_EQUAL(size_t(0), 
aComplexColor.getTransformations().size());
     }
 
@@ -178,7 +178,7 @@ void checkCellTextThemeColor(ScDocument* pDoc)
         auto* pColorItem = static_cast<const SvxColorItem*>(pItem);
         CPPUNIT_ASSERT_EQUAL(Color(0xa1c8c5), pColorItem->getColor());
         auto aComplexColor = pColorItem->getComplexColor();
-        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent6, 
aComplexColor.getSchemeType());
+        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent6, 
aComplexColor.getThemeColorType());
         auto& rTransformations = aComplexColor.getTransformations();
         CPPUNIT_ASSERT_EQUAL(size_t(2), rTransformations.size());
         CPPUNIT_ASSERT_EQUAL(model::TransformationType::LumMod, 
rTransformations[0].meType);
@@ -197,7 +197,7 @@ void checkCellTextThemeColor(ScDocument* pDoc)
         auto* pColorItem = static_cast<const SvxColorItem*>(pItem);
         CPPUNIT_ASSERT_EQUAL(Color(0x305250), pColorItem->getColor());
         auto aComplexColor = pColorItem->getComplexColor();
-        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent6, 
aComplexColor.getSchemeType());
+        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent6, 
aComplexColor.getThemeColorType());
         auto& rTransformations = aComplexColor.getTransformations();
         CPPUNIT_ASSERT_EQUAL(size_t(1), rTransformations.size());
         CPPUNIT_ASSERT_EQUAL(model::TransformationType::LumMod, 
rTransformations[0].meType);
@@ -242,7 +242,7 @@ void checkCellBorderThemeColor(ScDocument* pDoc)
             CPPUNIT_ASSERT(pTop);
             CPPUNIT_ASSERT_EQUAL(Color(0x3e8853), pTop->GetColor());
             auto aComplexColor = pTop->getComplexColor();
-            CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent5, 
aComplexColor.getSchemeType());
+            CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent5, 
aComplexColor.getThemeColorType());
             auto& rTransformations = aComplexColor.getTransformations();
             CPPUNIT_ASSERT_EQUAL(size_t(0), rTransformations.size());
         }
@@ -263,7 +263,7 @@ void checkCellBorderThemeColor(ScDocument* pDoc)
             CPPUNIT_ASSERT(pTop);
             CPPUNIT_ASSERT_EQUAL(Color(0xd4ebdb), pTop->GetColor());
             auto aComplexColor = pTop->getComplexColor();
-            CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent5, 
aComplexColor.getSchemeType());
+            CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent5, 
aComplexColor.getThemeColorType());
             auto& rTransformations = aComplexColor.getTransformations();
             CPPUNIT_ASSERT_EQUAL(size_t(2), rTransformations.size());
             CPPUNIT_ASSERT_EQUAL(model::TransformationType::LumMod, 
rTransformations[0].meType);
@@ -276,7 +276,7 @@ void checkCellBorderThemeColor(ScDocument* pDoc)
             CPPUNIT_ASSERT(pTop);
             CPPUNIT_ASSERT_EQUAL(Color(0xd4ebdb), pTop->GetColor());
             auto aComplexColor = pTop->getComplexColor();
-            CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent5, 
aComplexColor.getSchemeType());
+            CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent5, 
aComplexColor.getThemeColorType());
             auto& rTransformations = aComplexColor.getTransformations();
             CPPUNIT_ASSERT_EQUAL(size_t(2), rTransformations.size());
             CPPUNIT_ASSERT_EQUAL(model::TransformationType::LumMod, 
rTransformations[0].meType);
@@ -289,7 +289,7 @@ void checkCellBorderThemeColor(ScDocument* pDoc)
             CPPUNIT_ASSERT(pTop);
             CPPUNIT_ASSERT_EQUAL(Color(0x1f442a), pTop->GetColor());
             auto aComplexColor = pTop->getComplexColor();
-            CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent5, 
aComplexColor.getSchemeType());
+            CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent5, 
aComplexColor.getThemeColorType());
             auto& rTransformations = aComplexColor.getTransformations();
             CPPUNIT_ASSERT_EQUAL(size_t(1), rTransformations.size());
             CPPUNIT_ASSERT_EQUAL(model::TransformationType::LumMod, 
rTransformations[0].meType);
@@ -313,7 +313,7 @@ void checkCellBorderThemeColor(ScDocument* pDoc)
             CPPUNIT_ASSERT(pTop);
             CPPUNIT_ASSERT_EQUAL(Color(0x1f442a), pTop->GetColor());
             auto aComplexColor = pTop->getComplexColor();
-            CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent5, 
aComplexColor.getSchemeType());
+            CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent5, 
aComplexColor.getThemeColorType());
             auto& rTransformations = aComplexColor.getTransformations();
             CPPUNIT_ASSERT_EQUAL(size_t(1), rTransformations.size());
             CPPUNIT_ASSERT_EQUAL(model::TransformationType::LumMod, 
rTransformations[0].meType);
@@ -325,7 +325,7 @@ void checkCellBorderThemeColor(ScDocument* pDoc)
             CPPUNIT_ASSERT(pBottom);
             CPPUNIT_ASSERT_EQUAL(Color(0x1f442a), pBottom->GetColor());
             auto aComplexColor = pBottom->getComplexColor();
-            CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent5, 
aComplexColor.getSchemeType());
+            CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent5, 
aComplexColor.getThemeColorType());
             auto& rTransformations = aComplexColor.getTransformations();
             CPPUNIT_ASSERT_EQUAL(size_t(1), rTransformations.size());
             CPPUNIT_ASSERT_EQUAL(model::TransformationType::LumMod, 
rTransformations[0].meType);
diff --git a/sc/qa/unit/ucalc_DocumentThemes.cxx 
b/sc/qa/unit/ucalc_DocumentThemes.cxx
index fdd601e09d78..f40116742d23 100644
--- a/sc/qa/unit/ucalc_DocumentThemes.cxx
+++ b/sc/qa/unit/ucalc_DocumentThemes.cxx
@@ -64,13 +64,13 @@ CPPUNIT_TEST_FIXTURE(DocumentThemesTest, testChangeTheme)
     ScPatternAttr aNewPattern(m_pDoc->GetPool());
     {
         model::ComplexColor aComplexColor;
-        aComplexColor.setSchemeColor(eBackgroundThemeType);
+        aComplexColor.setThemeColor(eBackgroundThemeType);
         Color aColor = pTheme->getColorSet()->resolveColor(aComplexColor);
         aNewPattern.GetItemSet().Put(SvxBrushItem(aColor, aComplexColor, 
ATTR_BACKGROUND));
     }
     {
         model::ComplexColor aComplexColor;
-        aComplexColor.setSchemeColor(eCellTextThemeType);
+        aComplexColor.setThemeColor(eCellTextThemeType);
         Color aColor = pTheme->getColorSet()->resolveColor(aComplexColor);
         aNewPattern.GetItemSet().Put(SvxColorItem(aColor, aComplexColor, 
ATTR_FONT_COLOR));
     }
diff --git a/sc/qa/unit/ucalc_sparkline.cxx b/sc/qa/unit/ucalc_sparkline.cxx
index 66c2db81913e..bd4ffe5c9772 100644
--- a/sc/qa/unit/ucalc_sparkline.cxx
+++ b/sc/qa/unit/ucalc_sparkline.cxx
@@ -932,12 +932,12 @@ CPPUNIT_TEST_FIXTURE(SparklineTest, 
testSparklineThemeColorChange)
         sc::SparklineAttributes& rAttibutes = pSparklineGroup->getAttributes();
 
         model::ComplexColor aSeriesComplexColor;
-        aSeriesComplexColor.setSchemeColor(model::ThemeColorType::Accent3);
+        aSeriesComplexColor.setThemeColor(model::ThemeColorType::Accent3);
         
aSeriesComplexColor.setFinalColor(pTheme->getColorSet()->resolveColor(aSeriesComplexColor));
         rAttibutes.setColorSeries(aSeriesComplexColor);
 
         model::ComplexColor aAxisComplexColor;
-        aAxisComplexColor.setSchemeColor(model::ThemeColorType::Accent1);
+        aAxisComplexColor.setThemeColor(model::ThemeColorType::Accent1);
         
aAxisComplexColor.setFinalColor(pTheme->getColorSet()->resolveColor(aAxisComplexColor));
         rAttibutes.setColorAxis(aAxisComplexColor);
 
diff --git a/sc/source/filter/excel/export/ExportTools.cxx 
b/sc/source/filter/excel/export/ExportTools.cxx
index a132dd148408..b093da012581 100644
--- a/sc/source/filter/excel/export/ExportTools.cxx
+++ b/sc/source/filter/excel/export/ExportTools.cxx
@@ -18,10 +18,10 @@ namespace oox::xls
 void writeComplexColor(sax_fastparser::FSHelperPtr& pFS, sal_Int32 nElement,
                        model::ComplexColor const& rComplexColor, Color const& 
rColor)
 {
-    if (rComplexColor.isValidSchemeType())
+    if (rComplexColor.isValidThemeType())
     {
         sal_Int32 nTheme
-            = 
oox::convertThemeColorTypeToExcelThemeNumber(rComplexColor.getSchemeType());
+            = 
oox::convertThemeColorTypeToExcelThemeNumber(rComplexColor.getThemeColorType());
         double fTintShade = 
oox::convertColorTransformsToTintOrShade(rComplexColor);
         pFS->singleElement(nElement, XML_theme, OString::number(nTheme), 
XML_tint,
                            sax_fastparser::UseIf(OString::number(fTintShade), 
fTintShade != 0.0));
@@ -35,7 +35,7 @@ void writeComplexColor(sax_fastparser::FSHelperPtr& pFS, 
sal_Int32 nElement,
 void writeComplexColor(sax_fastparser::FSHelperPtr& pFS, sal_Int32 nElement,
                        model::ComplexColor const& rComplexColor)
 {
-    if (rComplexColor.isValidSchemeType() || rComplexColor.getType() == 
model::ColorType::RGB)
+    if (rComplexColor.isValidThemeType() || rComplexColor.getType() == 
model::ColorType::RGB)
     {
         writeComplexColor(pFS, nElement, rComplexColor, 
rComplexColor.getFinalColor());
     }
diff --git a/sc/source/filter/excel/xestream.cxx 
b/sc/source/filter/excel/xestream.cxx
index c0b3b685b8c9..d511c6daebe1 100644
--- a/sc/source/filter/excel/xestream.cxx
+++ b/sc/source/filter/excel/xestream.cxx
@@ -890,9 +890,9 @@ sax_fastparser::FSHelperPtr XclXmlUtils::WriteFontData( 
sax_fastparser::FSHelper
     pStream->singleElement(XML_sz, XML_val, OString::number( 
rFontData.mnHeight / 20.0 )); // Twips->Pt
 
     auto& rComplexColor = rFontData.maComplexColor;
-    if (rComplexColor.isValidSchemeType())
+    if (rComplexColor.isValidThemeType())
     {
-        sal_Int32 nTheme = 
oox::convertThemeColorTypeToExcelThemeNumber(rComplexColor.getSchemeType());
+        sal_Int32 nTheme = 
oox::convertThemeColorTypeToExcelThemeNumber(rComplexColor.getThemeColorType());
         double fTintShade = 
oox::convertColorTransformsToTintOrShade(rComplexColor);
         pStream->singleElement(XML_color,
             XML_theme, OString::number(nTheme),
diff --git a/sc/source/filter/excel/xestyle.cxx 
b/sc/source/filter/excel/xestyle.cxx
index 292ce2acff43..fb580dd2e713 100644
--- a/sc/source/filter/excel/xestyle.cxx
+++ b/sc/source/filter/excel/xestyle.cxx
@@ -1999,7 +1999,7 @@ void XclExpCellArea::SaveXml( XclExpXmlStream& rStrm ) 
const
         {
             {
                 Color aColor = rPalette.GetColor(mnForeColor);
-                if (maForegroundComplexColor.isValidSchemeType())
+                if (maForegroundComplexColor.isValidThemeType())
                     oox::xls::writeComplexColor(rStyleSheet, XML_fgColor, 
maForegroundComplexColor, aColor);
                 else if (mnForeColor != 0)
                     oox::xls::writeComplexColor(rStyleSheet, XML_fgColor, 
maForegroundComplexColor, aColor);
@@ -2007,7 +2007,7 @@ void XclExpCellArea::SaveXml( XclExpXmlStream& rStrm ) 
const
 
             {
                 Color aColor = rPalette.GetColor(mnBackColor);
-                if (maBackgroundComplexColor.isValidSchemeType())
+                if (maBackgroundComplexColor.isValidThemeType())
                     oox::xls::writeComplexColor(rStyleSheet, XML_bgColor, 
maBackgroundComplexColor, aColor);
                 else if (mnForeColor != 0)
                     oox::xls::writeComplexColor(rStyleSheet, XML_bgColor, 
maBackgroundComplexColor, aColor);
diff --git a/sc/source/filter/xml/SparklineGroupsExport.cxx 
b/sc/source/filter/xml/SparklineGroupsExport.cxx
index fd577e5c6c10..f5600494d7d8 100644
--- a/sc/source/filter/xml/SparklineGroupsExport.cxx
+++ b/sc/source/filter/xml/SparklineGroupsExport.cxx
@@ -48,7 +48,7 @@ void SparklineGroupsExport::insertColor(model::ComplexColor 
const& rComplexColor
 void SparklineGroupsExport::insertComplexColor(model::ComplexColor const& 
rComplexColor,
                                                XMLTokenEnum eToken)
 {
-    if (!rComplexColor.isValidSchemeType())
+    if (!rComplexColor.isValidThemeType())
         return;
     XMLComplexColorExport aComplexColorExport(m_rExport);
     aComplexColorExport.exportComplexColor(rComplexColor, 
XML_NAMESPACE_CALC_EXT, eToken);
diff --git a/sc/source/ui/theme/ThemeColorChanger.cxx 
b/sc/source/ui/theme/ThemeColorChanger.cxx
index be003b539636..2c0933da5cd9 100644
--- a/sc/source/ui/theme/ThemeColorChanger.cxx
+++ b/sc/source/ui/theme/ThemeColorChanger.cxx
@@ -55,16 +55,11 @@ bool changeBorderLine(editeng::SvxBorderLine* pBorderLine, 
model::ColorSet const
         return false;
 
     model::ComplexColor const& rComplexColor = pBorderLine->getComplexColor();
-    if (rComplexColor.meType == model::ColorType::Scheme)
+    if (rComplexColor.isValidThemeType())
     {
-        auto eThemeType = rComplexColor.meSchemeType;
-
-        if (eThemeType != model::ThemeColorType::Unknown)
-        {
-            Color aColor = rColorSet.resolveColor(rComplexColor);
-            pBorderLine->SetColor(aColor);
-            return true;
-        }
+        Color aColor = rColorSet.resolveColor(rComplexColor);
+        pBorderLine->SetColor(aColor);
+        return true;
     }
     return false;
 }
@@ -77,38 +72,28 @@ bool changeCellItems(SfxItemSet& rItemSet, model::ColorSet 
const& rColorSet)
     {
         auto const* pColorItem = static_cast<const SvxColorItem*>(pItem);
         model::ComplexColor const& rComplexColor = 
pColorItem->getComplexColor();
-        if (rComplexColor.meType == model::ColorType::Scheme)
+        if (rComplexColor.isValidThemeType())
         {
-            auto eThemeType = rComplexColor.meSchemeType;
-            if (eThemeType != model::ThemeColorType::Unknown)
-            {
-                Color aColor = rColorSet.getColor(eThemeType);
-                aColor = rComplexColor.applyTransformations(aColor);
+            Color aColor = rColorSet.resolveColor(rComplexColor);
 
-                SvxColorItem aColorItem(*pColorItem);
-                aColorItem.setColor(aColor);
-                rItemSet.Put(aColorItem);
-                bChanged = true;
-            }
+            SvxColorItem aColorItem(*pColorItem);
+            aColorItem.setColor(aColor);
+            rItemSet.Put(aColorItem);
+            bChanged = true;
         }
     }
     if (rItemSet.HasItem(ATTR_BACKGROUND, &pItem))
     {
         auto const* pBrushItem = static_cast<const SvxBrushItem*>(pItem);
         model::ComplexColor const& rComplexColor = 
pBrushItem->getComplexColor();
-        if (rComplexColor.meType == model::ColorType::Scheme)
+        if (rComplexColor.isValidThemeType())
         {
-            auto eThemeType = rComplexColor.meSchemeType;
-            if (eThemeType != model::ThemeColorType::Unknown)
-            {
-                Color aColor = rColorSet.getColor(eThemeType);
-                aColor = rComplexColor.applyTransformations(aColor);
+            Color aColor = rColorSet.resolveColor(rComplexColor);
 
-                SvxBrushItem aNewBrushItem(*pBrushItem);
-                aNewBrushItem.SetColor(aColor);
-                rItemSet.Put(aNewBrushItem);
-                bChanged = true;
-            }
+            SvxBrushItem aNewBrushItem(*pBrushItem);
+            aNewBrushItem.SetColor(aColor);
+            rItemSet.Put(aNewBrushItem);
+            bChanged = true;
         }
     }
     if (rItemSet.HasItem(ATTR_BORDER, &pItem))
@@ -253,10 +238,9 @@ model::ComplexColor modifyComplexColor(model::ComplexColor 
const& rComplexColor,
 {
     model::ComplexColor aComplexColor(rComplexColor);
 
-    if (aComplexColor.isValidSchemeType())
+    if (aComplexColor.isValidThemeType())
     {
-        Color aColor = pColorSet->getColor(aComplexColor.meSchemeType);
-        aColor = aComplexColor.applyTransformations(aColor);
+        Color aColor = pColorSet->resolveColor(aComplexColor);
         aComplexColor.setFinalColor(aColor);
     }
     return aComplexColor;
diff --git a/sd/inc/pch/precompiled_sdui.hxx b/sd/inc/pch/precompiled_sdui.hxx
index 37682da2f713..1bbb52a580ff 100644
--- a/sd/inc/pch/precompiled_sdui.hxx
+++ b/sd/inc/pch/precompiled_sdui.hxx
@@ -326,6 +326,10 @@
 #include <cppuhelper/weak.hxx>
 #include <cppuhelper/weakref.hxx>
 #include <cui/cuidllapi.h>
+#include <docmodel/color/ComplexColor.hxx>
+#include <docmodel/color/Transformation.hxx>
+#include <docmodel/dllapi.h>
+#include <docmodel/theme/ThemeColorType.hxx>
 #include <drawinglayer/drawinglayerdllapi.h>
 #include <drawinglayer/geometry/viewinformation2d.hxx>
 #include <drawinglayer/primitive2d/CommonTypes.hxx>
diff --git a/sd/qa/unit/uiimpress.cxx b/sd/qa/unit/uiimpress.cxx
index b4a7890123d7..fc75ec4727eb 100644
--- a/sd/qa/unit/uiimpress.cxx
+++ b/sd/qa/unit/uiimpress.cxx
@@ -1034,7 +1034,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testCharColorTheme)
         CPPUNIT_ASSERT(xPortion->getPropertyValue("CharComplexColor") >>= 
xComplexColor);
         CPPUNIT_ASSERT(xComplexColor.is());
         auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
-        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getSchemeType());
+        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getThemeColorType());
         CPPUNIT_ASSERT_EQUAL(model::TransformationType::LumMod,
                              aComplexColor.getTransformations()[0].meType);
         CPPUNIT_ASSERT_EQUAL(sal_Int16(2000), 
aComplexColor.getTransformations()[0].mnValue);
@@ -1073,7 +1073,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testFillColorTheme)
         CPPUNIT_ASSERT(xShape->getPropertyValue("FillComplexColor") >>= 
xComplexColor);
         CPPUNIT_ASSERT(xComplexColor.is());
         auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
-        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getSchemeType());
+        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getThemeColorType());
         CPPUNIT_ASSERT_EQUAL(model::TransformationType::LumMod,
                              aComplexColor.getTransformations()[0].meType);
         CPPUNIT_ASSERT_EQUAL(sal_Int16(4000), 
aComplexColor.getTransformations()[0].mnValue);
diff --git a/sd/source/core/stlsheet.cxx b/sd/source/core/stlsheet.cxx
index 466ef37b7d22..e5cc0b8fb759 100644
--- a/sd/source/core/stlsheet.cxx
+++ b/sd/source/core/stlsheet.cxx
@@ -1359,7 +1359,7 @@ PropertyState SAL_CALL SdStyleSheet::getPropertyState( 
const OUString& PropertyN
                 if (pEntry->nMemberId == MID_COLOR_THEME_INDEX)
                 {
                     const XFillColorItem* pColor = 
rStyleSet.GetItem<XFillColorItem>(pEntry->nWID);
-                    if (pColor->getComplexColor().getSchemeType() == 
model::ThemeColorType::Unknown)
+                    if (pColor->getComplexColor().getThemeColorType() == 
model::ThemeColorType::Unknown)
                     {
                         eState = PropertyState_DEFAULT_VALUE;
                     }
diff --git a/sd/source/ui/view/drtxtob1.cxx b/sd/source/ui/view/drtxtob1.cxx
index 04faf6e7728c..bd250f3f5841 100644
--- a/sd/source/ui/view/drtxtob1.cxx
+++ b/sd/source/ui/view/drtxtob1.cxx
@@ -822,7 +822,7 @@ void TextObjectBar::Execute( SfxRequest &rReq )
 
                 if (const SfxInt16Item* pIntItem = 
pArgs->GetItemIfSet(SID_ATTR_COLOR_THEME_INDEX, false))
                 {
-                    
aComplexColor.setSchemeColor(model::convertToThemeColorType(pIntItem->GetValue()));
+                    
aComplexColor.setThemeColor(model::convertToThemeColorType(pIntItem->GetValue()));
                 }
                 if (const SfxInt16Item* pIntItem = 
pArgs->GetItemIfSet(SID_ATTR_COLOR_LUM_MOD, false))
                 {
diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx
index 9d41ea6d8c5f..9ff430918842 100644
--- a/sd/source/ui/view/drviews2.cxx
+++ b/sd/source/ui/view/drviews2.cxx
@@ -607,7 +607,7 @@ public:
                 if (pArgs->GetItemState(SID_ATTR_COLOR_THEME_INDEX, false, 
&pItem) == SfxItemState::SET)
                 {
                     auto pIntItem = static_cast<const SfxInt16Item*>(pItem);
-                    
aComplexColor.setSchemeColor(model::convertToThemeColorType(pIntItem->GetValue()));
+                    
aComplexColor.setThemeColor(model::convertToThemeColorType(pIntItem->GetValue()));
                 }
                 if (pArgs->GetItemState(SID_ATTR_COLOR_LUM_MOD, false, &pItem) 
== SfxItemState::SET)
                 {
diff --git a/svx/inc/pch/precompiled_svx.hxx b/svx/inc/pch/precompiled_svx.hxx
index f424a84556f8..58e01e74e63f 100644
--- a/svx/inc/pch/precompiled_svx.hxx
+++ b/svx/inc/pch/precompiled_svx.hxx
@@ -227,7 +227,6 @@
 #include <cppuhelper/supportsservice.hxx>
 #include <cppuhelper/weak.hxx>
 #include <cppuhelper/weakagg.hxx>
-#include <docmodel/theme/ThemeColor.hxx>
 #include <drawinglayer/drawinglayerdllapi.h>
 #include <drawinglayer/primitive2d/Primitive2DContainer.hxx>
 #include <drawinglayer/processor2d/baseprocessor2d.hxx>
diff --git a/svx/qa/unit/styles.cxx b/svx/qa/unit/styles.cxx
index de118bf2da39..db4469cbcf7d 100644
--- a/svx/qa/unit/styles.cxx
+++ b/svx/qa/unit/styles.cxx
@@ -79,7 +79,7 @@ CPPUNIT_TEST_FIXTURE(Test, testThemeChange)
         CPPUNIT_ASSERT(xShape4->getPropertyValue("FillComplexColor") >>= 
xComplexColor);
         CPPUNIT_ASSERT(xComplexColor.is());
         auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
-        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getSchemeType());
+        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getThemeColorType());
     }
     uno::Reference<beans::XPropertySet> 
xShape5(xDrawPageShapes->getByIndex(5), uno::UNO_QUERY);
     // Blue, lighter.
@@ -90,7 +90,7 @@ CPPUNIT_TEST_FIXTURE(Test, testThemeChange)
         CPPUNIT_ASSERT(xShape5->getPropertyValue("FillComplexColor") >>= 
xComplexColor);
         CPPUNIT_ASSERT(xComplexColor.is());
         auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
-        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getSchemeType());
+        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getThemeColorType());
         CPPUNIT_ASSERT_EQUAL(model::TransformationType::LumMod,
                              aComplexColor.getTransformations()[0].meType);
         CPPUNIT_ASSERT_EQUAL(sal_Int16(4000), 
aComplexColor.getTransformations()[0].mnValue);
diff --git a/svx/qa/unit/xoutdev.cxx b/svx/qa/unit/xoutdev.cxx
index 800c709770de..c2bce82b9cf5 100644
--- a/svx/qa/unit/xoutdev.cxx
+++ b/svx/qa/unit/xoutdev.cxx
@@ -104,7 +104,7 @@ CPPUNIT_TEST_FIXTURE(XOutdevTest, testFillColorThemeUnoApi)
     // Set theme color
     {
         model::ComplexColor aComplexColor;
-        aComplexColor.setSchemeColor(model::ThemeColorType::Accent1);
+        aComplexColor.setThemeColor(model::ThemeColorType::Accent1);
         aComplexColor.addTransformation({ model::TransformationType::LumMod, 
2000 });
         aComplexColor.addTransformation({ model::TransformationType::LumOff, 
8000 });
         xShape->setPropertyValue("FillComplexColor",
@@ -117,7 +117,7 @@ CPPUNIT_TEST_FIXTURE(XOutdevTest, testFillColorThemeUnoApi)
         CPPUNIT_ASSERT(xShape->getPropertyValue("FillComplexColor") >>= 
xComplexColor);
         CPPUNIT_ASSERT(xComplexColor.is());
         auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
-        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getSchemeType());
+        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getThemeColorType());
         CPPUNIT_ASSERT_EQUAL(model::TransformationType::LumMod,
                              aComplexColor.getTransformations()[0].meType);
         CPPUNIT_ASSERT_EQUAL(sal_Int16(2000), 
aComplexColor.getTransformations()[0].mnValue);
diff --git a/svx/source/table/cell.cxx b/svx/source/table/cell.cxx
index 8c0d63e64e43..a7a5cc84d2d6 100644
--- a/svx/source/table/cell.cxx
+++ b/svx/source/table/cell.cxx
@@ -1475,8 +1475,7 @@ PropertyState SAL_CALL Cell::getPropertyState( const 
OUString& PropertyName )
                     if (pMap->nMemberId == MID_COLOR_THEME_INDEX)
                     {
                         auto const* pColor = 
rSet.GetItem<XFillColorItem>(pMap->nWID);
-                        if (pColor->getComplexColor().getType() == 
model::ColorType::Unused ||
-                            pColor->getComplexColor().getSchemeType() == 
model::ThemeColorType::Unknown)
+                        if (!pColor->getComplexColor().isValidThemeType())
                         {
                             eState = PropertyState_DEFAULT_VALUE;
                         }
diff --git a/svx/source/tbxctrls/PaletteManager.cxx 
b/svx/source/tbxctrls/PaletteManager.cxx
index bd2914fc2003..70b11a977266 100644
--- a/svx/source/tbxctrls/PaletteManager.cxx
+++ b/svx/source/tbxctrls/PaletteManager.cxx
@@ -434,7 +434,7 @@ void PaletteManager::DispatchColorCommand(const OUString& 
aCommand, const NamedC
     if (rColor.m_nThemeIndex != -1)
     {
         model::ComplexColor aComplexColor;
-        
aComplexColor.setSchemeColor(model::convertToThemeColorType(rColor.m_nThemeIndex));
+        
aComplexColor.setThemeColor(model::convertToThemeColorType(rColor.m_nThemeIndex));
         if (rColor.m_nLumMod != 10000)
             
aComplexColor.addTransformation({model::TransformationType::LumMod, 
rColor.m_nLumMod});
         if (rColor.m_nLumMod != 0)
diff --git a/svx/source/theme/ThemeColorChanger.cxx 
b/svx/source/theme/ThemeColorChanger.cxx
index 2edc00820381..7e7ba984729d 100644
--- a/svx/source/theme/ThemeColorChanger.cxx
+++ b/svx/source/theme/ThemeColorChanger.cxx
@@ -46,7 +46,7 @@ void updateTextPortionColorSet(model::ColorSet const& 
rColorSet,
 
     auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
 
-    if (aComplexColor.getSchemeType() == model::ThemeColorType::Unknown)
+    if (!aComplexColor.isValidThemeType())
         return;
 
     Color aColor = rColorSet.resolveColor(aComplexColor);
@@ -67,7 +67,7 @@ void updateFillColorSet(model::ColorSet const& rColorSet,
 
     auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
 
-    if (aComplexColor.getSchemeType() == model::ThemeColorType::Unknown)
+    if (!aComplexColor.isValidThemeType())
         return;
 
     Color aColor = rColorSet.resolveColor(aComplexColor);
@@ -88,7 +88,7 @@ void updateLineColorSet(model::ColorSet const& rColorSet,
 
     auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
 
-    if (aComplexColor.getSchemeType() == model::ThemeColorType::Unknown)
+    if (!aComplexColor.isValidThemeType())
         return;
 
     Color aColor = rColorSet.resolveColor(aComplexColor);
diff --git a/svx/source/theme/ThemeColorPaletteManager.cxx 
b/svx/source/theme/ThemeColorPaletteManager.cxx
index 2a81106a8ffb..0e4f20899645 100644
--- a/svx/source/theme/ThemeColorPaletteManager.cxx
+++ b/svx/source/theme/ThemeColorPaletteManager.cxx
@@ -147,7 +147,7 @@ OString ThemeColorPaletteManager::generateJSON()
             aColorTree.put("Name", rEffectData.maColorName.toUtf8());
 
             model::ComplexColor aComplexColor;
-            aComplexColor.setSchemeColor(rColorData.meThemeColorType);
+            aComplexColor.setThemeColor(rColorData.meThemeColorType);
             aComplexColor.addTransformation(
                 { model::TransformationType::LumMod, rEffectData.mnLumMod });
             aComplexColor.addTransformation(
diff --git a/svx/source/unodraw/unoshape.cxx b/svx/source/unodraw/unoshape.cxx
index 4a7679fb7615..1c841d8cfca5 100644
--- a/svx/source/unodraw/unoshape.cxx
+++ b/svx/source/unodraw/unoshape.cxx
@@ -1958,8 +1958,7 @@ beans::PropertyState SvxShape::_getPropertyState( const 
OUString& PropertyName )
                 if (pMap->nMemberId == MID_COLOR_THEME_INDEX)
                 {
                     const XFillColorItem* pColor = 
rSet.GetItem<XFillColorItem>(pMap->nWID);
-                    if (pColor->getComplexColor().getType() == 
model::ColorType::Unused ||
-                        pColor->getComplexColor().getSchemeType() == 
model::ThemeColorType::Unknown)
+                    if (!pColor->getComplexColor().isValidThemeType())
                     {
                         eState = beans::PropertyState_DEFAULT_VALUE;
                     }
diff --git a/svx/source/xoutdev/xattr.cxx b/svx/source/xoutdev/xattr.cxx
index 3cb12c467b74..934f8a4b6266 100644
--- a/svx/source/xoutdev/xattr.cxx
+++ b/svx/source/xoutdev/xattr.cxx
@@ -392,7 +392,7 @@ void XColorItem::dumpAsXml(xmlTextWriterPtr pWriter) const
     (void)xmlTextWriterStartElement(pWriter, BAD_CAST("complex-color"));
 
     (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST("scheme-index"),
-                                      
BAD_CAST(OString::number(sal_Int16(maComplexColor.getSchemeType())).getStr()));
+                                      
BAD_CAST(OString::number(sal_Int16(maComplexColor.getThemeColorType())).getStr()));
 
     for (auto const& rTransform : maComplexColor.getTransformations())
     {
@@ -2026,7 +2026,7 @@ bool XFillColorItem::QueryValue( css::uno::Any& rVal, 
sal_uInt8 nMemberId ) cons
     {
         case MID_COLOR_THEME_INDEX:
         {
-            rVal <<= sal_Int16(getComplexColor().getSchemeType());
+            rVal <<= sal_Int16(getComplexColor().getThemeColorType());
             break;
         }
         case MID_COLOR_LUM_MOD:
@@ -2082,7 +2082,7 @@ bool XFillColorItem::PutValue( const css::uno::Any& rVal, 
sal_uInt8 nMemberId )
             sal_Int16 nIndex = -1;
             if (!(rVal >>= nIndex))
                 return false;
-            
getComplexColor().setSchemeColor(model::convertToThemeColorType(nIndex));
+            
getComplexColor().setThemeColor(model::convertToThemeColorType(nIndex));
         }
         break;
         case MID_COLOR_LUM_MOD:
diff --git a/sw/inc/pch/precompiled_msword.hxx 
b/sw/inc/pch/precompiled_msword.hxx
index 5750fdf09267..b67f4a94277b 100644
--- a/sw/inc/pch/precompiled_msword.hxx
+++ b/sw/inc/pch/precompiled_msword.hxx
@@ -322,6 +322,11 @@
 #include <cppuhelper/queryinterface.hxx>
 #include <cppuhelper/weak.hxx>
 #include <cppuhelper/weakref.hxx>
+#include <docmodel/color/ComplexColor.hxx>
+#include <docmodel/color/Transformation.hxx>
+#include <docmodel/dllapi.h>
+#include <docmodel/theme/FormatScheme.hxx>
+#include <docmodel/theme/ThemeColorType.hxx>
 #include <drawinglayer/drawinglayerdllapi.h>
 #include <drawinglayer/geometry/viewinformation2d.hxx>
 #include <drawinglayer/primitive2d/CommonTypes.hxx>
diff --git a/sw/inc/pch/precompiled_swui.hxx b/sw/inc/pch/precompiled_swui.hxx
index 0892da517c9e..e18ba9c83232 100644
--- a/sw/inc/pch/precompiled_swui.hxx
+++ b/sw/inc/pch/precompiled_swui.hxx
@@ -343,6 +343,10 @@
 #include <cppuhelper/weak.hxx>
 #include <cppuhelper/weakagg.hxx>
 #include <cppuhelper/weakref.hxx>
+#include <docmodel/color/ComplexColor.hxx>
+#include <docmodel/color/Transformation.hxx>
+#include <docmodel/dllapi.h>
+#include <docmodel/theme/ThemeColorType.hxx>
 #include <drawinglayer/attribute/fillgradientattribute.hxx>
 #include <drawinglayer/attribute/sdrfillattribute.hxx>
 #include <drawinglayer/drawinglayerdllapi.h>
diff --git a/sw/qa/core/theme/ThemeTest.cxx b/sw/qa/core/theme/ThemeTest.cxx
index 5d8480035f77..de6132237a4b 100644
--- a/sw/qa/core/theme/ThemeTest.cxx
+++ b/sw/qa/core/theme/ThemeTest.cxx
@@ -43,7 +43,7 @@ CPPUNIT_TEST_FIXTURE(SwCoreThemeTest, testThemeColorInHeading)
     auto xComplexColor
         = getProperty<uno::Reference<util::XComplexColor>>(getParagraph(1), 
"CharComplexColor");
     auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
-    CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getSchemeType());
+    CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getThemeColorType());
 }
 
 CPPUNIT_TEST_FIXTURE(SwCoreThemeTest, testThemeColorInHeadingODT)
@@ -55,7 +55,7 @@ CPPUNIT_TEST_FIXTURE(SwCoreThemeTest, 
testThemeColorInHeadingODT)
     auto xComplexColor
         = getProperty<uno::Reference<util::XComplexColor>>(getParagraph(1), 
"CharComplexColor");
     auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
-    CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getSchemeType());
+    CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getThemeColorType());
 }
 
 void checkFillStyles(std::vector<model::FillStyle> const& rStyleList)
@@ -67,8 +67,8 @@ void checkFillStyles(std::vector<model::FillStyle> const& 
rStyleList)
         CPPUNIT_ASSERT(rFillStyle.mpFill);
         CPPUNIT_ASSERT_EQUAL(model::FillType::Solid, 
rFillStyle.mpFill->meType);
         auto* pSolidFill = 
static_cast<model::SolidFill*>(rFillStyle.mpFill.get());
-        CPPUNIT_ASSERT_EQUAL(model::ColorType::Placeholder, 
pSolidFill->maColor.meType);
-        CPPUNIT_ASSERT_EQUAL(size_t(0), 
pSolidFill->maColor.maTransformations.size());
+        CPPUNIT_ASSERT_EQUAL(model::ColorType::Placeholder, 
pSolidFill->maColor.getType());
+        CPPUNIT_ASSERT_EQUAL(size_t(0), 
pSolidFill->maColor.getTransformations().size());
     }
 
     // Fill style 2
@@ -88,21 +88,21 @@ void checkFillStyles(std::vector<model::FillStyle> const& 
rStyleList)
         {
             auto const& rGradientStop = pGradientFill->maGradientStops[0];
             CPPUNIT_ASSERT_EQUAL(0.0, rGradientStop.mfPosition);
-            CPPUNIT_ASSERT_EQUAL(model::ColorType::Placeholder, 
rGradientStop.maColor.meType);
-            CPPUNIT_ASSERT_EQUAL(size_t(3), 
rGradientStop.maColor.maTransformations.size());
+            CPPUNIT_ASSERT_EQUAL(model::ColorType::Placeholder, 
rGradientStop.maColor.getType());
+            CPPUNIT_ASSERT_EQUAL(size_t(3), 
rGradientStop.maColor.getTransformations().size());
 
             {
-                auto const& rTrasnsformation = 
rGradientStop.maColor.maTransformations[0];
+                auto const& rTrasnsformation = 
rGradientStop.maColor.getTransformations()[0];
                 CPPUNIT_ASSERT_EQUAL(model::TransformationType::LumMod, 
rTrasnsformation.meType);
                 CPPUNIT_ASSERT_EQUAL(sal_Int16(11000), 
rTrasnsformation.mnValue);
             }
             {
-                auto const& rTrasnsformation = 
rGradientStop.maColor.maTransformations[1];
+                auto const& rTrasnsformation = 
rGradientStop.maColor.getTransformations()[1];
                 CPPUNIT_ASSERT_EQUAL(model::TransformationType::SatMod, 
rTrasnsformation.meType);
                 CPPUNIT_ASSERT_EQUAL(sal_Int16(10500), 
rTrasnsformation.mnValue);
             }
             {
-                auto const& rTrasnsformation = 
rGradientStop.maColor.maTransformations[2];
+                auto const& rTrasnsformation = 
rGradientStop.maColor.getTransformations()[2];
                 CPPUNIT_ASSERT_EQUAL(model::TransformationType::Tint, 
rTrasnsformation.meType);
                 CPPUNIT_ASSERT_EQUAL(sal_Int16(6700), 
rTrasnsformation.mnValue);
             }
@@ -110,21 +110,21 @@ void checkFillStyles(std::vector<model::FillStyle> const& 
rStyleList)
         {
             auto const& rGradientStop = pGradientFill->maGradientStops[1];
             CPPUNIT_ASSERT_EQUAL(0.5, rGradientStop.mfPosition);
-            CPPUNIT_ASSERT_EQUAL(model::ColorType::Placeholder, 
rGradientStop.maColor.meType);
-            CPPUNIT_ASSERT_EQUAL(size_t(3), 
rGradientStop.maColor.maTransformations.size());
+            CPPUNIT_ASSERT_EQUAL(model::ColorType::Placeholder, 
rGradientStop.maColor.getType());
+            CPPUNIT_ASSERT_EQUAL(size_t(3), 
rGradientStop.maColor.getTransformations().size());
 
             {
-                auto const& rTrasnsformation = 
rGradientStop.maColor.maTransformations[0];
+                auto const& rTrasnsformation = 
rGradientStop.maColor.getTransformations()[0];
                 CPPUNIT_ASSERT_EQUAL(model::TransformationType::LumMod, 
rTrasnsformation.meType);
                 CPPUNIT_ASSERT_EQUAL(sal_Int16(10500), 
rTrasnsformation.mnValue);
             }
             {
-                auto const& rTrasnsformation = 
rGradientStop.maColor.maTransformations[1];
+                auto const& rTrasnsformation = 
rGradientStop.maColor.getTransformations()[1];
                 CPPUNIT_ASSERT_EQUAL(model::TransformationType::SatMod, 
rTrasnsformation.meType);
                 CPPUNIT_ASSERT_EQUAL(sal_Int16(10300), 
rTrasnsformation.mnValue);
             }
             {
-                auto const& rTrasnsformation = 
rGradientStop.maColor.maTransformations[2];
+                auto const& rTrasnsformation = 
rGradientStop.maColor.getTransformations()[2];
                 CPPUNIT_ASSERT_EQUAL(model::TransformationType::Tint, 
rTrasnsformation.meType);
                 CPPUNIT_ASSERT_EQUAL(sal_Int16(7300), 
rTrasnsformation.mnValue);
             }
@@ -132,21 +132,21 @@ void checkFillStyles(std::vector<model::FillStyle> const& 
rStyleList)
         {
             auto const& rGradientStop = pGradientFill->maGradientStops[2];
             CPPUNIT_ASSERT_EQUAL(1.0, rGradientStop.mfPosition);
-            CPPUNIT_ASSERT_EQUAL(model::ColorType::Placeholder, 
rGradientStop.maColor.meType);
-            CPPUNIT_ASSERT_EQUAL(size_t(3), 
rGradientStop.maColor.maTransformations.size());
+            CPPUNIT_ASSERT_EQUAL(model::ColorType::Placeholder, 
rGradientStop.maColor.getType());
+            CPPUNIT_ASSERT_EQUAL(size_t(3), 
rGradientStop.maColor.getTransformations().size());
 
             {
-                auto const& rTrasnsformation = 
rGradientStop.maColor.maTransformations[0];
+                auto const& rTrasnsformation = 
rGradientStop.maColor.getTransformations()[0];
                 CPPUNIT_ASSERT_EQUAL(model::TransformationType::LumMod, 
rTrasnsformation.meType);
                 CPPUNIT_ASSERT_EQUAL(sal_Int16(10500), 
rTrasnsformation.mnValue);
             }
             {
-                auto const& rTrasnsformation = 
rGradientStop.maColor.maTransformations[1];
+                auto const& rTrasnsformation = 
rGradientStop.maColor.getTransformations()[1];
                 CPPUNIT_ASSERT_EQUAL(model::TransformationType::SatMod, 
rTrasnsformation.meType);
                 CPPUNIT_ASSERT_EQUAL(sal_Int16(10900), 
rTrasnsformation.mnValue);
             }
             {
-                auto const& rTrasnsformation = 
rGradientStop.maColor.maTransformations[2];
+                auto const& rTrasnsformation = 
rGradientStop.maColor.getTransformations()[2];
                 CPPUNIT_ASSERT_EQUAL(model::TransformationType::Tint, 
rTrasnsformation.meType);
                 CPPUNIT_ASSERT_EQUAL(sal_Int16(8100), 
rTrasnsformation.mnValue);
             }
@@ -170,20 +170,20 @@ void checkFillStyles(std::vector<model::FillStyle> const& 
rStyleList)
         {
             auto const& rGradientStop = pGradientFill->maGradientStops[0];
             CPPUNIT_ASSERT_EQUAL(0.0, rGradientStop.mfPosition);
-            CPPUNIT_ASSERT_EQUAL(model::ColorType::Placeholder, 
rGradientStop.maColor.meType);
-            CPPUNIT_ASSERT_EQUAL(size_t(3), 
rGradientStop.maColor.maTransformations.size());
+            CPPUNIT_ASSERT_EQUAL(model::ColorType::Placeholder, 
rGradientStop.maColor.getType());
+            CPPUNIT_ASSERT_EQUAL(size_t(3), 
rGradientStop.maColor.getTransformations().size());
             {
-                auto const& rTrasnsformation = 
rGradientStop.maColor.maTransformations[0];
+                auto const& rTrasnsformation = 
rGradientStop.maColor.getTransformations()[0];
                 CPPUNIT_ASSERT_EQUAL(model::TransformationType::SatMod, 
rTrasnsformation.meType);
                 CPPUNIT_ASSERT_EQUAL(sal_Int16(10300), 
rTrasnsformation.mnValue);
             }
             {
-                auto const& rTrasnsformation = 
rGradientStop.maColor.maTransformations[1];
+                auto const& rTrasnsformation = 
rGradientStop.maColor.getTransformations()[1];
                 CPPUNIT_ASSERT_EQUAL(model::TransformationType::LumMod, 
rTrasnsformation.meType);
                 CPPUNIT_ASSERT_EQUAL(sal_Int16(10200), 
rTrasnsformation.mnValue);
             }
             {
-                auto const& rTrasnsformation = 
rGradientStop.maColor.maTransformations[2];
+                auto const& rTrasnsformation = 
rGradientStop.maColor.getTransformations()[2];
                 CPPUNIT_ASSERT_EQUAL(model::TransformationType::Tint, 
rTrasnsformation.meType);
                 CPPUNIT_ASSERT_EQUAL(sal_Int16(9400), 
rTrasnsformation.mnValue);
             }
@@ -191,20 +191,20 @@ void checkFillStyles(std::vector<model::FillStyle> const& 
rStyleList)
         {
             auto const& rGradientStop = pGradientFill->maGradientStops[1];
             CPPUNIT_ASSERT_EQUAL(0.5, rGradientStop.mfPosition);
-            CPPUNIT_ASSERT_EQUAL(model::ColorType::Placeholder, 
rGradientStop.maColor.meType);
-            CPPUNIT_ASSERT_EQUAL(size_t(3), 
rGradientStop.maColor.maTransformations.size());
+            CPPUNIT_ASSERT_EQUAL(model::ColorType::Placeholder, 
rGradientStop.maColor.getType());
+            CPPUNIT_ASSERT_EQUAL(size_t(3), 
rGradientStop.maColor.getTransformations().size());
             {
-                auto const& rTrasnsformation = 
rGradientStop.maColor.maTransformations[0];
+                auto const& rTrasnsformation = 
rGradientStop.maColor.getTransformations()[0];
                 CPPUNIT_ASSERT_EQUAL(model::TransformationType::SatMod, 
rTrasnsformation.meType);
                 CPPUNIT_ASSERT_EQUAL(sal_Int16(11000), 
rTrasnsformation.mnValue);
             }
             {
-                auto const& rTrasnsformation = 
rGradientStop.maColor.maTransformations[1];
+                auto const& rTrasnsformation = 
rGradientStop.maColor.getTransformations()[1];
                 CPPUNIT_ASSERT_EQUAL(model::TransformationType::LumMod, 
rTrasnsformation.meType);
                 CPPUNIT_ASSERT_EQUAL(sal_Int16(10000), 
rTrasnsformation.mnValue);
             }
             {
-                auto const& rTrasnsformation = 
rGradientStop.maColor.maTransformations[2];
+                auto const& rTrasnsformation = 
rGradientStop.maColor.getTransformations()[2];
                 CPPUNIT_ASSERT_EQUAL(model::TransformationType::Shade, 
rTrasnsformation.meType);
                 CPPUNIT_ASSERT_EQUAL(sal_Int16(10000), 
rTrasnsformation.mnValue);
             }
@@ -212,20 +212,20 @@ void checkFillStyles(std::vector<model::FillStyle> const& 
rStyleList)
         {
             auto const& rGradientStop = pGradientFill->maGradientStops[2];
             CPPUNIT_ASSERT_EQUAL(1.0, rGradientStop.mfPosition);
-            CPPUNIT_ASSERT_EQUAL(model::ColorType::Placeholder, 
rGradientStop.maColor.meType);
-            CPPUNIT_ASSERT_EQUAL(size_t(3), 
rGradientStop.maColor.maTransformations.size());
+            CPPUNIT_ASSERT_EQUAL(model::ColorType::Placeholder, 
rGradientStop.maColor.getType());
+            CPPUNIT_ASSERT_EQUAL(size_t(3), 
rGradientStop.maColor.getTransformations().size());
             {
-                auto const& rTrasnsformation = 
rGradientStop.maColor.maTransformations[0];
+                auto const& rTrasnsformation = 
rGradientStop.maColor.getTransformations()[0];
                 CPPUNIT_ASSERT_EQUAL(model::TransformationType::LumMod, 
rTrasnsformation.meType);
                 CPPUNIT_ASSERT_EQUAL(sal_Int16(9900), 
rTrasnsformation.mnValue);
             }
             {
-                auto const& rTrasnsformation = 
rGradientStop.maColor.maTransformations[1];
+                auto const& rTrasnsformation = 
rGradientStop.maColor.getTransformations()[1];
                 CPPUNIT_ASSERT_EQUAL(model::TransformationType::SatMod, 
rTrasnsformation.meType);
                 CPPUNIT_ASSERT_EQUAL(sal_Int16(12000), 
rTrasnsformation.mnValue);
             }
             {
-                auto const& rTrasnsformation = 
rGradientStop.maColor.maTransformations[2];
+                auto const& rTrasnsformation = 
rGradientStop.maColor.getTransformations()[2];
                 CPPUNIT_ASSERT_EQUAL(model::TransformationType::Shade, 
rTrasnsformation.meType);
                 CPPUNIT_ASSERT_EQUAL(sal_Int16(7800), 
rTrasnsformation.mnValue);
             }
@@ -251,8 +251,8 @@ void checkLineStyles(std::vector<model::LineStyle> const& 
rStyleList)
         CPPUNIT_ASSERT(rFillStyle.mpFill);
         CPPUNIT_ASSERT_EQUAL(model::FillType::Solid, 
rFillStyle.mpFill->meType);
         auto* pSolidFill = 
static_cast<model::SolidFill*>(rFillStyle.mpFill.get());
-        CPPUNIT_ASSERT_EQUAL(model::ColorType::Placeholder, 
pSolidFill->maColor.meType);
-        CPPUNIT_ASSERT_EQUAL(size_t(0), 
pSolidFill->maColor.maTransformations.size());
+        CPPUNIT_ASSERT_EQUAL(model::ColorType::Placeholder, 
pSolidFill->maColor.getType());
+        CPPUNIT_ASSERT_EQUAL(size_t(0), 
pSolidFill->maColor.getTransformations().size());
     }
 
     // Line style 2
@@ -270,8 +270,8 @@ void checkLineStyles(std::vector<model::LineStyle> const& 
rStyleList)
         CPPUNIT_ASSERT(rFillStyle.mpFill);
         CPPUNIT_ASSERT_EQUAL(model::FillType::Solid, 
rFillStyle.mpFill->meType);
         auto* pSolidFill = 
static_cast<model::SolidFill*>(rFillStyle.mpFill.get());
-        CPPUNIT_ASSERT_EQUAL(model::ColorType::Placeholder, 
pSolidFill->maColor.meType);
-        CPPUNIT_ASSERT_EQUAL(size_t(0), 
pSolidFill->maColor.maTransformations.size());
+        CPPUNIT_ASSERT_EQUAL(model::ColorType::Placeholder, 
pSolidFill->maColor.getType());
+        CPPUNIT_ASSERT_EQUAL(size_t(0), 
pSolidFill->maColor.getTransformations().size());
     }
 
     // Line style 3
@@ -289,8 +289,8 @@ void checkLineStyles(std::vector<model::LineStyle> const& 
rStyleList)
         CPPUNIT_ASSERT(rFillStyle.mpFill);
         CPPUNIT_ASSERT_EQUAL(model::FillType::Solid, 
rFillStyle.mpFill->meType);
         auto* pSolidFill = 
static_cast<model::SolidFill*>(rFillStyle.mpFill.get());
-        CPPUNIT_ASSERT_EQUAL(model::ColorType::Placeholder, 
pSolidFill->maColor.meType);
-        CPPUNIT_ASSERT_EQUAL(size_t(0), 
pSolidFill->maColor.maTransformations.size());
+        CPPUNIT_ASSERT_EQUAL(model::ColorType::Placeholder, 
pSolidFill->maColor.getType());
+        CPPUNIT_ASSERT_EQUAL(size_t(0), 
pSolidFill->maColor.getTransformations().size());
     }
 }
 
@@ -319,15 +319,13 @@ void checkEffects(std::vector<model::EffectStyle> const& 
rEffectStyleList)
         CPPUNIT_ASSERT_EQUAL(model::RectangleAlignment::Center, 
rEffect.meAlignment);
         CPPUNIT_ASSERT_EQUAL(false, rEffect.mbRotateWithShape);
 
-        CPPUNIT_ASSERT_EQUAL(model::ColorType::RGB, rEffect.maColor.meType);
-        CPPUNIT_ASSERT_EQUAL(sal_Int32(0), rEffect.maColor.mnComponent1);
-        CPPUNIT_ASSERT_EQUAL(sal_Int32(0), rEffect.maColor.mnComponent2);
-        CPPUNIT_ASSERT_EQUAL(sal_Int32(0), rEffect.maColor.mnComponent3);
+        CPPUNIT_ASSERT_EQUAL(model::ColorType::RGB, rEffect.maColor.getType());
+        CPPUNIT_ASSERT_EQUAL(Color(0x000000), rEffect.maColor.getRGB());
 
-        CPPUNIT_ASSERT_EQUAL(size_t(1), 
rEffect.maColor.maTransformations.size());
+        CPPUNIT_ASSERT_EQUAL(size_t(1), 
rEffect.maColor.getTransformations().size());
         CPPUNIT_ASSERT_EQUAL(model::TransformationType::Alpha,
-                             rEffect.maColor.maTransformations[0].meType);
-        CPPUNIT_ASSERT_EQUAL(sal_Int16(6300), 
rEffect.maColor.maTransformations[0].mnValue);
+                             rEffect.maColor.getTransformations()[0].meType);
+        CPPUNIT_ASSERT_EQUAL(sal_Int16(6300), 
rEffect.maColor.getTransformations()[0].mnValue);
     }
 }
 
diff --git a/sw/qa/extras/ooxmlexport/ooxml_ThemeExport.cxx 
b/sw/qa/extras/ooxmlexport/ooxml_ThemeExport.cxx
index 45bd8014f1d3..a0ffe87d00cf 100644
--- a/sw/qa/extras/ooxmlexport/ooxml_ThemeExport.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxml_ThemeExport.cxx
@@ -29,7 +29,7 @@ DECLARE_SW_ROUNDTRIP_TEST(testThemePortionLevelCharColor_ODF,
     auto xComplexColor = 
getProperty<uno::Reference<util::XComplexColor>>(getRun(xParagraph, 1),
                                                                           
"CharComplexColor");
     auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
-    CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent2, 
aComplexColor.getSchemeType());
+    CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent2, 
aComplexColor.getThemeColorType());
     auto const& rTransforms = aComplexColor.getTransformations();
     CPPUNIT_ASSERT_EQUAL(size_t(1), rTransforms.size());
     CPPUNIT_ASSERT_EQUAL(model::TransformationType::Tint, 
rTransforms[0].meType);
@@ -44,7 +44,7 @@ DECLARE_SW_ROUNDTRIP_TEST(testThemePortionLevelCharColor_DOCX,
     auto xComplexColor = 
getProperty<uno::Reference<util::XComplexColor>>(getRun(xParagraph, 1),
                                                                           
"CharComplexColor");
     auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
-    CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent2, 
aComplexColor.getSchemeType());
+    CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent2, 
aComplexColor.getThemeColorType());
     auto const& rTransforms = aComplexColor.getTransformations();
     CPPUNIT_ASSERT_EQUAL(size_t(1), rTransforms.size());
     CPPUNIT_ASSERT_EQUAL(model::TransformationType::Tint, 
rTransforms[0].meType);
@@ -60,7 +60,7 @@ DECLARE_SW_ROUNDTRIP_TEST(testThemePortionBorderColor_DOCX, 
"Test_ThemeBorderCol
         auto xComplexColor
             = getProperty<uno::Reference<util::XComplexColor>>(xParagraph, 
"TopBorderComplexColor");
         auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
-        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent2, 
aComplexColor.getSchemeType());
+        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent2, 
aComplexColor.getThemeColorType());
         auto const& rTransforms = aComplexColor.getTransformations();
         CPPUNIT_ASSERT_EQUAL(size_t(1), rTransforms.size());
         CPPUNIT_ASSERT_EQUAL(model::TransformationType::Tint, 
rTransforms[0].meType);
@@ -70,7 +70,7 @@ DECLARE_SW_ROUNDTRIP_TEST(testThemePortionBorderColor_DOCX, 
"Test_ThemeBorderCol
         auto xComplexColor = getProperty<uno::Reference<util::XComplexColor>>(
             xParagraph, "BottomBorderComplexColor");
         auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
-        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent4, 
aComplexColor.getSchemeType());
+        CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent4, 
aComplexColor.getThemeColorType());
         auto const& rTransforms = aComplexColor.getTransformations();
         CPPUNIT_ASSERT_EQUAL(size_t(1), rTransforms.size());
         CPPUNIT_ASSERT_EQUAL(model::TransformationType::Tint, 
rTransforms[0].meType);
@@ -90,7 +90,7 @@ DECLARE_SW_ROUNDTRIP_TEST(testCharUnderlineTheme_DOCX, 
"Test_CharUnderlineThemeC
     auto xComplexColor
         = getProperty<uno::Reference<util::XComplexColor>>(xRun, 
"CharUnderlineComplexColor");
     auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
-    CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getSchemeType());
+    CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, 
aComplexColor.getThemeColorType());
     auto const& rTransforms = aComplexColor.getTransformations();

... etc. - the rest is truncated

Reply via email to