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 * This file incorporates work covered by the following license notice: 10 * 11 * Licensed to the Apache Software Foundation (ASF) under one or more 12 * contributor license agreements. See the NOTICE file distributed 13 * with this work for additional information regarding copyright 14 * ownership. The ASF licenses this file to you under the Apache 15 * License, Version 2.0 (the "License"); you may not use this file 16 * except in compliance with the License. You may obtain a copy of 17 * the License at http://www.apache.org/licenses/LICENSE-2.0 . 18 */ 19 #ifndef INCLUDED_XMLOFF_STYLEEXP_HXX 20 #define INCLUDED_XMLOFF_STYLEEXP_HXX 21 22 #include <sal/config.h> 23 #include <xmloff/dllapi.h> 24 #include <rtl/ustring.hxx> 25 26 #include <salhelper/simplereferenceobject.hxx> 27 28 namespace com::sun::star::uno { template <class interface_type> class Reference; } 29 namespace rtl { template <class reference_type> class Reference; } 30 31 namespace com::sun::star 32 { 33 namespace style 34 { 35 class XStyle; 36 } 37 namespace beans 38 { 39 class XPropertySet; 40 } 41 namespace container 42 { 43 class XNameAccess; 44 } 45 46 } 47 48 class SvXMLExportPropertyMapper; 49 class SvXMLAutoStylePoolP; 50 class SvXMLExport; 51 enum class XmlStyleFamily; 52 53 class XMLOFF_DLLPUBLIC XMLStyleExport : public salhelper::SimpleReferenceObject 54 { 55 SvXMLExport& rExport; 56 SvXMLAutoStylePoolP *pAutoStylePool; 57 58 protected: GetExport()59 SvXMLExport& GetExport() { return rExport; } GetExport() const60 const SvXMLExport& GetExport() const { return rExport; } 61 62 bool exportStyle( 63 const css::uno::Reference< css::style::XStyle > & rStyle, 64 const OUString& rXMLFamily, 65 const rtl::Reference < SvXMLExportPropertyMapper >& rPropMapper, 66 const css::uno::Reference< css::container::XNameAccess > & xStyles, 67 const OUString* pPrefix ); 68 69 virtual void exportStyleAttributes( 70 const css::uno::Reference< css::style::XStyle > & rStyle ); 71 72 virtual void exportStyleContent( 73 const css::uno::Reference< css::style::XStyle > & rStyle ); 74 public: 75 XMLStyleExport( 76 SvXMLExport& rExp, 77 SvXMLAutoStylePoolP *pAutoStyleP=nullptr ); 78 virtual ~XMLStyleExport() override; 79 80 // void exportStyleFamily( 81 // const OUString& rFamily, const OUString& rXMLFamily, 82 // const rtl::Reference < XMLPropertySetMapper >& rPropMapper, 83 // bool bUsed, sal_uInt16 nFamily = 0, 84 // const OUString* pPrefix = 0); 85 86 // void exportStyleFamily( 87 // const char *pFamily, const OUString& rXMLFamily, 88 // const rtl::Reference < XMLPropertySetMapper >& rPropMapper, 89 // bool bUsed, sal_uInt16 nFamily = 0, 90 // const OUString* pPrefix = 0); 91 92 void exportDefaultStyle( 93 const css::uno::Reference< css::beans::XPropertySet > & xPropSet, 94 const OUString& rXMLFamily, 95 const rtl::Reference < SvXMLExportPropertyMapper >& rPropMapper ); 96 97 void exportStyleFamily( 98 const OUString& rFamily, const OUString& rXMLFamily, 99 const rtl::Reference < SvXMLExportPropertyMapper >& rPropMapper, 100 bool bUsed, XmlStyleFamily nFamily, 101 const OUString* pPrefix = nullptr); 102 103 void exportStyleFamily( 104 const char *pFamily, const OUString& rXMLFamily, 105 const rtl::Reference < SvXMLExportPropertyMapper >& rPropMapper, 106 bool bUsed, XmlStyleFamily nFamily, 107 const OUString* pPrefix = nullptr); 108 }; 109 110 #endif 111 112 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ 113