include/svx/ColorSets.hxx       |   13 ----
 svx/source/styles/ColorSets.cxx |  128 ++++++++++++++++++++++++++++++++++++++--
 2 files changed, 125 insertions(+), 16 deletions(-)

New commits:
commit e89a7f3ebf86c6724e7f2fca4d994bf640c15a6c
Author:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
AuthorDate: Thu Jan 5 23:37:18 2023 +0900
Commit:     Tomaž Vajngerl <qui...@gmail.com>
CommitDate: Wed Jan 18 12:58:33 2023 +0000

    svx: add UX defined theme color sets
    
    Change-Id: I82cbe16fcfaa8367dacda7ff977e18b0ed39ec2f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145086
    Tested-by: Jenkins
    Reviewed-by: Tomaž Vajngerl <qui...@gmail.com>
    (cherry picked from commit 2ec4a66b6d049f5d11f4ceb993ed907c790ed592)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145692
    Tested-by: Tomaž Vajngerl <qui...@gmail.com>

diff --git a/svx/source/styles/ColorSets.cxx b/svx/source/styles/ColorSets.cxx
index ee450f4a25ff..e32cbc77f555 100644
--- a/svx/source/styles/ColorSets.cxx
+++ b/svx/source/styles/ColorSets.cxx
@@ -174,7 +174,103 @@ ColorSets::~ColorSets()
 
 void ColorSets::init()
 {
-    //{
+    {
+        ColorSet aColorSet("LibreOffice");
+        aColorSet.add(model::ThemeColorType::Dark1, 0x000000);
+        aColorSet.add(model::ThemeColorType::Light1, 0xFFFFFF);
+        aColorSet.add(model::ThemeColorType::Dark2, 0x000000);
+        aColorSet.add(model::ThemeColorType::Light2, 0xFFFFFF);
+        aColorSet.add(model::ThemeColorType::Accent1, 0x18A303);
+        aColorSet.add(model::ThemeColorType::Accent2, 0x0369A3);
+        aColorSet.add(model::ThemeColorType::Accent3, 0xA33E03);
+        aColorSet.add(model::ThemeColorType::Accent4, 0x8E03A3);
+        aColorSet.add(model::ThemeColorType::Accent5, 0xC99C00);
+        aColorSet.add(model::ThemeColorType::Accent6, 0xC9211E);
+        aColorSet.add(model::ThemeColorType::Hyperlink, 0x0000EE);
+        aColorSet.add(model::ThemeColorType::FollowedHyperlink, 0x551A8B);
+        maColorSets.push_back(aColorSet);
+    }
+    {
+        ColorSet aColorSet("Rainbow");
+        aColorSet.add(model::ThemeColorType::Dark1, 0x000000);
+        aColorSet.add(model::ThemeColorType::Light1, 0xFFFFFF);
+        aColorSet.add(model::ThemeColorType::Dark2, 0x1C1C1C);
+        aColorSet.add(model::ThemeColorType::Light2, 0xDDDDDD);
+        aColorSet.add(model::ThemeColorType::Accent1, 0xFF0000);
+        aColorSet.add(model::ThemeColorType::Accent2, 0xFF8000);
+        aColorSet.add(model::ThemeColorType::Accent3, 0xFFFF00);
+        aColorSet.add(model::ThemeColorType::Accent4, 0x00A933);
+        aColorSet.add(model::ThemeColorType::Accent5, 0x2A6099);
+        aColorSet.add(model::ThemeColorType::Accent6, 0x800080);
+        aColorSet.add(model::ThemeColorType::Hyperlink, 0x0000EE);
+        aColorSet.add(model::ThemeColorType::FollowedHyperlink, 0x551A8B);
+        maColorSets.push_back(aColorSet);
+    }
+    {
+        ColorSet aColorSet("Beach");
+        aColorSet.add(model::ThemeColorType::Dark1, 0x000000);
+        aColorSet.add(model::ThemeColorType::Light1, 0xFFFFFF);
+        aColorSet.add(model::ThemeColorType::Dark2, 0xFFBF00);
+        aColorSet.add(model::ThemeColorType::Light2, 0x333333);
+        aColorSet.add(model::ThemeColorType::Accent1, 0xFFF5CE);
+        aColorSet.add(model::ThemeColorType::Accent2, 0xDEE6EF);
+        aColorSet.add(model::ThemeColorType::Accent3, 0xE8F2A1);
+        aColorSet.add(model::ThemeColorType::Accent4, 0xFFD7D7);
+        aColorSet.add(model::ThemeColorType::Accent5, 0xDEE7E5);
+        aColorSet.add(model::ThemeColorType::Accent6, 0xDDDBB6);
+        aColorSet.add(model::ThemeColorType::Hyperlink, 0x7777EE);
+        aColorSet.add(model::ThemeColorType::FollowedHyperlink, 0xEE77D7);
+        maColorSets.push_back(aColorSet);
+    }
+    {
+        ColorSet aColorSet("Sunset");
+        aColorSet.add(model::ThemeColorType::Dark1, 0x000000);
+        aColorSet.add(model::ThemeColorType::Light1, 0xFFFFFF);
+        aColorSet.add(model::ThemeColorType::Dark2, 0x492300);
+        aColorSet.add(model::ThemeColorType::Light2, 0xF6F9D4);
+        aColorSet.add(model::ThemeColorType::Accent1, 0xFFFF00);
+        aColorSet.add(model::ThemeColorType::Accent2, 0xFFBF00);
+        aColorSet.add(model::ThemeColorType::Accent3, 0xFF8000);
+        aColorSet.add(model::ThemeColorType::Accent4, 0xFF4000);
+        aColorSet.add(model::ThemeColorType::Accent5, 0xBF0041);
+        aColorSet.add(model::ThemeColorType::Accent6, 0x800080);
+        aColorSet.add(model::ThemeColorType::Hyperlink, 0x0000EE);
+        aColorSet.add(model::ThemeColorType::FollowedHyperlink, 0x551A8B);
+        maColorSets.push_back(aColorSet);
+    }
+    {
+        ColorSet aColorSet("Ocean");
+        aColorSet.add(model::ThemeColorType::Dark1, 0x000000);
+        aColorSet.add(model::ThemeColorType::Light1, 0xFFFFFF);
+        aColorSet.add(model::ThemeColorType::Dark2, 0x2A6099);
+        aColorSet.add(model::ThemeColorType::Light2, 0xCCCCCC);
+        aColorSet.add(model::ThemeColorType::Accent1, 0x800080);
+        aColorSet.add(model::ThemeColorType::Accent2, 0x55308D);
+        aColorSet.add(model::ThemeColorType::Accent3, 0x2A6099);
+        aColorSet.add(model::ThemeColorType::Accent4, 0x158466);
+        aColorSet.add(model::ThemeColorType::Accent5, 0x00A933);
+        aColorSet.add(model::ThemeColorType::Accent6, 0x81D41A);
+        aColorSet.add(model::ThemeColorType::Hyperlink, 0x0000EE);
+        aColorSet.add(model::ThemeColorType::FollowedHyperlink, 0x551A8B);
+        maColorSets.push_back(aColorSet);
+    }
+    {
+        ColorSet aColorSet("Forrest");
+        aColorSet.add(model::ThemeColorType::Dark1, 0x000000);
+        aColorSet.add(model::ThemeColorType::Light1, 0xFFFFFF);
+        aColorSet.add(model::ThemeColorType::Dark2, 0x000000);
+        aColorSet.add(model::ThemeColorType::Light2, 0xFFFFFF);
+        aColorSet.add(model::ThemeColorType::Accent1, 0x813709);
+        aColorSet.add(model::ThemeColorType::Accent2, 0x224B12);
+        aColorSet.add(model::ThemeColorType::Accent3, 0x706E0C);
+        aColorSet.add(model::ThemeColorType::Accent4, 0x355269);
+        aColorSet.add(model::ThemeColorType::Accent5, 0xBE480A);
+        aColorSet.add(model::ThemeColorType::Accent6, 0xBE480A);
+        aColorSet.add(model::ThemeColorType::Hyperlink, 0x2A6099);
+        aColorSet.add(model::ThemeColorType::FollowedHyperlink, 0x800080);
+        maColorSets.push_back(aColorSet);
+    }
+    {
         ColorSet aColorSet("Breeze");
         aColorSet.add(model::ThemeColorType::Dark1, 0x232629);
         aColorSet.add(model::ThemeColorType::Light1, 0xFCFCFC);
@@ -189,7 +285,7 @@ void ColorSets::init()
         aColorSet.add(model::ThemeColorType::Hyperlink, 0x1D99F3);
         aColorSet.add(model::ThemeColorType::FollowedHyperlink, 0x3DAEE9);
         maColorSets.push_back(aColorSet);
-    //}
+    }
 }
 
 const ColorSet& ColorSets::getColorSet(std::u16string_view rName)
commit 5b303365fcdb050a1a5e1421160fa7bc7fdccbde
Author:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
AuthorDate: Thu Jan 5 23:22:47 2023 +0900
Commit:     Tomaž Vajngerl <qui...@gmail.com>
CommitDate: Wed Jan 18 12:58:25 2023 +0000

    svx: add resolveColor that resolves the color for input theme
    
    resolveColor added to ColorSet resolves the color for the input
    ThemeColor, which contains the index for the color in the ColorSet
    and applies all the additional tranformations defined in the
    ThemeColor.
    
    Change-Id: I5c6d53d5e1d2c61bdb22b0e58c034ec91fbeb2d4
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145085
    Tested-by: Jenkins
    Reviewed-by: Tomaž Vajngerl <qui...@gmail.com>
    (cherry picked from commit 4d17d06279d3bceee8d4b92f444b5e425412c576)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145653
    Tested-by: Tomaž Vajngerl <qui...@gmail.com>

diff --git a/include/svx/ColorSets.hxx b/include/svx/ColorSets.hxx
index 625bcc62274e..6cad975d6615 100644
--- a/include/svx/ColorSets.hxx
+++ b/include/svx/ColorSets.hxx
@@ -18,7 +18,7 @@
 #include <sal/types.h>
 #include <sal/log.hxx>
 #include <svx/svxdllapi.h>
-#include <docmodel/theme/ThemeColorType.hxx>
+#include <docmodel/theme/ThemeColor.hxx>
 #include <tools/color.hxx>
 
 typedef struct _xmlTextWriter* xmlTextWriterPtr;
@@ -43,15 +43,8 @@ public:
         return maName;
     }
 
-    Color getColor(model::ThemeColorType nType) const
-    {
-        if (nType == model::ThemeColorType::Unknown)
-        {
-            SAL_WARN("svx", "ColorSet::getColor with ThemeColorType::Unknown");
-            return COL_AUTO;
-        }
-        return maColors[size_t(nType)];
-    }
+    Color resolveColor(model::ThemeColor const& rThemeColor) const;
+    Color getColor(model::ThemeColorType eType) const;
 
     void dumpAsXml(xmlTextWriterPtr pWriter) const;
 };
diff --git a/svx/source/styles/ColorSets.cxx b/svx/source/styles/ColorSets.cxx
index 1cc9e5ed44cf..ee450f4a25ff 100644
--- a/svx/source/styles/ColorSets.cxx
+++ b/svx/source/styles/ColorSets.cxx
@@ -54,8 +54,7 @@ void UpdateTextPortionColorSet(const 
uno::Reference<beans::XPropertySet>& xPorti
     if (aThemeColor.getType() == model::ThemeColorType::Unknown)
         return;
 
-    Color aColor = rColorSet.getColor(aThemeColor.getType());
-    aColor = aThemeColor.applyTransformations(aColor);
+    Color aColor = rColorSet.resolveColor(aThemeColor);
 
     xPortion->setPropertyValue(UNO_NAME_EDIT_CHAR_COLOR, 
uno::makeAny(static_cast<sal_Int32>(aColor)));
 }
@@ -76,8 +75,7 @@ void UpdateFillColorSet(const 
uno::Reference<beans::XPropertySet>& xShape, svx::
     if (aThemeColor.getType() == model::ThemeColorType::Unknown)
         return;
 
-    Color aColor = rColorSet.getColor(aThemeColor.getType());
-    aColor = aThemeColor.applyTransformations(aColor);
+    Color aColor = rColorSet.resolveColor(aThemeColor);
     xShape->setPropertyValue(UNO_NAME_FILLCOLOR, 
uno::makeAny(static_cast<sal_Int32>(aColor)));
 }
 
@@ -127,6 +125,28 @@ void ColorSet::add(model::ThemeColorType eType, Color 
aColorData)
     maColors[sal_Int16(eType)] = aColorData;
 }
 
+Color ColorSet::getColor(model::ThemeColorType eType) const
+{
+    if (eType == model::ThemeColorType::Unknown)
+    {
+        SAL_WARN("svx", "ColorSet::getColor with ThemeColorType::Unknown");
+        return COL_AUTO;
+    }
+    return maColors[size_t(eType)];
+}
+
+Color ColorSet::resolveColor(model::ThemeColor const& rThemeColor) const
+{
+    auto eType = rThemeColor.getType();
+    if (eType == model::ThemeColorType::Unknown)
+    {
+        SAL_WARN("svx", "ColorSet::resolveColor with ThemeColorType::Unknown");
+        return COL_AUTO;
+    }
+    Color aColor = getColor(eType);
+    return rThemeColor.applyTransformations(aColor);
+}
+
 void ColorSet::dumpAsXml(xmlTextWriterPtr pWriter) const
 {
     (void)xmlTextWriterStartElement(pWriter, BAD_CAST("ColorSet"));

Reply via email to