1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
19 #ifndef INCLUDED_SC_SOURCE_FILTER_XML_XMLANNOI_HXX
20 #define INCLUDED_SC_SOURCE_FILTER_XML_XMLANNOI_HXX
22 #include <xmloff/xmlictxt.hxx>
23 #include <xmloff/xmlimp.hxx>
24 #include <rtl/ustrbuf.hxx>
25 #include <editeng/editdata.hxx>
26 #include <com/sun/star/drawing/XShape.hpp>
27 #include <com/sun/star/drawing/XShapes.hpp>
28 #include "xmlimprt.hxx"
30 class ScXMLTableRowCellContext
;
32 struct ScXMLAnnotationStyleEntry
36 ESelection maSelection
;
38 ScXMLAnnotationStyleEntry( sal_uInt16 nFam
, const OUString
& rNam
, const ESelection
& rSel
) :
46 struct ScXMLAnnotationData
48 ::com::sun::star::uno::Reference
< ::com::sun::star::drawing::XShape
>
50 ::com::sun::star::uno::Reference
< ::com::sun::star::drawing::XShapes
>
53 OUString maCreateDate
;
54 OUString maSimpleText
;
59 std::vector
<ScXMLAnnotationStyleEntry
> maContentStyles
;
61 explicit ScXMLAnnotationData();
62 ~ScXMLAnnotationData();
65 class ScXMLAnnotationContext
: public SvXMLImportContext
69 ScXMLAnnotationContext( ScXMLImport
& rImport
, sal_uInt16 nPrfx
,
70 const OUString
& rLName
,
71 const ::com::sun::star::uno::Reference
<
72 ::com::sun::star::xml::sax::XAttributeList
>& xAttrList
,
73 ScXMLAnnotationData
& rAnnotationData
,
74 ScXMLTableRowCellContext
* pCellContext
);
76 virtual ~ScXMLAnnotationContext();
78 virtual SvXMLImportContext
*CreateChildContext( sal_uInt16 nPrefix
,
79 const OUString
& rLocalName
,
80 const ::com::sun::star::uno::Reference
<
81 ::com::sun::star::xml::sax::XAttributeList
>& xAttrList
) SAL_OVERRIDE
;
83 virtual void StartElement(const com::sun::star::uno::Reference
< com::sun::star::xml::sax::XAttributeList
>& xAttrList
) SAL_OVERRIDE
;
85 virtual void Characters( const OUString
& rChars
) SAL_OVERRIDE
;
87 virtual void EndElement() SAL_OVERRIDE
;
90 const ::com::sun::star::uno::Reference
< ::com::sun::star::drawing::XShape
>& rxShape
,
91 const ::com::sun::star::uno::Reference
< ::com::sun::star::drawing::XShapes
>& rxShapes
,
92 const OUString
& rStyleName
, const OUString
& rTextStyle
);
94 void AddContentStyle( sal_uInt16 nFamily
, const OUString
& rName
, const ESelection
& rSelection
);
97 ScXMLAnnotationData
& mrAnnotationData
;
98 OUStringBuffer maTextBuffer
;
99 OUStringBuffer maAuthorBuffer
;
100 OUStringBuffer maCreateDateBuffer
;
101 OUStringBuffer maCreateDateStringBuffer
;
102 ScXMLTableRowCellContext
* pCellContext
;
103 SvXMLImportContext
* pShapeContext
;
105 const ScXMLImport
& GetScImport() const { return static_cast<const ScXMLImport
&>(GetImport()); }
106 ScXMLImport
& GetScImport() { return static_cast<ScXMLImport
&>(GetImport()); }
111 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */