xref: /trunk/main/xmloff/source/draw/ximpshap.hxx (revision 914d351e5f5b84e4342a86d6ab8d4aca7308b9bd)
1ecfe53c5SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3ecfe53c5SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4ecfe53c5SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5ecfe53c5SAndrew Rist  * distributed with this work for additional information
6ecfe53c5SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7ecfe53c5SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8ecfe53c5SAndrew Rist  * "License"); you may not use this file except in compliance
9ecfe53c5SAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11ecfe53c5SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13ecfe53c5SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14ecfe53c5SAndrew Rist  * software distributed under the License is distributed on an
15ecfe53c5SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16ecfe53c5SAndrew Rist  * KIND, either express or implied.  See the License for the
17ecfe53c5SAndrew Rist  * specific language governing permissions and limitations
18ecfe53c5SAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20ecfe53c5SAndrew Rist  *************************************************************/
21ecfe53c5SAndrew Rist 
22cdf0e10cSrcweir #ifndef _XIMPSHAPE_HXX
23cdf0e10cSrcweir #define _XIMPSHAPE_HXX
24cdf0e10cSrcweir 
25cdf0e10cSrcweir #include <com/sun/star/io/XOutputStream.hpp>
26cdf0e10cSrcweir #include <com/sun/star/document/XActionLockable.hpp>
27cdf0e10cSrcweir #include <com/sun/star/container/XIdentifierContainer.hpp>
28cdf0e10cSrcweir #include <xmloff/xmlictxt.hxx>
29cdf0e10cSrcweir #include "sdxmlimp_impl.hxx"
30cdf0e10cSrcweir #include <xmloff/nmspmap.hxx>
31cdf0e10cSrcweir #include <com/sun/star/drawing/XShapes.hpp>
32cdf0e10cSrcweir #include <com/sun/star/text/XTextCursor.hpp>
33cdf0e10cSrcweir #include <com/sun/star/awt/Point.hpp>
34cdf0e10cSrcweir #include <tools/rtti.hxx>
35cdf0e10cSrcweir #include "xexptran.hxx"
36cdf0e10cSrcweir #include <vector>
37cdf0e10cSrcweir #include <xmloff/shapeimport.hxx>
38ddde725dSArmin Le Grand #include <xmloff/xmlmultiimagehelper.hxx>
396381da86SArmin Le Grand #include <basegfx/matrix/b2dhommatrix.hxx>
40cdf0e10cSrcweir 
41cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
42cdf0e10cSrcweir // common shape context
43cdf0e10cSrcweir 
44cdf0e10cSrcweir class SdXMLShapeContext : public SvXMLShapeContext
45cdf0e10cSrcweir {
46cdf0e10cSrcweir protected:
47cdf0e10cSrcweir     // the shape group this object should be created inside
48cdf0e10cSrcweir     com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >  mxShapes;
49cdf0e10cSrcweir     com::sun::star::uno::Reference< com::sun::star::text::XTextCursor > mxCursor;
50cdf0e10cSrcweir     com::sun::star::uno::Reference< com::sun::star::text::XTextCursor > mxOldCursor;
51cdf0e10cSrcweir     com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList> mxAttrList;
52cdf0e10cSrcweir     com::sun::star::uno::Reference< com::sun::star::container::XIdentifierContainer > mxGluePoints;
53cdf0e10cSrcweir     com::sun::star::uno::Reference< com::sun::star::document::XActionLockable > mxLockable;
54cdf0e10cSrcweir 
55cdf0e10cSrcweir     rtl::OUString               maDrawStyleName;
56cdf0e10cSrcweir     rtl::OUString               maTextStyleName;
57cdf0e10cSrcweir     rtl::OUString               maPresentationClass;
58cdf0e10cSrcweir     rtl::OUString               maShapeName;
59cdf0e10cSrcweir     rtl::OUString               maThumbnailURL;
60cdf0e10cSrcweir 
61cdf0e10cSrcweir     /// whether to restore list context (#91964#)
62cdf0e10cSrcweir     bool                        mbListContextPushed;
63cdf0e10cSrcweir 
64cdf0e10cSrcweir     sal_uInt16                  mnStyleFamily;
65cdf0e10cSrcweir     sal_uInt16                  mnClass;
66cdf0e10cSrcweir     sal_Bool                    mbIsPlaceholder;
67cdf0e10cSrcweir     bool                        mbClearDefaultAttributes;
68cdf0e10cSrcweir     sal_Bool                    mbIsUserTransformed;
69cdf0e10cSrcweir     sal_Int32                   mnZOrder;
70cdf0e10cSrcweir     rtl::OUString               maShapeId;
71cdf0e10cSrcweir     rtl::OUString               maLayerName;
72cdf0e10cSrcweir 
73cdf0e10cSrcweir     // #i68101#
74cdf0e10cSrcweir     rtl::OUString               maShapeTitle;
75cdf0e10cSrcweir     rtl::OUString               maShapeDescription;
76cdf0e10cSrcweir 
77cdf0e10cSrcweir     SdXMLImExTransform2D        mnTransform;
78cdf0e10cSrcweir     com::sun::star::awt::Size   maSize;
79cdf0e10cSrcweir     com::sun::star::awt::Point  maPosition;
806381da86SArmin Le Grand     basegfx::B2DHomMatrix       maUsedTransformation;
81cdf0e10cSrcweir 
82cdf0e10cSrcweir     bool                        mbVisible;
83cdf0e10cSrcweir     bool                        mbPrintable;
84cdf0e10cSrcweir 
85cdf0e10cSrcweir     /** if bSupportsStyle is false, auto styles will be set but not a style */
86cdf0e10cSrcweir     void SetStyle( bool bSupportsStyle = true );
87cdf0e10cSrcweir     void SetLayer();
88cdf0e10cSrcweir     void SetThumbnail();
89cdf0e10cSrcweir 
90cdf0e10cSrcweir     void AddShape(com::sun::star::uno::Reference< com::sun::star::drawing::XShape >& xShape);
91cdf0e10cSrcweir     void AddShape(const char* pServiceName );
92cdf0e10cSrcweir     void SetTransformation();
93cdf0e10cSrcweir 
GetImport()94cdf0e10cSrcweir     SvXMLImport& GetImport() { return SvXMLImportContext::GetImport(); }
GetImport() const95cdf0e10cSrcweir     const SvXMLImport& GetImport() const { return SvXMLImportContext::GetImport(); }
96cdf0e10cSrcweir 
97cdf0e10cSrcweir     void addGluePoint( const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList );
98cdf0e10cSrcweir 
99cdf0e10cSrcweir     sal_Bool isPresentationShape() const;
100cdf0e10cSrcweir 
101cdf0e10cSrcweir public:
102cdf0e10cSrcweir     TYPEINFO();
103cdf0e10cSrcweir 
104cdf0e10cSrcweir     SdXMLShapeContext( SvXMLImport& rImport,
105cdf0e10cSrcweir         sal_uInt16 nPrfx,
106cdf0e10cSrcweir         const rtl::OUString& rLocalName,
107cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
108cdf0e10cSrcweir         com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
109cdf0e10cSrcweir         sal_Bool bTemporaryShape);
110cdf0e10cSrcweir     virtual ~SdXMLShapeContext();
111cdf0e10cSrcweir 
112cdf0e10cSrcweir     virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList);
113cdf0e10cSrcweir     virtual void EndElement();
114cdf0e10cSrcweir 
115cdf0e10cSrcweir     virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName,
116cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList );
117cdf0e10cSrcweir 
118cdf0e10cSrcweir     // this is called from the parent group for each unparsed attribute in the attribute list
119cdf0e10cSrcweir     virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
120598d8f9fSArmin Le Grand 
121598d8f9fSArmin Le Grand     /// access to ShapeId for evtl. late adding
getShapeId() const122598d8f9fSArmin Le Grand     const rtl::OUString& getShapeId() const { return maShapeId; }
123*f3b8b509SArmin Le Grand 
124*f3b8b509SArmin Le Grand     // allow to copy evtl. useful data from another temporary import context, e.g. used to
125*f3b8b509SArmin Le Grand     // support multiple images
126*f3b8b509SArmin Le Grand     virtual void onDemandRescueUsefulDataFromTemporary( const SvXMLImportContext& rCandidate );
127cdf0e10cSrcweir };
128cdf0e10cSrcweir 
129cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
130cdf0e10cSrcweir // draw:rect context
131cdf0e10cSrcweir 
132cdf0e10cSrcweir class SdXMLRectShapeContext : public SdXMLShapeContext
133cdf0e10cSrcweir {
134cdf0e10cSrcweir     sal_Int32                   mnRadius;
135cdf0e10cSrcweir 
136cdf0e10cSrcweir public:
137cdf0e10cSrcweir     TYPEINFO();
138cdf0e10cSrcweir 
139cdf0e10cSrcweir     SdXMLRectShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
140cdf0e10cSrcweir         const rtl::OUString& rLocalName,
141cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
142cdf0e10cSrcweir         com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
143cdf0e10cSrcweir         sal_Bool bTemporaryShape);
144cdf0e10cSrcweir     virtual ~SdXMLRectShapeContext();
145cdf0e10cSrcweir     virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList);
146cdf0e10cSrcweir 
147cdf0e10cSrcweir     // this is called from the parent group for each unparsed attribute in the attribute list
148cdf0e10cSrcweir     virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
149cdf0e10cSrcweir };
150cdf0e10cSrcweir 
151cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
152cdf0e10cSrcweir // draw:line context
153cdf0e10cSrcweir 
154cdf0e10cSrcweir class SdXMLLineShapeContext : public SdXMLShapeContext
155cdf0e10cSrcweir {
156cdf0e10cSrcweir     sal_Int32                   mnX1;
157cdf0e10cSrcweir     sal_Int32                   mnY1;
158cdf0e10cSrcweir     sal_Int32                   mnX2;
159cdf0e10cSrcweir     sal_Int32                   mnY2;
160cdf0e10cSrcweir 
161cdf0e10cSrcweir public:
162cdf0e10cSrcweir     TYPEINFO();
163cdf0e10cSrcweir 
164cdf0e10cSrcweir     SdXMLLineShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
165cdf0e10cSrcweir         const rtl::OUString& rLocalName,
166cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
167cdf0e10cSrcweir         com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
168cdf0e10cSrcweir         sal_Bool bTemporaryShape);
169cdf0e10cSrcweir     virtual ~SdXMLLineShapeContext();
170cdf0e10cSrcweir     virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList);
171cdf0e10cSrcweir 
172cdf0e10cSrcweir     // this is called from the parent group for each unparsed attribute in the attribute list
173cdf0e10cSrcweir     virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
174cdf0e10cSrcweir };
175cdf0e10cSrcweir 
176cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
177cdf0e10cSrcweir // draw:ellipse and draw:circle context
178cdf0e10cSrcweir 
179cdf0e10cSrcweir class SdXMLEllipseShapeContext : public SdXMLShapeContext
180cdf0e10cSrcweir {
181cdf0e10cSrcweir     sal_Int32                   mnCX;
182cdf0e10cSrcweir     sal_Int32                   mnCY;
183cdf0e10cSrcweir     sal_Int32                   mnRX;
184cdf0e10cSrcweir     sal_Int32                   mnRY;
185cdf0e10cSrcweir 
186cdf0e10cSrcweir     sal_uInt16                      meKind;
187cdf0e10cSrcweir     sal_Int32                   mnStartAngle;
188cdf0e10cSrcweir     sal_Int32                   mnEndAngle;
189cdf0e10cSrcweir public:
190cdf0e10cSrcweir     TYPEINFO();
191cdf0e10cSrcweir 
192cdf0e10cSrcweir     SdXMLEllipseShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
193cdf0e10cSrcweir         const rtl::OUString& rLocalName,
194cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
195cdf0e10cSrcweir         com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
196cdf0e10cSrcweir         sal_Bool bTemporaryShape);
197cdf0e10cSrcweir     virtual ~SdXMLEllipseShapeContext();
198cdf0e10cSrcweir     virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList);
199cdf0e10cSrcweir 
200cdf0e10cSrcweir     // this is called from the parent group for each unparsed attribute in the attribute list
201cdf0e10cSrcweir     virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
202cdf0e10cSrcweir };
203cdf0e10cSrcweir 
204cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
205cdf0e10cSrcweir // draw:polyline and draw:polygon context
206cdf0e10cSrcweir 
207cdf0e10cSrcweir class SdXMLPolygonShapeContext : public SdXMLShapeContext
208cdf0e10cSrcweir {
209cdf0e10cSrcweir     rtl::OUString               maPoints;
210cdf0e10cSrcweir     rtl::OUString               maViewBox;
211cdf0e10cSrcweir     sal_Bool                    mbClosed;
212cdf0e10cSrcweir 
213cdf0e10cSrcweir public:
214cdf0e10cSrcweir     TYPEINFO();
215cdf0e10cSrcweir 
216cdf0e10cSrcweir     SdXMLPolygonShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
217cdf0e10cSrcweir         const rtl::OUString& rLocalName,
218cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
219cdf0e10cSrcweir         com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes, sal_Bool bClosed, sal_Bool bTemporaryShape);
220cdf0e10cSrcweir     virtual ~SdXMLPolygonShapeContext();
221cdf0e10cSrcweir     virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList);
222cdf0e10cSrcweir 
223cdf0e10cSrcweir     // this is called from the parent group for each unparsed attribute in the attribute list
224cdf0e10cSrcweir     virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
225cdf0e10cSrcweir };
226cdf0e10cSrcweir 
227cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
228cdf0e10cSrcweir // draw:path context
229cdf0e10cSrcweir 
230cdf0e10cSrcweir class SdXMLPathShapeContext : public SdXMLShapeContext
231cdf0e10cSrcweir {
232cdf0e10cSrcweir     rtl::OUString               maD;
233cdf0e10cSrcweir     rtl::OUString               maViewBox;
234cdf0e10cSrcweir     sal_Bool                    mbClosed;
235cdf0e10cSrcweir 
236cdf0e10cSrcweir public:
237cdf0e10cSrcweir     TYPEINFO();
238cdf0e10cSrcweir 
239cdf0e10cSrcweir     SdXMLPathShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
240cdf0e10cSrcweir         const rtl::OUString& rLocalName,
241cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
242cdf0e10cSrcweir         com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
243cdf0e10cSrcweir         sal_Bool bTemporaryShape);
244cdf0e10cSrcweir     virtual ~SdXMLPathShapeContext();
245cdf0e10cSrcweir     virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList);
246cdf0e10cSrcweir 
247cdf0e10cSrcweir     // this is called from the parent group for each unparsed attribute in the attribute list
248cdf0e10cSrcweir     virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
249cdf0e10cSrcweir };
250cdf0e10cSrcweir 
251cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
252cdf0e10cSrcweir // draw:text-box context
253cdf0e10cSrcweir 
254cdf0e10cSrcweir class SdXMLTextBoxShapeContext : public SdXMLShapeContext
255cdf0e10cSrcweir {
256cdf0e10cSrcweir     sal_Int32                   mnRadius;
257cdf0e10cSrcweir 
258cdf0e10cSrcweir public:
259cdf0e10cSrcweir     TYPEINFO();
260cdf0e10cSrcweir 
261cdf0e10cSrcweir     SdXMLTextBoxShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
262cdf0e10cSrcweir         const rtl::OUString& rLocalName,
263cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
264cdf0e10cSrcweir         com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
265cdf0e10cSrcweir         sal_Bool bTemporaryShape);
266cdf0e10cSrcweir     virtual ~SdXMLTextBoxShapeContext();
267cdf0e10cSrcweir     virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList);
268cdf0e10cSrcweir 
269cdf0e10cSrcweir     // this is called from the parent group for each unparsed attribute in the attribute list
270cdf0e10cSrcweir     virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
271cdf0e10cSrcweir };
272cdf0e10cSrcweir 
273cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
274cdf0e10cSrcweir // draw:control context
275cdf0e10cSrcweir 
276cdf0e10cSrcweir class SdXMLControlShapeContext : public SdXMLShapeContext
277cdf0e10cSrcweir {
278cdf0e10cSrcweir private:
279cdf0e10cSrcweir     rtl::OUString maFormId;
280cdf0e10cSrcweir 
281cdf0e10cSrcweir public:
282cdf0e10cSrcweir     TYPEINFO();
283cdf0e10cSrcweir 
284cdf0e10cSrcweir     SdXMLControlShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
285cdf0e10cSrcweir         const rtl::OUString& rLocalName,
286cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
287cdf0e10cSrcweir         com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
288cdf0e10cSrcweir         sal_Bool bTemporaryShape);
289cdf0e10cSrcweir     virtual ~SdXMLControlShapeContext();
290cdf0e10cSrcweir     virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList);
291cdf0e10cSrcweir 
292cdf0e10cSrcweir     // this is called from the parent group for each unparsed attribute in the attribute list
293cdf0e10cSrcweir     virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
294cdf0e10cSrcweir };
295cdf0e10cSrcweir 
296cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
297cdf0e10cSrcweir // draw:connector context
298cdf0e10cSrcweir 
299cdf0e10cSrcweir class SdXMLConnectorShapeContext : public SdXMLShapeContext
300cdf0e10cSrcweir {
301cdf0e10cSrcweir private:
302cdf0e10cSrcweir     ::com::sun::star::awt::Point maStart;
303cdf0e10cSrcweir     ::com::sun::star::awt::Point maEnd;
304cdf0e10cSrcweir 
305cdf0e10cSrcweir     sal_uInt16      mnType;
306cdf0e10cSrcweir 
307cdf0e10cSrcweir     rtl::OUString   maStartShapeId;
308cdf0e10cSrcweir     sal_Int32       mnStartGlueId;
309cdf0e10cSrcweir     rtl::OUString   maEndShapeId;
310cdf0e10cSrcweir     sal_Int32       mnEndGlueId;
311cdf0e10cSrcweir 
312cdf0e10cSrcweir     sal_Int32   mnDelta1;
313cdf0e10cSrcweir     sal_Int32   mnDelta2;
314cdf0e10cSrcweir     sal_Int32   mnDelta3;
315cdf0e10cSrcweir 
316cdf0e10cSrcweir     com::sun::star::uno::Any maPath;
317cdf0e10cSrcweir 
318cdf0e10cSrcweir public:
319cdf0e10cSrcweir     TYPEINFO();
320cdf0e10cSrcweir 
321cdf0e10cSrcweir     SdXMLConnectorShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
322cdf0e10cSrcweir         const rtl::OUString& rLocalName,
323cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
324cdf0e10cSrcweir         com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
325cdf0e10cSrcweir         sal_Bool bTemporaryShape);
326cdf0e10cSrcweir     virtual ~SdXMLConnectorShapeContext();
327cdf0e10cSrcweir     virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList);
328cdf0e10cSrcweir 
329cdf0e10cSrcweir     // this is called from the parent group for each unparsed attribute in the attribute list
330cdf0e10cSrcweir     virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
331cdf0e10cSrcweir };
332cdf0e10cSrcweir 
333cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
334cdf0e10cSrcweir // draw:measure context
335cdf0e10cSrcweir 
336cdf0e10cSrcweir class SdXMLMeasureShapeContext : public SdXMLShapeContext
337cdf0e10cSrcweir {
338cdf0e10cSrcweir private:
339cdf0e10cSrcweir     ::com::sun::star::awt::Point maStart;
340cdf0e10cSrcweir     ::com::sun::star::awt::Point maEnd;
341cdf0e10cSrcweir 
342cdf0e10cSrcweir public:
343cdf0e10cSrcweir     TYPEINFO();
344cdf0e10cSrcweir 
345cdf0e10cSrcweir     SdXMLMeasureShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
346cdf0e10cSrcweir         const rtl::OUString& rLocalName,
347cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
348cdf0e10cSrcweir         com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
349cdf0e10cSrcweir         sal_Bool bTemporaryShape);
350cdf0e10cSrcweir     virtual ~SdXMLMeasureShapeContext();
351cdf0e10cSrcweir     virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList);
352cdf0e10cSrcweir     virtual void EndElement();
353cdf0e10cSrcweir 
354cdf0e10cSrcweir     // this is called from the parent group for each unparsed attribute in the attribute list
355cdf0e10cSrcweir     virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
356cdf0e10cSrcweir };
357cdf0e10cSrcweir 
358cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
359cdf0e10cSrcweir // draw:page context
360cdf0e10cSrcweir 
361cdf0e10cSrcweir class SdXMLPageShapeContext : public SdXMLShapeContext
362cdf0e10cSrcweir {
363cdf0e10cSrcweir private:
364cdf0e10cSrcweir     sal_Int32   mnPageNumber;
365cdf0e10cSrcweir public:
366cdf0e10cSrcweir     TYPEINFO();
367cdf0e10cSrcweir 
368cdf0e10cSrcweir     SdXMLPageShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
369cdf0e10cSrcweir         const rtl::OUString& rLocalName,
370cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
371cdf0e10cSrcweir         com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
372cdf0e10cSrcweir         sal_Bool bTemporaryShape);
373cdf0e10cSrcweir     virtual ~SdXMLPageShapeContext();
374cdf0e10cSrcweir     virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList);
375cdf0e10cSrcweir 
376cdf0e10cSrcweir     // this is called from the parent group for each unparsed attribute in the attribute list
377cdf0e10cSrcweir     virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
378cdf0e10cSrcweir };
379cdf0e10cSrcweir 
380cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
381cdf0e10cSrcweir // draw:caption context
382cdf0e10cSrcweir 
383cdf0e10cSrcweir class SdXMLCaptionShapeContext : public SdXMLShapeContext
384cdf0e10cSrcweir {
385cdf0e10cSrcweir private:
386cdf0e10cSrcweir     com::sun::star::awt::Point maCaptionPoint;
387cdf0e10cSrcweir     sal_Int32 mnRadius;
388cdf0e10cSrcweir 
389cdf0e10cSrcweir public:
390cdf0e10cSrcweir     TYPEINFO();
391cdf0e10cSrcweir 
392cdf0e10cSrcweir     SdXMLCaptionShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
393cdf0e10cSrcweir         const rtl::OUString& rLocalName,
394cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
395cdf0e10cSrcweir         com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
396cdf0e10cSrcweir         sal_Bool bTemporaryShape);
397cdf0e10cSrcweir     virtual ~SdXMLCaptionShapeContext();
398cdf0e10cSrcweir     virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList);
399cdf0e10cSrcweir 
400cdf0e10cSrcweir     // this is called from the parent group for each unparsed attribute in the attribute list
401cdf0e10cSrcweir     virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
402cdf0e10cSrcweir };
403cdf0e10cSrcweir 
404cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
405cdf0e10cSrcweir // office:image context
406cdf0e10cSrcweir 
407cdf0e10cSrcweir class SdXMLGraphicObjectShapeContext : public SdXMLShapeContext
408cdf0e10cSrcweir {
409cdf0e10cSrcweir private:
410cdf0e10cSrcweir     ::rtl::OUString maURL;
411cdf0e10cSrcweir     ::com::sun::star::uno::Reference < ::com::sun::star::io::XOutputStream > mxBase64Stream;
412cdf0e10cSrcweir 
413598d8f9fSArmin Le Grand     /// bitfield
414598d8f9fSArmin Le Grand     bool                mbLateAddToIdentifierMapper : 1;
415598d8f9fSArmin Le Grand 
416cdf0e10cSrcweir public:
417cdf0e10cSrcweir     TYPEINFO();
418cdf0e10cSrcweir 
419cdf0e10cSrcweir     SdXMLGraphicObjectShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
420cdf0e10cSrcweir         const rtl::OUString& rLocalName,
421cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
422cdf0e10cSrcweir         com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
423cdf0e10cSrcweir         sal_Bool bTemporaryShape);
424cdf0e10cSrcweir     virtual ~SdXMLGraphicObjectShapeContext();
425cdf0e10cSrcweir 
426cdf0e10cSrcweir     virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
427cdf0e10cSrcweir     virtual void EndElement();
428cdf0e10cSrcweir     virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName,
429cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList );
430cdf0e10cSrcweir 
431cdf0e10cSrcweir     // this is called from the parent group for each unparsed attribute in the attribute list
432cdf0e10cSrcweir     virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
433598d8f9fSArmin Le Grand 
434598d8f9fSArmin Le Grand     /// support for LateAddToIdentifierMapper
getLateAddToIdentifierMapper() const435598d8f9fSArmin Le Grand     bool getLateAddToIdentifierMapper() const { return mbLateAddToIdentifierMapper; }
setLateAddToIdentifierMapper(bool bNew)436598d8f9fSArmin Le Grand     void setLateAddToIdentifierMapper(bool bNew) { mbLateAddToIdentifierMapper = bNew; }
437cdf0e10cSrcweir };
438cdf0e10cSrcweir 
439cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
440cdf0e10cSrcweir // chart:chart context
441cdf0e10cSrcweir 
442cdf0e10cSrcweir class SdXMLChartShapeContext : public SdXMLShapeContext
443cdf0e10cSrcweir {
444cdf0e10cSrcweir     SvXMLImportContext*         mpChartContext;
445cdf0e10cSrcweir 
446cdf0e10cSrcweir public:
447cdf0e10cSrcweir     TYPEINFO();
448cdf0e10cSrcweir 
449cdf0e10cSrcweir     SdXMLChartShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
450cdf0e10cSrcweir         const rtl::OUString& rLocalName,
451cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
452cdf0e10cSrcweir         com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
453cdf0e10cSrcweir         sal_Bool bTemporaryShape);
454cdf0e10cSrcweir     virtual ~SdXMLChartShapeContext();
455cdf0e10cSrcweir 
456cdf0e10cSrcweir     virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
457cdf0e10cSrcweir     virtual void EndElement();
458cdf0e10cSrcweir     virtual void Characters( const ::rtl::OUString& rChars );
459cdf0e10cSrcweir     virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName,
460cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList );
461cdf0e10cSrcweir };
462cdf0e10cSrcweir 
463cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
464cdf0e10cSrcweir // draw:object and draw:object_ole context
465cdf0e10cSrcweir 
466cdf0e10cSrcweir class SdXMLObjectShapeContext : public SdXMLShapeContext
467cdf0e10cSrcweir {
468cdf0e10cSrcweir private:
469cdf0e10cSrcweir     rtl::OUString maCLSID;
470cdf0e10cSrcweir     rtl::OUString maHref;
471cdf0e10cSrcweir 
472cdf0e10cSrcweir     // #100592#
473cdf0e10cSrcweir     ::com::sun::star::uno::Reference < ::com::sun::star::io::XOutputStream > mxBase64Stream;
474cdf0e10cSrcweir 
475cdf0e10cSrcweir public:
476cdf0e10cSrcweir     TYPEINFO();
477cdf0e10cSrcweir 
478cdf0e10cSrcweir     SdXMLObjectShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
479cdf0e10cSrcweir         const rtl::OUString& rLocalName,
480cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
481cdf0e10cSrcweir         com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
482cdf0e10cSrcweir         sal_Bool bTemporaryShape);
483cdf0e10cSrcweir     virtual ~SdXMLObjectShapeContext();
484cdf0e10cSrcweir 
485cdf0e10cSrcweir     virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
486cdf0e10cSrcweir     virtual void EndElement();
487cdf0e10cSrcweir 
488cdf0e10cSrcweir     // #100592#
489cdf0e10cSrcweir     virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName,
490cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList );
491cdf0e10cSrcweir 
492cdf0e10cSrcweir     // this is called from the parent group for each unparsed attribute in the attribute list
493cdf0e10cSrcweir     virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
494cdf0e10cSrcweir };
495cdf0e10cSrcweir 
496cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
497cdf0e10cSrcweir // draw:applet
498cdf0e10cSrcweir 
499cdf0e10cSrcweir class SdXMLAppletShapeContext : public SdXMLShapeContext
500cdf0e10cSrcweir {
501cdf0e10cSrcweir private:
502cdf0e10cSrcweir     rtl::OUString maAppletName;
503cdf0e10cSrcweir     rtl::OUString maAppletCode;
504cdf0e10cSrcweir     rtl::OUString maHref;
505cdf0e10cSrcweir     sal_Bool mbIsScript;
506cdf0e10cSrcweir 
507cdf0e10cSrcweir     com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > maParams;
508cdf0e10cSrcweir 
509cdf0e10cSrcweir public:
510cdf0e10cSrcweir     TYPEINFO();
511cdf0e10cSrcweir 
512cdf0e10cSrcweir     SdXMLAppletShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
513cdf0e10cSrcweir         const rtl::OUString& rLocalName,
514cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
515cdf0e10cSrcweir         com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
516cdf0e10cSrcweir         sal_Bool bTemporaryShape);
517cdf0e10cSrcweir     virtual ~SdXMLAppletShapeContext();
518cdf0e10cSrcweir 
519cdf0e10cSrcweir     virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
520cdf0e10cSrcweir     virtual void EndElement();
521cdf0e10cSrcweir 
522cdf0e10cSrcweir     virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName,
523cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList );
524cdf0e10cSrcweir 
525cdf0e10cSrcweir     // this is called from the parent group for each unparsed attribute in the attribute list
526cdf0e10cSrcweir     virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
527cdf0e10cSrcweir };
528cdf0e10cSrcweir 
529cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
530cdf0e10cSrcweir // draw:plugin
531cdf0e10cSrcweir 
532cdf0e10cSrcweir class SdXMLPluginShapeContext : public SdXMLShapeContext
533cdf0e10cSrcweir {
534cdf0e10cSrcweir private:
535cdf0e10cSrcweir     rtl::OUString   maMimeType;
536cdf0e10cSrcweir     rtl::OUString   maHref;
537cdf0e10cSrcweir     bool            mbMedia;
538cdf0e10cSrcweir 
539cdf0e10cSrcweir     com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > maParams;
540cdf0e10cSrcweir 
541cdf0e10cSrcweir public:
542cdf0e10cSrcweir     TYPEINFO();
543cdf0e10cSrcweir 
544cdf0e10cSrcweir     SdXMLPluginShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
545cdf0e10cSrcweir         const rtl::OUString& rLocalName,
546cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
547cdf0e10cSrcweir         com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
548cdf0e10cSrcweir         sal_Bool bTemporaryShape);
549cdf0e10cSrcweir     virtual ~SdXMLPluginShapeContext();
550cdf0e10cSrcweir 
551cdf0e10cSrcweir     virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
552cdf0e10cSrcweir     virtual void EndElement();
553cdf0e10cSrcweir 
554cdf0e10cSrcweir     virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName,
555cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList );
556cdf0e10cSrcweir 
557cdf0e10cSrcweir     // this is called from the parent group for each unparsed attribute in the attribute list
558cdf0e10cSrcweir     virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
559cdf0e10cSrcweir };
560cdf0e10cSrcweir 
561cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
562cdf0e10cSrcweir // draw:floating-frame
563cdf0e10cSrcweir 
564cdf0e10cSrcweir class SdXMLFloatingFrameShapeContext : public SdXMLShapeContext
565cdf0e10cSrcweir {
566cdf0e10cSrcweir private:
567cdf0e10cSrcweir     rtl::OUString maFrameName;
568cdf0e10cSrcweir     rtl::OUString maHref;
569cdf0e10cSrcweir 
570cdf0e10cSrcweir public:
571cdf0e10cSrcweir     TYPEINFO();
572cdf0e10cSrcweir 
573cdf0e10cSrcweir     SdXMLFloatingFrameShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
574cdf0e10cSrcweir         const rtl::OUString& rLocalName,
575cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
576cdf0e10cSrcweir         com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
577cdf0e10cSrcweir         sal_Bool bTemporaryShape);
578cdf0e10cSrcweir     virtual ~SdXMLFloatingFrameShapeContext();
579cdf0e10cSrcweir 
580cdf0e10cSrcweir     virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
581cdf0e10cSrcweir     virtual void EndElement();
582cdf0e10cSrcweir 
583cdf0e10cSrcweir     // this is called from the parent group for each unparsed attribute in the attribute list
584cdf0e10cSrcweir     virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
585cdf0e10cSrcweir };
586cdf0e10cSrcweir 
587cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
588cdf0e10cSrcweir // draw:-frame
589cdf0e10cSrcweir 
590ddde725dSArmin Le Grand class SdXMLFrameShapeContext : public SdXMLShapeContext, public multiImageImportHelper
591cdf0e10cSrcweir {
592cdf0e10cSrcweir private:
593cdf0e10cSrcweir     sal_Bool mbSupportsReplacement;
594cdf0e10cSrcweir     SvXMLImportContextRef mxImplContext;
595cdf0e10cSrcweir     SvXMLImportContextRef mxReplImplContext;
596cdf0e10cSrcweir 
597ddde725dSArmin Le Grand protected:
598ddde725dSArmin Le Grand     /// helper to get the created xShape instance, needs to be overloaded
599ddde725dSArmin Le Grand     virtual rtl::OUString getGraphicURLFromImportContext(const SvXMLImportContext& rContext) const;
600ddde725dSArmin Le Grand     virtual void removeGraphicFromImportContext(const SvXMLImportContext& rContext) const;
601ddde725dSArmin Le Grand 
602cdf0e10cSrcweir public:
603cdf0e10cSrcweir     TYPEINFO();
604cdf0e10cSrcweir 
605cdf0e10cSrcweir     SdXMLFrameShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
606cdf0e10cSrcweir         const rtl::OUString& rLocalName,
607cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
608cdf0e10cSrcweir         com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
609cdf0e10cSrcweir         sal_Bool bTemporaryShape);
610cdf0e10cSrcweir     virtual ~SdXMLFrameShapeContext();
611cdf0e10cSrcweir 
612cdf0e10cSrcweir     virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName,
613cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList );
614cdf0e10cSrcweir 
615cdf0e10cSrcweir     virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
616cdf0e10cSrcweir     virtual void EndElement();
617cdf0e10cSrcweir 
618cdf0e10cSrcweir     virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
619cdf0e10cSrcweir };
620cdf0e10cSrcweir 
621cdf0e10cSrcweir class SdXMLCustomShapeContext : public SdXMLShapeContext
622cdf0e10cSrcweir {
623cdf0e10cSrcweir 
624cdf0e10cSrcweir protected :
625cdf0e10cSrcweir 
626cdf0e10cSrcweir     rtl::OUString maCustomShapeEngine;
627cdf0e10cSrcweir     rtl::OUString maCustomShapeData;
628cdf0e10cSrcweir 
629cdf0e10cSrcweir     std::vector< com::sun::star::beans::PropertyValue > maCustomShapeGeometry;
630cdf0e10cSrcweir 
631cdf0e10cSrcweir public:
632cdf0e10cSrcweir 
633cdf0e10cSrcweir     TYPEINFO();
634cdf0e10cSrcweir 
635cdf0e10cSrcweir     SdXMLCustomShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx, const rtl::OUString& rLocalName,
636cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
637cdf0e10cSrcweir         com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
638cdf0e10cSrcweir         sal_Bool bTemporaryShape);
639cdf0e10cSrcweir     virtual ~SdXMLCustomShapeContext();
640cdf0e10cSrcweir 
641cdf0e10cSrcweir     virtual void StartElement( const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList );
642cdf0e10cSrcweir     virtual void EndElement();
643cdf0e10cSrcweir 
644cdf0e10cSrcweir     virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName,
645cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList );
646cdf0e10cSrcweir 
647cdf0e10cSrcweir     // this is called from the parent group for each unparsed attribute in the attribute list
648cdf0e10cSrcweir     virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
649cdf0e10cSrcweir };
650cdf0e10cSrcweir 
651cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
652cdf0e10cSrcweir // draw:table
653cdf0e10cSrcweir 
654cdf0e10cSrcweir class SdXMLTableShapeContext : public SdXMLShapeContext
655cdf0e10cSrcweir {
656cdf0e10cSrcweir public:
657cdf0e10cSrcweir     TYPEINFO();
658cdf0e10cSrcweir 
659cdf0e10cSrcweir     SdXMLTableShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
660cdf0e10cSrcweir         const rtl::OUString& rLocalName,
661cdf0e10cSrcweir         const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
662cdf0e10cSrcweir         com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes );
663cdf0e10cSrcweir     virtual ~SdXMLTableShapeContext();
664cdf0e10cSrcweir 
665cdf0e10cSrcweir     virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
666cdf0e10cSrcweir     virtual void EndElement();
667cdf0e10cSrcweir 
668cdf0e10cSrcweir     virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList );
669cdf0e10cSrcweir 
670cdf0e10cSrcweir     // this is called from the parent group for each unparsed attribute in the attribute list
671cdf0e10cSrcweir     virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
672cdf0e10cSrcweir 
673cdf0e10cSrcweir private:
674cdf0e10cSrcweir     SvXMLImportContextRef mxTableImportContext;
675cdf0e10cSrcweir     rtl::OUString msTemplateStyleName;
676cdf0e10cSrcweir     sal_Bool maTemplateStylesUsed[6];
677cdf0e10cSrcweir };
678cdf0e10cSrcweir 
679cdf0e10cSrcweir #endif  //  _XIMPSHAPE_HXX
680