diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2023-07-30 08:52:44 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2023-08-04 12:01:39 +0200 |
commit | 2582b4569e0ea5686b3f970a93c198b3f1935f4e (patch) | |
tree | 73670f8ebfe48bc503b6debc8024c6f1137cc633 /oox | |
parent | 94b5e1fd70a76d10d20bd3859d808d256420180b (diff) |
sc: theme color support for sparklines + ODF & OOXML import/export
This changes Sparkline colors to use complex colors instead and
adds Sparkline theme color import and export support for ODF and
OOXML.
Change-Id: I58edd525d50f95199bd4fe7825afb51aaa7fc091
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155113
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
(cherry picked from commit c8d8bf4282cbd04abacfa69ba2cc0fa4300e35e1)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155289
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Diffstat (limited to 'oox')
-rw-r--r-- | oox/Library_oox.mk | 1 | ||||
-rw-r--r-- | oox/source/drawingml/color.cxx | 7 | ||||
-rw-r--r-- | oox/source/export/ColorExportUtils.cxx | 55 |
3 files changed, 62 insertions, 1 deletions
diff --git a/oox/Library_oox.mk b/oox/Library_oox.mk index 3bf2d607918c..e37df6a393b9 100644 --- a/oox/Library_oox.mk +++ b/oox/Library_oox.mk @@ -228,6 +228,7 @@ $(eval $(call gb_Library_add_exception_objects,oox,\ oox/source/dump/oledumper \ oox/source/dump/pptxdumper \ oox/source/export/ColorPropertySet \ + oox/source/export/ColorExportUtils \ oox/source/export/drawingml \ oox/source/export/DMLPresetShapeExport \ oox/source/export/shapes \ diff --git a/oox/source/drawingml/color.cxx b/oox/source/drawingml/color.cxx index 1ed2e57b6242..e582d4e53c77 100644 --- a/oox/source/drawingml/color.cxx +++ b/oox/source/drawingml/color.cxx @@ -825,9 +825,14 @@ model::ComplexColor Color::createComplexColor(const GraphicHelper& /*rGraphicHel auto eTheme = getThemeColorType(); aNewComplexColor.setSchemeColor(eTheme); } + else if (meMode == COLOR_RGB) + { + ::Color aColor(ColorTransparency, lclRgbComponentsToRgb(mnC1, mnC2, mnC3)); + aNewComplexColor = model::ComplexColor::RGB(aColor); + } else { - // TODO + // TODO - Add other options return aNewComplexColor; } diff --git a/oox/source/export/ColorExportUtils.cxx b/oox/source/export/ColorExportUtils.cxx new file mode 100644 index 000000000000..2b9f7baabc53 --- /dev/null +++ b/oox/source/export/ColorExportUtils.cxx @@ -0,0 +1,55 @@ +/* -*- 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/. + */ + +#include <sal/config.h> +#include <array> +#include <oox/export/ColorExportUtils.hxx> +#include <docmodel/color/ComplexColor.hxx> + +namespace oox +{ +double convertColorTransformsToTintOrShade(model::ComplexColor const& rComplexColor) +{ + sal_Int16 nLumMod = 10'000; + sal_Int16 nLumOff = 0; + + for (auto const& rTransform : rComplexColor.getTransformations()) + { + if (rTransform.meType == model::TransformationType::LumMod) + nLumMod = rTransform.mnValue; + if (rTransform.meType == model::TransformationType::LumOff) + nLumOff = rTransform.mnValue; + } + + if (nLumMod == 10'000 && nLumOff == 0) + return 0.0; + + double fTint = 0.0; + + if (nLumOff > 0) // tint + fTint = double(nLumOff) / 10'000.0; + else + fTint = -double(10'000 - nLumMod) / 10'000.0; + + return fTint; +} + +sal_Int32 convertThemeColorTypeToExcelThemeNumber(model::ThemeColorType eType) +{ + if (eType == model::ThemeColorType::Unknown) + return -1; + + static constexpr std::array<sal_Int32, 12> constThemeColorMapToXmlMap + = { 1, 0, 3, 2, 4, 5, 6, 7, 8, 9, 10, 11 }; + + return constThemeColorMapToXmlMap[sal_Int32(eType)]; +} +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |