LibreOffice Module writerfilter (master) 1
OOXMLFastContextHandlerTheme.cxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 */
9
10#include <sal/log.hxx>
13#include <oox/token/namespaces.hxx>
14
15using namespace ::com::sun::star;
16
17namespace writerfilter::ooxml
18{
20 : OOXMLFastContextHandler(pContext)
21{
22}
23
27{
29 return mpThemeFragmentHandler->createFastChildContext(Element, Attribs);
30
31 return this;
32}
33
36{
37 if (!mpThemeFragmentHandler.is())
38 {
39 auto xThemeFilterBase = getDocument()->getThemeFilterBase();
40 OUString aThemeFragmentPath
41 = xThemeFilterBase->getFragmentPathFromFirstTypeFromOfficeDoc(u"theme");
42 auto pThemePtr = getDocument()->getTheme();
43 if (!pThemePtr)
44 {
45 pThemePtr = std::make_shared<oox::drawingml::Theme>();
46 auto pTheme = std::make_shared<model::Theme>();
47 pThemePtr->setTheme(pTheme);
48 getDocument()->setTheme(pThemePtr);
49 }
51 *xThemeFilterBase, aThemeFragmentPath, *pThemePtr, *pThemePtr->getTheme());
52 }
53
55 mpThemeFragmentHandler->startFastElement(Element, Attribs);
56}
57
59{
61 mpThemeFragmentHandler->endFastElement(Element);
62}
63
65{
67 mpThemeFragmentHandler->characters(aChars);
68}
69}
70
71/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
void setTheme(const oox::drawingml::ThemePtr &pTheme)
virtual const oox::drawingml::ThemePtr & getTheme() const override
const rtl::Reference< oox::drawingml::ThemeFilterBase > & getThemeFilterBase()
virtual void lcl_characters(const OUString &aChars) override
css::uno::Reference< css::xml::sax::XFastContextHandler > lcl_createFastChildContext(Token_t Element, const css::uno::Reference< css::xml::sax::XFastAttributeList > &Attribs) override
void lcl_startFastElement(Token_t Element, const css::uno::Reference< css::xml::sax::XFastAttributeList > &Attribs) override
rtl::Reference< oox::drawingml::ThemeFragmentHandler > mpThemeFragmentHandler
float u
sal_Int32 Token_t