static std::shared_ptr<model::ColorSet> makeColorSet(const OUString& name, const uno::Sequence<util::Color>& colors)
{ auto colorset = std::make_shared<model::ColorSet>(name); for (auto eThemeColorType : o3tl::enumrange<model::ThemeColorType>())
{ const size_t nIndex(o3tl::to_underlying(eThemeColorType)); if (nIndex >= colors.size()) break; const Color aColor(ColorTransparency, colors[nIndex]);
colorset->add(eThemeColorType, aColor);
} return colorset;
}
std::shared_ptr<Theme> Theme::FromAny(const uno::Any& rVal)
{ if (css::uno::Reference<css::util::XTheme> xTheme; rVal >>= xTheme)
{ if (!xTheme) return {};
if (auto* pUnoTheme = dynamic_cast<UnoTheme*>(xTheme.get())) return pUnoTheme->getTheme();
auto pTheme = std::make_shared<Theme>(xTheme->getName()); if (auto aColors = xTheme->getColorSet(); aColors.hasElements())
pTheme->setColorSet(makeColorSet(xTheme->getName(), aColors)); // Reuse theme name return pTheme;
}
comphelper::SequenceAsHashMap aMap(rVal);
OUString aThemeName; if (auto it = aMap.find(u"Name"_ustr); it != aMap.end())
it->second >>= aThemeName; else return {}; auto pTheme = std::make_shared<Theme>(aThemeName);
if (auto it = aMap.find(u"ColorSchemeName"_ustr); it != aMap.end())
{
OUString aColorSchemeName;
it->second >>= aColorSchemeName;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.