summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docmodel/Library_docmodel.mk1
-rw-r--r--docmodel/source/theme/Theme.cxx158
-rw-r--r--include/docmodel/theme/Theme.hxx163
-rw-r--r--include/oox/drawingml/theme.hxx4
-rw-r--r--include/oox/export/ThemeExport.hxx8
-rw-r--r--include/svx/ColorSets.hxx186
-rw-r--r--include/svx/dialog/ThemeDialog.hxx5
-rw-r--r--include/svx/svdmodel.hxx6
-rw-r--r--include/svx/svdpage.hxx8
-rw-r--r--oox/inc/drawingml/textfont.hxx4
-rw-r--r--oox/source/drawingml/textfont.cxx4
-rw-r--r--oox/source/drawingml/theme.cxx30
-rw-r--r--oox/source/export/ThemeExport.cxx10
-rw-r--r--sd/source/filter/eppt/epptooxml.hxx6
-rw-r--r--sd/source/filter/eppt/pptx-epptooxml.cxx6
-rw-r--r--sd/source/ui/docshell/docshell.cxx2
-rw-r--r--sd/source/ui/func/fuconstr.cxx2
-rw-r--r--sd/source/ui/func/fupage.cxx4
-rw-r--r--sd/source/ui/unoidl/unomodel.cxx4
-rw-r--r--sd/source/ui/unoidl/unopage.cxx4
-rw-r--r--svx/qa/unit/ThemeTest.cxx4
-rw-r--r--svx/source/dialog/ThemeDialog.cxx3
-rw-r--r--svx/source/styles/ColorSets.cxx136
-rw-r--r--svx/source/svdraw/svdmodel.cxx8
-rw-r--r--svx/source/svdraw/svdpage.cxx4
-rw-r--r--sw/qa/core/theme/ThemeTest.cxx4
-rw-r--r--sw/source/core/model/ThemeColorChanger.cxx4
-rw-r--r--sw/source/filter/xml/xmlfmte.cxx2
-rw-r--r--sw/source/uibase/app/docst.cxx4
-rw-r--r--sw/source/uibase/shells/basesh.cxx4
-rw-r--r--sw/source/uibase/sidebar/ThemePanel.cxx4
-rw-r--r--writerfilter/source/dmapper/ThemeHandler.cxx8
-rw-r--r--xmloff/source/draw/sdxmlexp.cxx2
33 files changed, 402 insertions, 400 deletions
diff --git a/docmodel/Library_docmodel.mk b/docmodel/Library_docmodel.mk
index 22ecdfa59ac4..7974027a7a9e 100644
--- a/docmodel/Library_docmodel.mk
+++ b/docmodel/Library_docmodel.mk
@@ -12,6 +12,7 @@ $(eval $(call gb_Library_Library,docmodel))
$(eval $(call gb_Library_add_exception_objects,docmodel,\
docmodel/source/uno/UnoThemeColor \
docmodel/source/theme/ColorSet \
+ docmodel/source/theme/Theme \
))
$(eval $(call gb_Library_set_include,docmodel,\
diff --git a/docmodel/source/theme/Theme.cxx b/docmodel/source/theme/Theme.cxx
new file mode 100644
index 000000000000..0f8ff8002870
--- /dev/null
+++ b/docmodel/source/theme/Theme.cxx
@@ -0,0 +1,158 @@
+/* -*- 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 <docmodel/theme/Theme.hxx>
+
+#include <utility>
+#include <libxml/xmlwriter.h>
+#include <comphelper/sequenceashashmap.hxx>
+#include <comphelper/sequence.hxx>
+#include <sal/log.hxx>
+#include <sal/types.h>
+#include <o3tl/enumrange.hxx>
+#include <com/sun/star/util/Color.hpp>
+#include <com/sun/star/beans/PropertyValue.hpp>
+
+using namespace com::sun::star;
+
+namespace model
+{
+Theme::Theme(OUString const& rName)
+ : maName(rName)
+{
+}
+
+void Theme::SetColorSet(std::unique_ptr<model::ColorSet> pColorSet)
+{
+ mpColorSet = std::move(pColorSet);
+}
+
+const model::ColorSet* Theme::GetColorSet() const { return mpColorSet.get(); }
+
+model::ColorSet* Theme::GetColorSet() { return mpColorSet.get(); }
+
+void Theme::SetName(const OUString& rName) { maName = rName; }
+
+const OUString& Theme::GetName() const { return maName; }
+
+void Theme::dumpAsXml(xmlTextWriterPtr pWriter) const
+{
+ (void)xmlTextWriterStartElement(pWriter, BAD_CAST("Theme"));
+ (void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST("ptr"), "%p", this);
+ (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST("maName"),
+ BAD_CAST(maName.toUtf8().getStr()));
+
+ if (mpColorSet)
+ {
+ mpColorSet->dumpAsXml(pWriter);
+ }
+
+ (void)xmlTextWriterEndElement(pWriter);
+}
+
+void Theme::ToAny(uno::Any& rVal) const
+{
+ comphelper::SequenceAsHashMap aMap;
+ aMap["Name"] <<= maName;
+
+ if (mpColorSet)
+ {
+ std::vector<util::Color> aColorScheme;
+ for (auto eThemeColorType : o3tl::enumrange<model::ThemeColorType>())
+ {
+ if (eThemeColorType != model::ThemeColorType::Unknown)
+ {
+ Color aColor = mpColorSet->getColor(eThemeColorType);
+ aColorScheme.push_back(sal_Int32(aColor));
+ }
+ }
+
+ aMap["ColorSchemeName"] <<= mpColorSet->getName();
+ aMap["ColorScheme"] <<= comphelper::containerToSequence(aColorScheme);
+ }
+
+ rVal <<= aMap.getAsConstPropertyValueList();
+}
+
+std::unique_ptr<Theme> Theme::FromAny(const uno::Any& rVal)
+{
+ comphelper::SequenceAsHashMap aMap(rVal);
+ std::unique_ptr<Theme> pTheme;
+ model::ColorSet* pColorSet = nullptr;
+
+ auto it = aMap.find("Name");
+ if (it != aMap.end())
+ {
+ OUString aName;
+ it->second >>= aName;
+ pTheme = std::make_unique<Theme>(aName);
+ }
+
+ it = aMap.find("ColorSchemeName");
+ if (it != aMap.end() && pTheme)
+ {
+ OUString aName;
+ it->second >>= aName;
+ auto pSet = std::make_unique<model::ColorSet>(aName);
+ pTheme->SetColorSet(std::move(pSet));
+ pColorSet = pTheme->GetColorSet();
+ }
+
+ it = aMap.find("ColorScheme");
+ if (it != aMap.end() && pColorSet)
+ {
+ uno::Sequence<util::Color> aColors;
+ it->second >>= aColors;
+
+ SAL_WARN_IF(aColors.size() > 12, "svx",
+ "Theme::FromAny: number of colors greater than max theme colors supported");
+
+ for (auto eThemeColorType : o3tl::enumrange<model::ThemeColorType>())
+ {
+ if (eThemeColorType != model::ThemeColorType::Unknown)
+ {
+ size_t nIndex(static_cast<sal_Int16>(eThemeColorType));
+ if (nIndex < aColors.size())
+ {
+ Color aColor(ColorTransparency, aColors[nIndex]);
+ pColorSet->add(eThemeColorType, aColor);
+ }
+ }
+ }
+ }
+
+ return pTheme;
+}
+
+std::vector<Color> Theme::GetColors() const
+{
+ if (!mpColorSet)
+ return {};
+
+ std::vector<Color> aColors;
+ for (auto eThemeColorType : o3tl::enumrange<model::ThemeColorType>())
+ {
+ if (eThemeColorType != model::ThemeColorType::Unknown)
+ aColors.push_back(mpColorSet->getColor(eThemeColorType));
+ }
+ return aColors;
+}
+
+Color Theme::GetColor(model::ThemeColorType eType) const
+{
+ if (!mpColorSet)
+ return {};
+
+ return mpColorSet->getColor(eType);
+}
+
+} // end of namespace model
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/docmodel/theme/Theme.hxx b/include/docmodel/theme/Theme.hxx
new file mode 100644
index 000000000000..1f6a91762964
--- /dev/null
+++ b/include/docmodel/theme/Theme.hxx
@@ -0,0 +1,163 @@
+/* -*- 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 <rtl/ustring.hxx>
+#include <docmodel/theme/ThemeColor.hxx>
+#include <docmodel/theme/ThemeColorType.hxx>
+#include <docmodel/theme/Theme.hxx>
+#include <docmodel/theme/ColorSet.hxx>
+#include <tools/color.hxx>
+
+typedef struct _xmlTextWriter* xmlTextWriterPtr;
+
+namespace model
+{
+struct DOCMODEL_DLLPUBLIC ThemeSupplementalFont
+{
+ OUString maScript;
+ OUString maTypeface;
+};
+
+struct DOCMODEL_DLLPUBLIC ThemeFont
+{
+ OUString maTypeface;
+ OUString maPanose;
+ sal_Int16 maPitch = 0;
+ sal_Int16 maFamily = 0;
+ sal_Int32 maCharset = 0;
+
+ sal_Int16 getPitchFamily() const { return (maPitch & 0x0F) | (maFamily & 0x0F) << 4; }
+};
+
+class DOCMODEL_DLLPUBLIC FontScheme
+{
+private:
+ OUString maName;
+
+ ThemeFont maMinorLatin;
+ ThemeFont maMinorAsian;
+ ThemeFont maMinorComplex;
+
+ ThemeFont maMajorLatin;
+ ThemeFont maMajorAsian;
+ ThemeFont maMajorComplex;
+
+ std::vector<ThemeSupplementalFont> maMinorSupplementalFontList;
+ std::vector<ThemeSupplementalFont> maMajorSupplementalFontList;
+
+public:
+ FontScheme() = default;
+ FontScheme(OUString const& rName)
+ : maName(rName)
+ {
+ }
+
+ const OUString& getName() const { return maName; }
+
+ ThemeFont const& getMinorLatin() const { return maMinorLatin; }
+ void setMinorLatin(ThemeFont const& aMinor) { maMinorLatin = aMinor; }
+
+ ThemeFont const& getMinorAsian() const { return maMinorAsian; }
+ void setMinorAsian(ThemeFont const& aMinor) { maMinorAsian = aMinor; }
+
+ ThemeFont const& getMinorComplex() const { return maMinorComplex; }
+ void setMinorComplex(ThemeFont const& aMinor) { maMinorComplex = aMinor; }
+
+ ThemeFont const& getMajorLatin() const { return maMajorLatin; }
+ void setMajorLatin(ThemeFont const& aMajor) { maMajorLatin = aMajor; }
+
+ ThemeFont const& getMajorAsian() const { return maMajorAsian; }
+ void setMajorAsian(ThemeFont const& aMajor) { maMajorAsian = aMajor; }
+
+ ThemeFont const& getMajorComplex() const { return maMajorComplex; }
+ void setMajorComplex(ThemeFont const& aMajor) { maMajorComplex = aMajor; }
+
+ OUString findMinorSupplementalTypeface(std::u16string_view rScript) const
+ {
+ for (auto const& rSupplementalFont : maMinorSupplementalFontList)
+ {
+ if (rSupplementalFont.maScript == rScript)
+ return rSupplementalFont.maTypeface;
+ }
+ return OUString();
+ }
+
+ std::vector<ThemeSupplementalFont> const& getMinorSupplementalFontList() const
+ {
+ return maMinorSupplementalFontList;
+ }
+ void setMinorSupplementalFontList(std::vector<ThemeSupplementalFont> const& rSupplementalFont)
+ {
+ maMinorSupplementalFontList = rSupplementalFont;
+ }
+
+ OUString findMajorSupplementalTypeface(std::u16string_view rScript) const
+ {
+ for (auto const& rSupplementalFont : maMajorSupplementalFontList)
+ {
+ if (rSupplementalFont.maScript == rScript)
+ return rSupplementalFont.maTypeface;
+ }
+ return OUString();
+ }
+
+ std::vector<ThemeSupplementalFont> const& getMajorSupplementalFontList() const
+ {
+ return maMajorSupplementalFontList;
+ }
+
+ void setMajorSupplementalFontList(std::vector<ThemeSupplementalFont> const& rSupplementalFont)
+ {
+ maMajorSupplementalFontList = rSupplementalFont;
+ }
+};
+
+/// A named theme has a named color set.
+class DOCMODEL_DLLPUBLIC Theme
+{
+private:
+ OUString maName;
+ std::unique_ptr<model::ColorSet> mpColorSet;
+
+ FontScheme maFontScheme;
+
+public:
+ Theme(OUString const& rName);
+
+ void setFontScheme(FontScheme const& rFontScheme) { maFontScheme = rFontScheme; }
+
+ FontScheme const& getFontScheme() const { return maFontScheme; }
+
+ void SetColorSet(std::unique_ptr<ColorSet> pColorSet);
+ const ColorSet* GetColorSet() const;
+ ColorSet* GetColorSet();
+
+ void SetName(const OUString& rName);
+ const OUString& GetName() const;
+
+ void dumpAsXml(xmlTextWriterPtr pWriter) const;
+
+ void ToAny(css::uno::Any& rVal) const;
+
+ static std::unique_ptr<Theme> FromAny(const css::uno::Any& rVal);
+
+ std::vector<Color> GetColors() const;
+
+ Color GetColor(model::ThemeColorType eType) const;
+};
+
+} // end of namespace model
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/oox/drawingml/theme.hxx b/include/oox/drawingml/theme.hxx
index ebd05957bf3b..a779472b5331 100644
--- a/include/oox/drawingml/theme.hxx
+++ b/include/oox/drawingml/theme.hxx
@@ -35,7 +35,7 @@ namespace com::sun::star {
namespace drawing { class XDrawPage; }
namespace xml::dom { class XDocument; }
}
-namespace svx {
+namespace model {
class Theme;
}
@@ -107,7 +107,7 @@ public:
const css::uno::Reference<css::xml::dom::XDocument>& getFragment() const { return mxFragment; }
void setFragment( const css::uno::Reference< css::xml::dom::XDocument>& xRef ) { mxFragment=xRef; }
- std::unique_ptr<svx::Theme> createSvxTheme() const;
+ std::unique_ptr<model::Theme> createSvxTheme() const;
void addTheme(const css::uno::Reference<css::drawing::XDrawPage>& xDrawPage) const;
private:
diff --git a/include/oox/export/ThemeExport.hxx b/include/oox/export/ThemeExport.hxx
index 02f222cadafe..69f048afbaa0 100644
--- a/include/oox/export/ThemeExport.hxx
+++ b/include/oox/export/ThemeExport.hxx
@@ -12,7 +12,7 @@
#include <sal/config.h>
#include <oox/dllapi.h>
#include <oox/core/xmlfilterbase.hxx>
-#include <svx/ColorSets.hxx>
+#include <docmodel/theme/Theme.hxx>
namespace oox
{
@@ -24,12 +24,12 @@ private:
public:
ThemeExport(oox::core::XmlFilterBase* pFilterBase);
- void write(OUString const& rPath, svx::Theme const& rTheme);
+ void write(OUString const& rPath, model::Theme const& rTheme);
private:
- static bool writeColorSet(sax_fastparser::FSHelperPtr pFS, svx::Theme const& rTheme);
+ static bool writeColorSet(sax_fastparser::FSHelperPtr pFS, model::Theme const& rTheme);
static bool writeFontScheme(sax_fastparser::FSHelperPtr pFS,
- svx::FontScheme const& rFontScheme);
+ model::FontScheme const& rFontScheme);
static bool writeFormatScheme(sax_fastparser::FSHelperPtr pFS);
};
diff --git a/include/svx/ColorSets.hxx b/include/svx/ColorSets.hxx
index b06dbea0694e..faec6d2c2249 100644
--- a/include/svx/ColorSets.hxx
+++ b/include/svx/ColorSets.hxx
@@ -11,19 +11,10 @@
#ifndef INCLUDED_SVX_COLORSETS_HXX
#define INCLUDED_SVX_COLORSETS_HXX
-#include <array>
-#include <vector>
-
#include <rtl/ustring.hxx>
#include <sal/log.hxx>
-#include <sal/types.h>
#include <svx/svxdllapi.h>
-#include <docmodel/theme/ThemeColor.hxx>
#include <docmodel/theme/ColorSet.hxx>
-#include <tools/color.hxx>
-
-typedef struct _xmlTextWriter* xmlTextWriterPtr;
-class SdrPage;
namespace svx
{
@@ -51,183 +42,6 @@ public:
void insert(model::ColorSet const& rColorSet);
};
-struct SVXCORE_DLLPUBLIC ThemeSupplementalFont
-{
- OUString maScript;
- OUString maTypeface;
-};
-
-struct SVXCORE_DLLPUBLIC ThemeFont
-{
- OUString maTypeface;
- OUString maPanose;
- sal_Int16 maPitch = 0;
- sal_Int16 maFamily = 0;
- sal_Int32 maCharset = 0;
-
- sal_Int16 getPitchFamily() const
- {
- return (maPitch & 0x0F) | (maFamily & 0x0F) << 4;
- }
-};
-
-class SVXCORE_DLLPUBLIC FontScheme
-{
-private:
- OUString maName;
-
- ThemeFont maMinorLatin;
- ThemeFont maMinorAsian;
- ThemeFont maMinorComplex;
-
- ThemeFont maMajorLatin;
- ThemeFont maMajorAsian;
- ThemeFont maMajorComplex;
-
- std::vector<ThemeSupplementalFont> maMinorSupplementalFontList;
- std::vector<ThemeSupplementalFont> maMajorSupplementalFontList;
-
-public:
- FontScheme() = default;
- FontScheme(OUString const& rName)
- : maName(rName)
- {}
-
- const OUString& getName() const
- {
- return maName;
- }
-
- ThemeFont const& getMinorLatin() const
- {
- return maMinorLatin;
- }
- void setMinorLatin(ThemeFont const& aMinor)
- {
- maMinorLatin = aMinor;
- }
-
- ThemeFont const& getMinorAsian() const
- {
- return maMinorAsian;
- }
- void setMinorAsian(ThemeFont const& aMinor)
- {
- maMinorAsian = aMinor;
- }
-
- ThemeFont const& getMinorComplex() const
- {
- return maMinorComplex;
- }
- void setMinorComplex(ThemeFont const& aMinor)
- {
- maMinorComplex = aMinor;
- }
-
- ThemeFont const& getMajorLatin() const
- {
- return maMajorLatin;
- }
- void setMajorLatin(ThemeFont const& aMajor)
- {
- maMajorLatin = aMajor;
- }
-
- ThemeFont const& getMajorAsian() const
- {
- return maMajorAsian;
- }
- void setMajorAsian(ThemeFont const& aMajor)
- {
- maMajorAsian = aMajor;
- }
-
- ThemeFont const& getMajorComplex() const
- {
- return maMajorComplex;
- }
- void setMajorComplex(ThemeFont const& aMajor)
- {
- maMajorComplex = aMajor;
- }
-
- OUString findMinorSupplementalTypeface(std::u16string_view rScript) const
- {
- for (auto const& rSupplementalFont : maMinorSupplementalFontList)
- {
- if (rSupplementalFont.maScript == rScript)
- return rSupplementalFont.maTypeface;
- }
- return OUString();
- }
-
- std::vector<ThemeSupplementalFont> const& getMinorSupplementalFontList() const
- {
- return maMinorSupplementalFontList;
- }
- void setMinorSupplementalFontList(std::vector<ThemeSupplementalFont> const& rSupplementalFont)
- {
- maMinorSupplementalFontList = rSupplementalFont;
- }
-
- OUString findMajorSupplementalTypeface(std::u16string_view rScript) const
- {
- for (auto const& rSupplementalFont : maMajorSupplementalFontList)
- {
- if (rSupplementalFont.maScript == rScript)
- return rSupplementalFont.maTypeface;
- }
- return OUString();
- }
-
- std::vector<ThemeSupplementalFont> const& getMajorSupplementalFontList() const
- {
- return maMajorSupplementalFontList;
- }
- void setMajorSupplementalFontList(std::vector<ThemeSupplementalFont> const& rSupplementalFont)
- {
- maMajorSupplementalFontList = rSupplementalFont;
- }
-};
-
-/// A named theme has a named color set.
-class SVXCORE_DLLPUBLIC Theme
-{
-private:
- OUString maName;
- std::unique_ptr<model::ColorSet> mpColorSet;
-
- FontScheme maFontScheme;
-
-public:
- Theme(OUString const& rName);
-
- void setFontScheme(FontScheme const& rFontScheme)
- {
- maFontScheme = rFontScheme;
- }
-
- FontScheme const& getFontScheme() const { return maFontScheme; }
-
- void SetColorSet(std::unique_ptr<model::ColorSet> pColorSet);
- const model::ColorSet* GetColorSet() const;
- model::ColorSet* GetColorSet();
-
- void SetName(const OUString& rName);
- const OUString& GetName() const;
-
- void dumpAsXml(xmlTextWriterPtr pWriter) const;
-
- void ToAny(css::uno::Any& rVal) const;
-
- static std::unique_ptr<Theme> FromAny(const css::uno::Any& rVal);
-
- std::vector<Color> GetColors() const;
-
- Color GetColor(model::ThemeColorType eType) const;
-};
-
} // end of namespace svx
#endif // INCLUDED_SVX_COLORSETS_HXX
diff --git a/include/svx/dialog/ThemeDialog.hxx b/include/svx/dialog/ThemeDialog.hxx
index 968c54af9e98..1db4f2f43e6a 100644
--- a/include/svx/dialog/ThemeDialog.hxx
+++ b/include/svx/dialog/ThemeDialog.hxx
@@ -11,6 +11,7 @@
#include <svx/svxdllapi.h>
#include <vcl/weld.hxx>
+#include <docmodel/theme/Theme.hxx>
#include <svx/ColorSets.hxx>
#include <svx/svdpage.hxx>
#include <svx/theme/IThemeColorChanger.hxx>
@@ -21,7 +22,7 @@ namespace svx
class SVX_DLLPUBLIC ThemeDialog final : public weld::GenericDialogController
{
private:
- svx::Theme* mpTheme;
+ model::Theme* mpTheme;
svx::ColorSets maColorSets;
std::shared_ptr<IThemeColorChanger> mpChanger;
@@ -29,7 +30,7 @@ private:
std::unique_ptr<weld::CustomWeld> mxValueSetThemeColorsWindow;
public:
- ThemeDialog(weld::Window* pParent, svx::Theme* pTheme,
+ ThemeDialog(weld::Window* pParent, model::Theme* pTheme,
std::shared_ptr<IThemeColorChanger> const& pChanger);
virtual ~ThemeDialog() override;
diff --git a/include/svx/svdmodel.hxx b/include/svx/svdmodel.hxx
index b5d93fa53eb7..3eac3de05489 100644
--- a/include/svx/svdmodel.hxx
+++ b/include/svx/svdmodel.hxx
@@ -90,7 +90,7 @@ namespace com::sun::star::beans {
struct PropertyValue;
}
-namespace svx
+namespace model
{
class Theme;
}
@@ -542,8 +542,8 @@ public:
SfxStyleSheetBasePool* GetStyleSheetPool() const { return mxStyleSheetPool.get(); }
void SetStyleSheetPool(SfxStyleSheetBasePool* pPool) { mxStyleSheetPool=pPool; }
- void SetTheme(std::unique_ptr<svx::Theme> pTheme);
- svx::Theme* GetTheme();
+ void SetTheme(std::unique_ptr<model::Theme> pTheme);
+ model::Theme* GetTheme();
void SetStarDrawPreviewMode(bool bPreview);
bool IsStarDrawPreviewMode() const { return m_bStarDrawPreviewMode; }
diff --git a/include/svx/svdpage.hxx b/include/svx/svdpage.hxx
index 5b6a1a434da0..186a49a028f8 100644
--- a/include/svx/svdpage.hxx
+++ b/include/svx/svdpage.hxx
@@ -30,7 +30,7 @@
#include <com/sun/star/container/XIndexAccess.hpp>
#include <com/sun/star/drawing/XDrawPage.hpp>
#include <svx/svdobj.hxx>
-#include <svx/ColorSets.hxx>
+#include <docmodel/theme/Theme.hxx>
#include <unotools/weakref.hxx>
#include <memory>
#include <optional>
@@ -317,7 +317,7 @@ private:
// data
SdrPage* mpSdrPage;
SfxStyleSheet* mpStyleSheet;
- std::unique_ptr<svx::Theme> mpTheme;
+ std::unique_ptr<model::Theme> mpTheme;
SfxItemSet maProperties;
// internal helpers
@@ -346,8 +346,8 @@ public:
void SetStyleSheet(SfxStyleSheet* pStyleSheet);
SfxStyleSheet* GetStyleSheet() const { return mpStyleSheet;}
- void SetTheme(std::unique_ptr<svx::Theme> pTheme);
- svx::Theme* GetTheme();
+ void SetTheme(std::unique_ptr<model::Theme> pTheme);
+ model::Theme* GetTheme();
void dumpAsXml(xmlTextWriterPtr pWriter) const;
};
diff --git a/oox/inc/drawingml/textfont.hxx b/oox/inc/drawingml/textfont.hxx
index 3847ed8c61be..1c6da232d443 100644
--- a/oox/inc/drawingml/textfont.hxx
+++ b/oox/inc/drawingml/textfont.hxx
@@ -24,7 +24,7 @@
namespace oox { class AttributeList; }
namespace oox::core { class XmlFilterBase; }
-namespace svx { struct ThemeFont; }
+namespace model { struct ThemeFont; }
namespace oox::drawingml {
@@ -52,7 +52,7 @@ public:
sal_Int16& rnFontFamily,
const ::oox::core::XmlFilterBase& rFilter ) const;
- void fillThemeFont(svx::ThemeFont& rThemeFont) const;
+ void fillThemeFont(model::ThemeFont& rThemeFont) const;
static void resolvePitch(sal_Int32 nOoxPitch, sal_Int16& rnFontPitch, sal_Int16& rnFontFamily);
diff --git a/oox/source/drawingml/textfont.cxx b/oox/source/drawingml/textfont.cxx
index c531ef7ffba6..1ac57258a7da 100644
--- a/oox/source/drawingml/textfont.cxx
+++ b/oox/source/drawingml/textfont.cxx
@@ -24,7 +24,7 @@
#include <oox/core/xmlfilterbase.hxx>
#include <oox/helper/attributelist.hxx>
#include <oox/token/tokens.hxx>
-#include <svx/ColorSets.hxx>
+#include <docmodel/theme/Theme.hxx>
using ::oox::core::XmlFilterBase;
@@ -91,7 +91,7 @@ bool TextFont::implGetFontData( OUString& rFontName, sal_Int16& rnFontPitch, sal
return !rFontName.isEmpty();
}
-void TextFont::fillThemeFont(svx::ThemeFont& rThemeFont) const
+void TextFont::fillThemeFont(model::ThemeFont& rThemeFont) const
{
rThemeFont.maTypeface = maTypeface;
rThemeFont.maPanose = maPanose;
diff --git a/oox/source/drawingml/theme.cxx b/oox/source/drawingml/theme.cxx
index 78471490f35a..f4ebe63e00e2 100644
--- a/oox/source/drawingml/theme.cxx
+++ b/oox/source/drawingml/theme.cxx
@@ -27,8 +27,8 @@
#include <sal/log.hxx>
#include <svx/unopage.hxx>
#include <svx/svdpage.hxx>
-#include <svx/ColorSets.hxx>
#include <docmodel/theme/ColorSet.hxx>
+#include <docmodel/theme/Theme.hxx>
#include <svx/unoapi.hxx>
using namespace com::sun::star;
@@ -109,61 +109,61 @@ const TextFont* Theme::resolveFont( std::u16string_view rName ) const
return nullptr;
}
-std::unique_ptr<svx::Theme> Theme::createSvxTheme() const
+std::unique_ptr<model::Theme> Theme::createSvxTheme() const
{
- auto pTheme = std::make_unique<svx::Theme>(maThemeName);
+ auto pTheme = std::make_unique<model::Theme>(maThemeName);
auto pColorSet = std::make_unique<model::ColorSet>(maClrScheme.GetName());
maClrScheme.fill(*pColorSet);
pTheme->SetColorSet(std::move(pColorSet));
- svx::FontScheme aFontScheme(maFontSchemeName);
+ model::FontScheme aFontScheme(maFontSchemeName);
if (auto* pCharProps = getFontStyle(XML_minor))
{
- svx::ThemeFont aMinorLatin;
+ model::ThemeFont aMinorLatin;
pCharProps->maLatinFont.fillThemeFont(aMinorLatin);
aFontScheme.setMinorLatin(aMinorLatin);
- svx::ThemeFont aMinorAsian;
+ model::ThemeFont aMinorAsian;
pCharProps->maAsianFont.fillThemeFont(aMinorAsian);
aFontScheme.setMinorAsian(aMinorAsian);
- svx::ThemeFont aMinorComplex;
+ model::ThemeFont aMinorComplex;
pCharProps->maComplexFont.fillThemeFont(aMinorComplex);
aFontScheme.setMinorComplex(aMinorComplex);
}
if (auto* pCharProps = getFontStyle(XML_major))
{
- svx::ThemeFont aMajorLatin;
+ model::ThemeFont aMajorLatin;
pCharProps->maLatinFont.fillThemeFont(aMajorLatin);
aFontScheme.setMajorLatin(aMajorLatin);
- svx::ThemeFont aMajorAsian;
+ model::ThemeFont aMajorAsian;
pCharProps->maAsianFont.fillThemeFont(aMajorAsian);
aFontScheme.setMajorAsian(aMajorAsian);
- svx::ThemeFont aMajorComplex;
+ model::ThemeFont aMajorComplex;
pCharProps->maComplexFont.fillThemeFont(aMajorComplex);
aFontScheme.setMajorComplex(aMajorComplex);
}
if (maSupplementalFontMap.find(XML_minor) != maSupplementalFontMap.cend())
{
- std::vector<svx::ThemeSupplementalFont> aList;
+ std::vector<model::ThemeSupplementalFont> aList;
for (auto const& [rScript, rTypeface] : maSupplementalFontMap.at(XML_minor))
{
- aList.push_back(svx::ThemeSupplementalFont{rScript, rTypeface});
+ aList.push_back(model::ThemeSupplementalFont{rScript, rTypeface});
}
aFontScheme.setMinorSupplementalFontList(aList);
}
if (maSupplementalFontMap.find(XML_major) != maSupplementalFontMap.cend())
{
- std::vector<svx::ThemeSupplementalFont> aList;
+ std::vector<model::ThemeSupplementalFont> aList;
for (auto const& [rScript, rTypeface] : maSupplementalFontMap.at(XML_major))
{
- aList.push_back(svx::ThemeSupplementalFont{rScript, rTypeface});
+ aList.push_back(model::ThemeSupplementalFont{rScript, rTypeface});
}
aFontScheme.setMajorSupplementalFontList(aList);
}
@@ -184,7 +184,7 @@ void Theme::addTheme(const css::uno::Reference<css::drawing::XDrawPage>& xDrawPa
if (!pPage)
return;
- std::unique_ptr<svx::Theme> pTheme = createSvxTheme();
+ std::unique_ptr<model::Theme> pTheme = createSvxTheme();
pPage->getSdrPageProperties().SetTheme(std::move(pTheme));
}
diff --git a/oox/source/export/ThemeExport.cxx b/oox/source/export/ThemeExport.cxx
index 0f1b8eb919b8..6733a70b2057 100644
--- a/oox/source/export/ThemeExport.cxx
+++ b/oox/source/export/ThemeExport.cxx
@@ -25,7 +25,7 @@ ThemeExport::ThemeExport(oox::core::XmlFilterBase* pFilterBase)
{
}
-void ThemeExport::write(OUString const& rPath, svx::Theme const& rTheme)
+void ThemeExport::write(OUString const& rPath, model::Theme const& rTheme)
{
sax_fastparser::FSHelperPtr pFS = mpFilterBase->openFragmentStreamWithSerializer(
rPath, "application/vnd.openxmlformats-officedocument.theme+xml");
@@ -43,7 +43,7 @@ void ThemeExport::write(OUString const& rPath, svx::Theme const& rTheme)
writeColorSet(pFS, rTheme);
pFS->endElementNS(XML_a, XML_clrScheme);
- svx::FontScheme const& rFontScheme = rTheme.getFontScheme();
+ model::FontScheme const& rFontScheme = rTheme.getFontScheme();
pFS->startElementNS(XML_a, XML_fontScheme, XML_name, rFontScheme.getName());
writeFontScheme(pFS, rFontScheme);
pFS->endElementNS(XML_a, XML_fontScheme);
@@ -61,7 +61,7 @@ void ThemeExport::write(OUString const& rPath, svx::Theme const& rTheme)
namespace
{
void fillAttrList(rtl::Reference<sax_fastparser::FastAttributeList> const& pAttrList,
- svx::ThemeFont const& rThemeFont)
+ model::ThemeFont const& rThemeFont)
{
pAttrList->add(XML_typeface, rThemeFont.maTypeface);
pAttrList->add(XML_panose, rThemeFont.maPanose);
@@ -72,7 +72,7 @@ void fillAttrList(rtl::Reference<sax_fastparser::FastAttributeList> const& pAttr
} // end anonymous ns
bool ThemeExport::writeFontScheme(sax_fastparser::FSHelperPtr pFS,
- svx::FontScheme const& rFontScheme)
+ model::FontScheme const& rFontScheme)
{
pFS->startElementNS(XML_a, XML_majorFont);
@@ -222,7 +222,7 @@ bool ThemeExport::writeFormatScheme(sax_fastparser::FSHelperPtr pFS)
return true;
}
-bool ThemeExport::writeColorSet(sax_fastparser::FSHelperPtr pFS, svx::Theme const& rTheme)
+bool ThemeExport::writeColorSet(sax_fastparser::FSHelperPtr pFS, model::Theme const& rTheme)
{
static std::unordered_map<sal_Int32, model::ThemeColorType> constTokenMap
= { { XML_dk1, model::ThemeColorType::Dark1 },
diff --git a/sd/source/filter/eppt/epptooxml.hxx b/sd/source/filter/eppt/epptooxml.hxx
index 5ee3248ec81e..48c928d60abb 100644
--- a/sd/source/filter/eppt/epptooxml.hxx
+++ b/sd/source/filter/eppt/epptooxml.hxx
@@ -26,7 +26,7 @@
using ::sax_fastparser::FSHelperPtr;
-namespace svx
+namespace model
{
class Theme;
}
@@ -92,13 +92,13 @@ private:
void ImplWritePPTXLayout( sal_Int32 nOffset, sal_uInt32 nMasterNum );
/// Export the color set part of a theme.
- static bool WriteColorSets(const FSHelperPtr& pFS, svx::Theme* pTheme);
+ static bool WriteColorSets(const FSHelperPtr& pFS, model::Theme* pTheme);
/// Same as WriteColorSets(), but works from a grab-bag.
bool WriteColorSchemes(const FSHelperPtr& pFS, const OUString& rThemePath);
static void WriteDefaultColorSchemes(const FSHelperPtr& pFS);
- void WriteTheme( sal_Int32 nThemeNum, svx::Theme* pTheme );
+ void WriteTheme( sal_Int32 nThemeNum, model::Theme* pTheme );
virtual bool ImplCreateDocument() override;
virtual bool ImplCreateMainNotes() override;
diff --git a/sd/source/filter/eppt/pptx-epptooxml.cxx b/sd/source/filter/eppt/pptx-epptooxml.cxx
index 23eaeba53715..16208f48fb79 100644
--- a/sd/source/filter/eppt/pptx-epptooxml.cxx
+++ b/sd/source/filter/eppt/pptx-epptooxml.cxx
@@ -1508,7 +1508,7 @@ void PowerPointExport::ImplWriteSlideMaster(sal_uInt32 nPageNum, Reference< XPro
"application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml");
SdrPage* pMasterPage = SdPage::getImplementation(mXDrawPage);
- svx::Theme* pTheme = nullptr;
+ model::Theme* pTheme = nullptr;
if (pMasterPage)
{
pTheme = pMasterPage->getSdrPageProperties().GetTheme();
@@ -2153,7 +2153,7 @@ void PowerPointExport::WriteDefaultColorSchemes(const FSHelperPtr& pFS)
}
}
-bool PowerPointExport::WriteColorSets(const FSHelperPtr& pFS, svx::Theme* pTheme)
+bool PowerPointExport::WriteColorSets(const FSHelperPtr& pFS, model::Theme* pTheme)
{
static std::map<PredefinedClrSchemeId, sal_Int32> aPredefinedClrTokens =
{
@@ -2251,7 +2251,7 @@ bool PowerPointExport::WriteColorSchemes(const FSHelperPtr& pFS, const OUString&
return false;
}
-void PowerPointExport::WriteTheme(sal_Int32 nThemeNum, svx::Theme* pTheme)
+void PowerPointExport::WriteTheme(sal_Int32 nThemeNum, model::Theme* pTheme)
{
OUString sThemePath = "ppt/theme/theme" + OUString::number(nThemeNum + 1) + ".xml";
diff --git a/sd/source/ui/docshell/docshell.cxx b/sd/source/ui/docshell/docshell.cxx
index d837092eba68..4237aa8af7af 100644
--- a/sd/source/ui/docshell/docshell.cxx
+++ b/sd/source/ui/docshell/docshell.cxx
@@ -494,7 +494,7 @@ std::vector<Color> DrawDocShell::GetThemeColors()
}
SdPage* pPage = pViewShell->getCurrentPage();
- svx::Theme* pTheme = pPage->getSdrPageProperties().GetTheme();
+ model::Theme* pTheme = pPage->getSdrPageProperties().GetTheme();
if (!pPage->IsMasterPage())
{
pTheme = pPage->TRG_GetMasterPage().getSdrPageProperties().GetTheme();
diff --git a/sd/source/ui/func/fuconstr.cxx b/sd/source/ui/func/fuconstr.cxx
index e7f0bb3a67bb..ea8443d9183b 100644
--- a/sd/source/ui/func/fuconstr.cxx
+++ b/sd/source/ui/func/fuconstr.cxx
@@ -379,7 +379,7 @@ void FuConstruct::SetStyleSheet( SfxItemSet& rAttr, SdrObject* pObj,
pThemePage = &pThemePage->TRG_GetMasterPage();
}
- svx::Theme* pTheme = pThemePage->getSdrPageProperties().GetTheme();
+ model::Theme* pTheme = pThemePage->getSdrPageProperties().GetTheme();
if (pTheme)
{
// We construct an object on a page where the master page has a theme. Take the
diff --git a/sd/source/ui/func/fupage.cxx b/sd/source/ui/func/fupage.cxx
index 098295758b40..edb242ab1a6e 100644
--- a/sd/source/ui/func/fupage.cxx
+++ b/sd/source/ui/func/fupage.cxx
@@ -265,7 +265,7 @@ const SfxItemSet* FuPage::ExecuteDialog(weld::Window* pParent, const SfxRequest&
if (mpDoc->GetDocumentType() == DocumentType::Impress && mpPage->IsMasterPage())
{
// A master slide may have a theme.
- svx::Theme* pTheme = mpPage->getSdrPageProperties().GetTheme();
+ model::Theme* pTheme = mpPage->getSdrPageProperties().GetTheme();
if (pTheme)
{
uno::Any aTheme;
@@ -573,7 +573,7 @@ void FuPage::ApplyItemSet( const SfxItemSet* pArgs )
auto it = pGrabBag->GetGrabBag().find("Theme");
if (it != pGrabBag->GetGrabBag().end())
{
- std::unique_ptr<svx::Theme> pTheme = svx::Theme::FromAny(it->second);
+ std::unique_ptr<model::Theme> pTheme = model::Theme::FromAny(it->second);
pMasterPage->getSdrPageProperties().SetTheme(std::move(pTheme));
}
else
diff --git a/sd/source/ui/unoidl/unomodel.cxx b/sd/source/ui/unoidl/unomodel.cxx
index d68c4cf4a2f8..9b9ed18dbfc6 100644
--- a/sd/source/ui/unoidl/unomodel.cxx
+++ b/sd/source/ui/unoidl/unomodel.cxx
@@ -1281,7 +1281,7 @@ void SAL_CALL SdXImpressDocument::setPropertyValue( const OUString& aPropertyNam
case WID_MODEL_THEME:
{
SdrModel& rModel = getSdrModelFromUnoModel();
- std::unique_ptr<svx::Theme> pTheme = svx::Theme::FromAny(aValue);
+ std::unique_ptr<model::Theme> pTheme = model::Theme::FromAny(aValue);
rModel.SetTheme(std::move(pTheme));
}
break;
@@ -1408,7 +1408,7 @@ uno::Any SAL_CALL SdXImpressDocument::getPropertyValue( const OUString& Property
case WID_MODEL_THEME:
{
SdrModel& rModel = getSdrModelFromUnoModel();
- svx::Theme* pTheme = rModel.GetTheme();
+ model::Theme* pTheme = rModel.GetTheme();
if (pTheme)
{
pTheme->ToAny(aAny);
diff --git a/sd/source/ui/unoidl/unopage.cxx b/sd/source/ui/unoidl/unopage.cxx
index dda5cb3baea0..2dfff467ceb7 100644
--- a/sd/source/ui/unoidl/unopage.cxx
+++ b/sd/source/ui/unoidl/unopage.cxx
@@ -976,7 +976,7 @@ void SAL_CALL SdGenericDrawPage::setPropertyValue( const OUString& aPropertyName
case WID_PAGE_THEME:
{
SdrPage* pPage = GetPage();
- std::unique_ptr<svx::Theme> pTheme = svx::Theme::FromAny(aValue);
+ std::unique_ptr<model::Theme> pTheme = model::Theme::FromAny(aValue);
pPage->getSdrPageProperties().SetTheme(std::move(pTheme));
break;
}
@@ -1298,7 +1298,7 @@ Any SAL_CALL SdGenericDrawPage::getPropertyValue( const OUString& PropertyName )
case WID_PAGE_THEME:
{
SdrPage* pPage = GetPage();
- svx::Theme* pTheme = pPage->getSdrPageProperties().GetTheme();
+ model::Theme* pTheme = pPage->getSdrPageProperties().GetTheme();
if (pTheme)
{
pTheme->ToAny(aAny);
diff --git a/svx/qa/unit/ThemeTest.cxx b/svx/qa/unit/ThemeTest.cxx
index 757561b1bd17..c3aeb93b0217 100644
--- a/svx/qa/unit/ThemeTest.cxx
+++ b/svx/qa/unit/ThemeTest.cxx
@@ -14,7 +14,7 @@
#include <config_features.h>
-#include <svx/ColorSets.hxx>
+#include <docmodel/theme/Theme.hxx>
namespace
{
@@ -24,7 +24,7 @@ class ThemeTest : public CppUnit::TestFixture
CPPUNIT_TEST_FIXTURE(ThemeTest, testPitchFamilyConversion)
{
- svx::ThemeFont aFont;
+ model::ThemeFont aFont;
aFont.maPitch = 2;
aFont.maFamily = 1;
diff --git a/svx/source/dialog/ThemeDialog.cxx b/svx/source/dialog/ThemeDialog.cxx
index ff078650d8e4..842a40203efa 100644
--- a/svx/source/dialog/ThemeDialog.cxx
+++ b/svx/source/dialog/ThemeDialog.cxx
@@ -10,11 +10,12 @@
#include <svx/dialog/ThemeDialog.hxx>
#include <docmodel/theme/ThemeColor.hxx>
#include <docmodel/theme/ColorSet.hxx>
+#include <docmodel/theme/Theme.hxx>
#include <vcl/svapp.hxx>
namespace svx
{
-ThemeDialog::ThemeDialog(weld::Window* pParent, svx::Theme* pTheme,
+ThemeDialog::ThemeDialog(weld::Window* pParent, model::Theme* pTheme,
std::shared_ptr<IThemeColorChanger> const& pChanger)
: GenericDialogController(pParent, "svx/ui/themedialog.ui", "ThemeDialog")
, mpTheme(pTheme)
diff --git a/svx/source/styles/ColorSets.cxx b/svx/source/styles/ColorSets.cxx
index 23adaf3281a1..145babb7d98d 100644
--- a/svx/source/styles/ColorSets.cxx
+++ b/svx/source/styles/ColorSets.cxx
@@ -11,18 +11,7 @@
#include <svx/ColorSets.hxx>
#include <utility>
-
-#include <libxml/xmlwriter.h>
-#include <comphelper/sequenceashashmap.hxx>
-#include <comphelper/sequence.hxx>
-#include <sal/log.hxx>
-#include <svx/svdpage.hxx>
-#include <svx/svditer.hxx>
-#include <editeng/unoprnms.hxx>
-#include <docmodel/uno/UnoThemeColor.hxx>
#include <docmodel/theme/ColorSet.hxx>
-#include <o3tl/enumrange.hxx>
-#include <com/sun/star/util/Color.hpp>
using namespace com::sun::star;
@@ -166,131 +155,6 @@ void ColorSets::insert(model::ColorSet const& rColorSet)
maColorSets.push_back(rColorSet);
}
-Theme::Theme(OUString const& rName)
- : maName(rName)
-{
-}
-
-void Theme::SetColorSet(std::unique_ptr<model::ColorSet> pColorSet) { mpColorSet = std::move(pColorSet); }
-
-const model::ColorSet* Theme::GetColorSet() const { return mpColorSet.get(); }
-
-model::ColorSet* Theme::GetColorSet() { return mpColorSet.get(); }
-
-void Theme::SetName(const OUString& rName) { maName = rName; }
-
-const OUString& Theme::GetName() const { return maName; }
-
-void Theme::dumpAsXml(xmlTextWriterPtr pWriter) const
-{
- (void)xmlTextWriterStartElement(pWriter, BAD_CAST("Theme"));
- (void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST("ptr"), "%p", this);
- (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST("maName"),
- BAD_CAST(maName.toUtf8().getStr()));
-
- if (mpColorSet)
- {
- mpColorSet->dumpAsXml(pWriter);
- }
-
- (void)xmlTextWriterEndElement(pWriter);
-}
-
-void Theme::ToAny(css::uno::Any& rVal) const
-{
- comphelper::SequenceAsHashMap aMap;
- aMap["Name"] <<= maName;
-
- if (mpColorSet)
- {
- std::vector<util::Color> aColorScheme;
- for (auto eThemeColorType : o3tl::enumrange<model::ThemeColorType>())
- {
- if (eThemeColorType != model::ThemeColorType::Unknown)
- {
- Color aColor = mpColorSet->getColor(eThemeColorType);
- aColorScheme.push_back(sal_Int32(aColor));
- }
- }
-
- aMap["ColorSchemeName"] <<= mpColorSet->getName();
- aMap["ColorScheme"] <<= comphelper::containerToSequence(aColorScheme);
- }
-
- rVal <<= aMap.getAsConstPropertyValueList();
-}
-
-std::unique_ptr<Theme> Theme::FromAny(const css::uno::Any& rVal)
-{
- comphelper::SequenceAsHashMap aMap(rVal);
- std::unique_ptr<Theme> pTheme;
- model::ColorSet* pColorSet = nullptr;
-
- auto it = aMap.find("Name");
- if (it != aMap.end())
- {
- OUString aName;
- it->second >>= aName;
- pTheme = std::make_unique<Theme>(aName);
- }
-
- it = aMap.find("ColorSchemeName");
- if (it != aMap.end() && pTheme)
- {
- OUString aName;
- it->second >>= aName;
- auto pSet = std::make_unique<model::ColorSet>(aName);
- pTheme->SetColorSet(std::move(pSet));
- pColorSet = pTheme->GetColorSet();
- }
-
- it = aMap.find("ColorScheme");
- if (it != aMap.end() && pColorSet)
- {
- uno::Sequence<util::Color> aColors;
- it->second >>= aColors;
-
- SAL_WARN_IF(aColors.size() > 12, "svx", "Theme::FromAny: number of colors greater than max theme colors supported");
-
- for (auto eThemeColorType : o3tl::enumrange<model::ThemeColorType>())
- {
- if (eThemeColorType != model::ThemeColorType::Unknown)
- {
- size_t nIndex(static_cast<sal_Int16>(eThemeColorType));
- if (nIndex < aColors.size())
- {
- Color aColor(ColorTransparency, aColors[nIndex]);
- pColorSet->add(eThemeColorType, aColor);
- }
- }
- }
- }
-
- return pTheme;
-}
-
-std::vector<Color> Theme::GetColors() const
-{
- if (!mpColorSet)
- return {};
-
- std::vector<Color> aColors;
- for (auto eThemeColorType : o3tl::enumrange<model::ThemeColorType>())
- {
- if (eThemeColorType != model::ThemeColorType::Unknown)
- aColors.push_back(mpColorSet->getColor(eThemeColorType));
- }
- return aColors;
-}
-
-Color Theme::GetColor(model::ThemeColorType eType) const
-{
- if (!mpColorSet)
- return {};
-
- return mpColorSet->getColor(eType);
-}
-
} // end of namespace svx
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/svdraw/svdmodel.cxx b/svx/source/svdraw/svdmodel.cxx
index bc86671c9437..28ec1e556f23 100644
--- a/svx/source/svdraw/svdmodel.cxx
+++ b/svx/source/svdraw/svdmodel.cxx
@@ -71,7 +71,7 @@
#include <o3tl/enumrange.hxx>
#include <comphelper/diagnose_ex.hxx>
#include <tools/UnitConversion.hxx>
-#include <svx/ColorSets.hxx>
+#include <docmodel/theme/Theme.hxx>
#include <svx/svditer.hxx>
#include <svx/svdoashp.hxx>
@@ -84,7 +84,7 @@ struct SdrModelImpl
SdrUndoFactory* mpUndoFactory;
bool mbAnchoredTextOverflowLegacy; // tdf#99729 compatibility flag
bool mbLegacySingleLineFontwork; // tdf#148000 compatibility flag
- std::unique_ptr<svx::Theme> mpTheme;
+ std::unique_ptr<model::Theme> mpTheme;
SdrModelImpl()
: mpUndoManager(nullptr)
@@ -1570,9 +1570,9 @@ void SdrModel::SetStarDrawPreviewMode(bool bPreview)
}
}
-void SdrModel::SetTheme(std::unique_ptr<svx::Theme> pTheme) { mpImpl->mpTheme = std::move(pTheme); }
+void SdrModel::SetTheme(std::unique_ptr<model::Theme> pTheme) { mpImpl->mpTheme = std::move(pTheme); }
-svx::Theme* SdrModel::GetTheme() { return mpImpl->mpTheme.get(); }
+model::Theme* SdrModel::GetTheme() { return mpImpl->mpTheme.get(); }
uno::Reference< uno::XInterface > const & SdrModel::getUnoModel()
{
diff --git a/svx/source/svdraw/svdpage.cxx b/svx/source/svdraw/svdpage.cxx
index 7ec883e397c5..cb2fb64e7e80 100644
--- a/svx/source/svdraw/svdpage.cxx
+++ b/svx/source/svdraw/svdpage.cxx
@@ -1288,7 +1288,7 @@ void SdrPageProperties::SetStyleSheet(SfxStyleSheet* pStyleSheet)
ImpPageChange(*mpSdrPage);
}
-void SdrPageProperties::SetTheme(std::unique_ptr<svx::Theme> pTheme)
+void SdrPageProperties::SetTheme(std::unique_ptr<model::Theme> pTheme)
{
mpTheme = std::move(pTheme);
@@ -1310,7 +1310,7 @@ void SdrPageProperties::SetTheme(std::unique_ptr<svx::Theme> pTheme)
}
}
-svx::Theme* SdrPageProperties::GetTheme() { return mpTheme.get(); }
+model::Theme* SdrPageProperties::GetTheme() { return mpTheme.get(); }
void SdrPageProperties::dumpAsXml(xmlTextWriterPtr pWriter) const
{
diff --git a/sw/qa/core/theme/ThemeTest.cxx b/sw/qa/core/theme/ThemeTest.cxx
index 412482e3f471..8f12e8bdacbd 100644
--- a/sw/qa/core/theme/ThemeTest.cxx
+++ b/sw/qa/core/theme/ThemeTest.cxx
@@ -49,7 +49,7 @@ CPPUNIT_TEST_FIXTURE(SwCoreThemeTest, testDrawPageThemeExists)
CPPUNIT_ASSERT(pDoc);
SdrPage* pPage = pDoc->getIDocumentDrawModelAccess().GetDrawModel()->GetPage(0);
- svx::Theme* pTheme = pPage->getSdrPageProperties().GetTheme();
+ model::Theme* pTheme = pPage->getSdrPageProperties().GetTheme();
CPPUNIT_ASSERT(pTheme);
CPPUNIT_ASSERT_EQUAL(OUString(u"Office Theme"), pTheme->GetName());
@@ -68,7 +68,7 @@ CPPUNIT_TEST_FIXTURE(SwCoreThemeTest, testDrawPageThemeExists)
CPPUNIT_ASSERT_EQUAL(Color(0xFFFFFF), pTheme->GetColor(model::ThemeColorType::Light1));
CPPUNIT_ASSERT_EQUAL(Color(0xCCDDEA), pTheme->GetColor(model::ThemeColorType::Light2));
- svx::FontScheme const& rFontScheme = pTheme->getFontScheme();
+ model::FontScheme const& rFontScheme = pTheme->getFontScheme();
CPPUNIT_ASSERT_EQUAL(OUString(u"Calibri Light"), rFontScheme.getMajorLatin().maTypeface);
CPPUNIT_ASSERT_EQUAL(OUString(u"Calibri"), rFontScheme.getMinorLatin().maTypeface);
CPPUNIT_ASSERT_EQUAL(true, rFontScheme.getMajorAsian().maTypeface.isEmpty());
diff --git a/sw/source/core/model/ThemeColorChanger.cxx b/sw/source/core/model/ThemeColorChanger.cxx
index 715c02e68b63..589ca7e8cc17 100644
--- a/sw/source/core/model/ThemeColorChanger.cxx
+++ b/sw/source/core/model/ThemeColorChanger.cxx
@@ -151,14 +151,14 @@ void ThemeColorChanger::apply(model::ColorSet const& rColorSet)
pDocument->GetIDocumentUndoRedo().StartUndo(SwUndoId::EMPTY, nullptr);
SdrPage* pPage = pDocument->getIDocumentDrawModelAccess().GetDrawModel()->GetPage(0);
- svx::Theme* pTheme = pPage->getSdrPageProperties().GetTheme();
+ model::Theme* pTheme = pPage->getSdrPageProperties().GetTheme();
if (pTheme)
{
pTheme->SetColorSet(std::make_unique<model::ColorSet>(rColorSet));
}
else
{
- pPage->getSdrPageProperties().SetTheme(std::make_unique<svx::Theme>("Office"));
+ pPage->getSdrPageProperties().SetTheme(std::make_unique<model::Theme>("Office"));
pTheme = pPage->getSdrPageProperties().GetTheme();
pTheme->SetColorSet(std::make_unique<model::ColorSet>(rColorSet));
}
diff --git a/sw/source/filter/xml/xmlfmte.cxx b/sw/source/filter/xml/xmlfmte.cxx
index f3c4ca04ddfd..4392158ebccd 100644
--- a/sw/source/filter/xml/xmlfmte.cxx
+++ b/sw/source/filter/xml/xmlfmte.cxx
@@ -43,10 +43,10 @@
#include <sax/tools/converter.hxx>
#include <o3tl/enumrange.hxx>
-#include <svx/ColorSets.hxx>
#include <svx/unoapi.hxx>
#include <svx/svdpage.hxx>
#include <docmodel/theme/ThemeColor.hxx>
+#include <docmodel/theme/Theme.hxx>
using namespace ::com::sun::star::beans;
diff --git a/sw/source/uibase/app/docst.cxx b/sw/source/uibase/app/docst.cxx
index e3cc7b0f6b6e..b11599e576d5 100644
--- a/sw/source/uibase/app/docst.cxx
+++ b/sw/source/uibase/app/docst.cxx
@@ -81,7 +81,7 @@
#include <SwUndoFmt.hxx>
#include <strings.hrc>
#include <AccessibilityCheck.hxx>
-#include <svx/ColorSets.hxx>
+#include <docmodel/theme/Theme.hxx>
#include <svx/svdpage.hxx>
using namespace ::com::sun::star;
@@ -1582,7 +1582,7 @@ std::vector<Color> SwDocShell::GetThemeColors()
SdrPage* pPage = m_xDoc->getIDocumentDrawModelAccess().GetDrawModel()->GetPage(0);
if (!pPage)
return {};
- svx::Theme* pTheme = pPage->getSdrPageProperties().GetTheme();
+ model::Theme* pTheme = pPage->getSdrPageProperties().GetTheme();
if (!pTheme)
return {};
return pTheme->GetColors();
diff --git a/sw/source/uibase/shells/basesh.cxx b/sw/source/uibase/shells/basesh.cxx
index eb071c1d4bfb..3fb250b658eb 100644
--- a/sw/source/uibase/shells/basesh.cxx
+++ b/sw/source/uibase/shells/basesh.cxx
@@ -2217,7 +2217,7 @@ void SwBaseShell::GetState( SfxItemSet &rSet )
SdrPage* pPage = pDocument->getIDocumentDrawModelAccess().GetDrawModel()->GetPage(0);
if (pPage)
{
- svx::Theme* pTheme = pPage->getSdrPageProperties().GetTheme();
+ model::Theme* pTheme = pPage->getSdrPageProperties().GetTheme();
if (pTheme)
bDisable = false;
}
@@ -3058,7 +3058,7 @@ void SwBaseShell::ExecDlg(SfxRequest &rReq)
if (pDocumentShell)
{
SdrPage* pPage = pDocument->getIDocumentDrawModelAccess().GetDrawModel()->GetPage(0);
- svx::Theme* pTheme = pPage->getSdrPageProperties().GetTheme();
+ model::Theme* pTheme = pPage->getSdrPageProperties().GetTheme();
if (pTheme)
{
std::shared_ptr<svx::IThemeColorChanger> pChanger(new sw::ThemeColorChanger(pDocumentShell));
diff --git a/sw/source/uibase/sidebar/ThemePanel.cxx b/sw/source/uibase/sidebar/ThemePanel.cxx
index d2c225c171c3..6a2647ebbbee 100644
--- a/sw/source/uibase/sidebar/ThemePanel.cxx
+++ b/sw/source/uibase/sidebar/ThemePanel.cxx
@@ -18,8 +18,8 @@
#include <ThemeColorChanger.hxx>
#include <vcl/settings.hxx>
#include <vcl/svapp.hxx>
+#include <docmodel/theme/Theme.hxx>
#include <svx/svdpage.hxx>
-#include <svx/ColorSets.hxx>
#include <svx/dialog/ThemeColorValueSet.hxx>
#include <com/sun/star/lang/IllegalArgumentException.hpp>
@@ -54,7 +54,7 @@ ThemePanel::ThemePanel(weld::Widget* pParent)
if (pDocument)
{
SdrPage* pPage = pDocument->getIDocumentDrawModelAccess().GetDrawModel()->GetPage(0);
- svx::Theme* pTheme = pPage->getSdrPageProperties().GetTheme();
+ model::Theme* pTheme = pPage->getSdrPageProperties().GetTheme();
if (pTheme)
maColorSets.insert(*pTheme->GetColorSet());
}
diff --git a/writerfilter/source/dmapper/ThemeHandler.cxx b/writerfilter/source/dmapper/ThemeHandler.cxx
index 3a7260d89047..fef0cabe1d29 100644
--- a/writerfilter/source/dmapper/ThemeHandler.cxx
+++ b/writerfilter/source/dmapper/ThemeHandler.cxx
@@ -10,7 +10,7 @@
#include "ThemeHandler.hxx"
#include <i18nlangtag/languagetag.hxx>
#include <ooxml/resourceids.hxx>
-#include <svx/ColorSets.hxx>
+#include <docmodel/theme/Theme.hxx>
using namespace com::sun::star;
@@ -320,7 +320,7 @@ OUString fromLocaleToScriptTag(const OUString& sLocale)
return fromLCIDToScriptTag(LanguageTag::convertToLanguageType(sLocale));
}
-OUString resolveMajorMinorTypeFace(svx::FontScheme const& rFontSheme, const Id id)
+OUString resolveMajorMinorTypeFace(model::FontScheme const& rFontSheme, const Id id)
{
switch (id)
{
@@ -346,7 +346,7 @@ OUString resolveMajorMinorTypeFace(svx::FontScheme const& rFontSheme, const Id i
return OUString();
}
-OUString resolveSupplementalFontList(svx::FontScheme const& rFontSheme, const Id id,
+OUString resolveSupplementalFontList(model::FontScheme const& rFontSheme, const Id id,
std::u16string_view rLangAsia, std::u16string_view rLangBidi)
{
switch (id)
@@ -409,7 +409,7 @@ OUString ThemeHandler::getStringForTheme(const Id id)
OUString ThemeHandler::getFontNameForTheme(const Id id) const
{
auto pSvxTheme = mpTheme->createSvxTheme();
- svx::FontScheme const& rFontScheme = pSvxTheme->getFontScheme();
+ model::FontScheme const& rFontScheme = pSvxTheme->getFontScheme();
OUString aSupplementalTypeFace = resolveSupplementalFontList(
rFontScheme, id, maThemeFontLangEastAsia, maThemeFontLangBidi);
if (!aSupplementalTypeFace.isEmpty())
diff --git a/xmloff/source/draw/sdxmlexp.cxx b/xmloff/source/draw/sdxmlexp.cxx
index 7c336989496b..df0c7e45aa27 100644
--- a/xmloff/source/draw/sdxmlexp.cxx
+++ b/xmloff/source/draw/sdxmlexp.cxx
@@ -2428,7 +2428,7 @@ void SdXMLExport::ExportThemeElement(const uno::Reference<drawing::XDrawPage>& x
};
for (size_t nColor = 0; nColor < aColors.size(); ++nColor)
{
- // Import goes via svx::Theme::FromAny(), which sanitizes user input.
+ // Import goes via model::Theme::FromAny(), which sanitizes user input.
assert(nColor < SAL_N_ELEMENTS(aColorTokens));
AddAttribute(XML_NAMESPACE_LO_EXT, XML_NAME, GetXMLToken(aColorTokens[nColor]));