summaryrefslogtreecommitdiffstats
path: root/docmodel/source/uno/UnoTheme.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'docmodel/source/uno/UnoTheme.cxx')
-rw-r--r--docmodel/source/uno/UnoTheme.cxx51
1 files changed, 51 insertions, 0 deletions
diff --git a/docmodel/source/uno/UnoTheme.cxx b/docmodel/source/uno/UnoTheme.cxx
new file mode 100644
index 0000000000..a7eac05cbd
--- /dev/null
+++ b/docmodel/source/uno/UnoTheme.cxx
@@ -0,0 +1,51 @@
+/* -*- 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/uno/UnoTheme.hxx>
+#include <docmodel/theme/ThemeColorType.hxx>
+#include <cppuhelper/queryinterface.hxx>
+#include <o3tl/enumrange.hxx>
+#include <comphelper/sequence.hxx>
+#include <docmodel/theme/Theme.hxx>
+
+using namespace css;
+
+OUString UnoTheme::getName() { return mpTheme->GetName(); }
+
+css::uno::Sequence<sal_Int32> UnoTheme::getColorSet()
+{
+ std::vector<sal_Int32> aColorScheme(12);
+ auto pColorSet = mpTheme->getColorSet();
+ if (pColorSet)
+ {
+ size_t i = 0;
+
+ for (auto eThemeColorType : o3tl::enumrange<model::ThemeColorType>())
+ {
+ if (eThemeColorType == model::ThemeColorType::Unknown)
+ continue;
+ Color aColor = pColorSet->getColor(eThemeColorType);
+ aColorScheme[i] = sal_Int32(aColor);
+ i++;
+ }
+ }
+ return comphelper::containerToSequence(aColorScheme);
+}
+
+namespace model::theme
+{
+uno::Reference<util::XTheme> createXTheme(std::shared_ptr<model::Theme> const& pTheme)
+{
+ return new UnoTheme(pTheme);
+}
+
+} // end model::theme
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */