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"));