xref: /aoo41x/main/xmloff/source/draw/ximpshap.hxx (revision 6381da86)
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
10ecfe53c5SAndrew Rist  *
11ecfe53c5SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12ecfe53c5SAndrew Rist  *
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.
19ecfe53c5SAndrew Rist  *
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>
39*6381da86SArmin 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;
80*6381da86SArmin 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 
94cdf0e10cSrcweir 	SvXMLImport& GetImport() { return SvXMLImportContext::GetImport(); }
95cdf0e10cSrcweir 	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
122598d8f9fSArmin Le Grand     const rtl::OUString& getShapeId() const { return maShapeId; }
123cdf0e10cSrcweir };
124cdf0e10cSrcweir 
125cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
126cdf0e10cSrcweir // draw:rect context
127cdf0e10cSrcweir 
128cdf0e10cSrcweir class SdXMLRectShapeContext : public SdXMLShapeContext
129cdf0e10cSrcweir {
130cdf0e10cSrcweir 	sal_Int32					mnRadius;
131cdf0e10cSrcweir 
132cdf0e10cSrcweir public:
133cdf0e10cSrcweir 	TYPEINFO();
134cdf0e10cSrcweir 
135cdf0e10cSrcweir 	SdXMLRectShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
136cdf0e10cSrcweir 		const rtl::OUString& rLocalName,
137cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
138cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
139cdf0e10cSrcweir         sal_Bool bTemporaryShape);
140cdf0e10cSrcweir 	virtual ~SdXMLRectShapeContext();
141cdf0e10cSrcweir 	virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList);
142cdf0e10cSrcweir 
143cdf0e10cSrcweir 	// this is called from the parent group for each unparsed attribute in the attribute list
144cdf0e10cSrcweir 	virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
145cdf0e10cSrcweir };
146cdf0e10cSrcweir 
147cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
148cdf0e10cSrcweir // draw:line context
149cdf0e10cSrcweir 
150cdf0e10cSrcweir class SdXMLLineShapeContext : public SdXMLShapeContext
151cdf0e10cSrcweir {
152cdf0e10cSrcweir 	sal_Int32					mnX1;
153cdf0e10cSrcweir 	sal_Int32					mnY1;
154cdf0e10cSrcweir 	sal_Int32					mnX2;
155cdf0e10cSrcweir 	sal_Int32					mnY2;
156cdf0e10cSrcweir 
157cdf0e10cSrcweir public:
158cdf0e10cSrcweir 	TYPEINFO();
159cdf0e10cSrcweir 
160cdf0e10cSrcweir 	SdXMLLineShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
161cdf0e10cSrcweir 		const rtl::OUString& rLocalName,
162cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
163cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
164cdf0e10cSrcweir         sal_Bool bTemporaryShape);
165cdf0e10cSrcweir 	virtual ~SdXMLLineShapeContext();
166cdf0e10cSrcweir 	virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList);
167cdf0e10cSrcweir 
168cdf0e10cSrcweir 	// this is called from the parent group for each unparsed attribute in the attribute list
169cdf0e10cSrcweir 	virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
170cdf0e10cSrcweir };
171cdf0e10cSrcweir 
172cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
173cdf0e10cSrcweir // draw:ellipse and draw:circle context
174cdf0e10cSrcweir 
175cdf0e10cSrcweir class SdXMLEllipseShapeContext : public SdXMLShapeContext
176cdf0e10cSrcweir {
177cdf0e10cSrcweir 	sal_Int32					mnCX;
178cdf0e10cSrcweir 	sal_Int32					mnCY;
179cdf0e10cSrcweir 	sal_Int32					mnRX;
180cdf0e10cSrcweir 	sal_Int32					mnRY;
181cdf0e10cSrcweir 
182cdf0e10cSrcweir 	sal_uInt16						meKind;
183cdf0e10cSrcweir 	sal_Int32					mnStartAngle;
184cdf0e10cSrcweir 	sal_Int32					mnEndAngle;
185cdf0e10cSrcweir public:
186cdf0e10cSrcweir 	TYPEINFO();
187cdf0e10cSrcweir 
188cdf0e10cSrcweir 	SdXMLEllipseShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
189cdf0e10cSrcweir 		const rtl::OUString& rLocalName,
190cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
191cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
192cdf0e10cSrcweir         sal_Bool bTemporaryShape);
193cdf0e10cSrcweir 	virtual ~SdXMLEllipseShapeContext();
194cdf0e10cSrcweir 	virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList);
195cdf0e10cSrcweir 
196cdf0e10cSrcweir 	// this is called from the parent group for each unparsed attribute in the attribute list
197cdf0e10cSrcweir 	virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
198cdf0e10cSrcweir };
199cdf0e10cSrcweir 
200cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
201cdf0e10cSrcweir // draw:polyline and draw:polygon context
202cdf0e10cSrcweir 
203cdf0e10cSrcweir class SdXMLPolygonShapeContext : public SdXMLShapeContext
204cdf0e10cSrcweir {
205cdf0e10cSrcweir 	rtl::OUString				maPoints;
206cdf0e10cSrcweir 	rtl::OUString				maViewBox;
207cdf0e10cSrcweir 	sal_Bool					mbClosed;
208cdf0e10cSrcweir 
209cdf0e10cSrcweir public:
210cdf0e10cSrcweir 	TYPEINFO();
211cdf0e10cSrcweir 
212cdf0e10cSrcweir 	SdXMLPolygonShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
213cdf0e10cSrcweir 		const rtl::OUString& rLocalName,
214cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
215cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes, sal_Bool bClosed, sal_Bool bTemporaryShape);
216cdf0e10cSrcweir 	virtual ~SdXMLPolygonShapeContext();
217cdf0e10cSrcweir 	virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList);
218cdf0e10cSrcweir 
219cdf0e10cSrcweir 	// this is called from the parent group for each unparsed attribute in the attribute list
220cdf0e10cSrcweir 	virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
221cdf0e10cSrcweir };
222cdf0e10cSrcweir 
223cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
224cdf0e10cSrcweir // draw:path context
225cdf0e10cSrcweir 
226cdf0e10cSrcweir class SdXMLPathShapeContext : public SdXMLShapeContext
227cdf0e10cSrcweir {
228cdf0e10cSrcweir 	rtl::OUString				maD;
229cdf0e10cSrcweir 	rtl::OUString				maViewBox;
230cdf0e10cSrcweir 	sal_Bool					mbClosed;
231cdf0e10cSrcweir 
232cdf0e10cSrcweir public:
233cdf0e10cSrcweir 	TYPEINFO();
234cdf0e10cSrcweir 
235cdf0e10cSrcweir 	SdXMLPathShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
236cdf0e10cSrcweir 		const rtl::OUString& rLocalName,
237cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
238cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
239cdf0e10cSrcweir         sal_Bool bTemporaryShape);
240cdf0e10cSrcweir 	virtual ~SdXMLPathShapeContext();
241cdf0e10cSrcweir 	virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList);
242cdf0e10cSrcweir 
243cdf0e10cSrcweir 	// this is called from the parent group for each unparsed attribute in the attribute list
244cdf0e10cSrcweir 	virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
245cdf0e10cSrcweir };
246cdf0e10cSrcweir 
247cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
248cdf0e10cSrcweir // draw:text-box context
249cdf0e10cSrcweir 
250cdf0e10cSrcweir class SdXMLTextBoxShapeContext : public SdXMLShapeContext
251cdf0e10cSrcweir {
252cdf0e10cSrcweir 	sal_Int32					mnRadius;
253cdf0e10cSrcweir 
254cdf0e10cSrcweir public:
255cdf0e10cSrcweir 	TYPEINFO();
256cdf0e10cSrcweir 
257cdf0e10cSrcweir 	SdXMLTextBoxShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
258cdf0e10cSrcweir 		const rtl::OUString& rLocalName,
259cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
260cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
261cdf0e10cSrcweir         sal_Bool bTemporaryShape);
262cdf0e10cSrcweir 	virtual ~SdXMLTextBoxShapeContext();
263cdf0e10cSrcweir 	virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList);
264cdf0e10cSrcweir 
265cdf0e10cSrcweir 	// this is called from the parent group for each unparsed attribute in the attribute list
266cdf0e10cSrcweir 	virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
267cdf0e10cSrcweir };
268cdf0e10cSrcweir 
269cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
270cdf0e10cSrcweir // draw:control context
271cdf0e10cSrcweir 
272cdf0e10cSrcweir class SdXMLControlShapeContext : public SdXMLShapeContext
273cdf0e10cSrcweir {
274cdf0e10cSrcweir private:
275cdf0e10cSrcweir 	rtl::OUString maFormId;
276cdf0e10cSrcweir 
277cdf0e10cSrcweir public:
278cdf0e10cSrcweir 	TYPEINFO();
279cdf0e10cSrcweir 
280cdf0e10cSrcweir 	SdXMLControlShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
281cdf0e10cSrcweir 		const rtl::OUString& rLocalName,
282cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
283cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
284cdf0e10cSrcweir         sal_Bool bTemporaryShape);
285cdf0e10cSrcweir 	virtual ~SdXMLControlShapeContext();
286cdf0e10cSrcweir 	virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList);
287cdf0e10cSrcweir 
288cdf0e10cSrcweir 	// this is called from the parent group for each unparsed attribute in the attribute list
289cdf0e10cSrcweir 	virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
290cdf0e10cSrcweir };
291cdf0e10cSrcweir 
292cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
293cdf0e10cSrcweir // draw:connector context
294cdf0e10cSrcweir 
295cdf0e10cSrcweir class SdXMLConnectorShapeContext : public SdXMLShapeContext
296cdf0e10cSrcweir {
297cdf0e10cSrcweir private:
298cdf0e10cSrcweir 	::com::sun::star::awt::Point maStart;
299cdf0e10cSrcweir 	::com::sun::star::awt::Point maEnd;
300cdf0e10cSrcweir 
301cdf0e10cSrcweir 	sal_uInt16		mnType;
302cdf0e10cSrcweir 
303cdf0e10cSrcweir 	rtl::OUString	maStartShapeId;
304cdf0e10cSrcweir 	sal_Int32		mnStartGlueId;
305cdf0e10cSrcweir 	rtl::OUString	maEndShapeId;
306cdf0e10cSrcweir 	sal_Int32		mnEndGlueId;
307cdf0e10cSrcweir 
308cdf0e10cSrcweir 	sal_Int32	mnDelta1;
309cdf0e10cSrcweir 	sal_Int32	mnDelta2;
310cdf0e10cSrcweir 	sal_Int32	mnDelta3;
311cdf0e10cSrcweir 
312cdf0e10cSrcweir 	com::sun::star::uno::Any maPath;
313cdf0e10cSrcweir 
314cdf0e10cSrcweir public:
315cdf0e10cSrcweir 	TYPEINFO();
316cdf0e10cSrcweir 
317cdf0e10cSrcweir 	SdXMLConnectorShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
318cdf0e10cSrcweir 		const rtl::OUString& rLocalName,
319cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
320cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
321cdf0e10cSrcweir         sal_Bool bTemporaryShape);
322cdf0e10cSrcweir 	virtual ~SdXMLConnectorShapeContext();
323cdf0e10cSrcweir 	virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList);
324cdf0e10cSrcweir 
325cdf0e10cSrcweir 	// this is called from the parent group for each unparsed attribute in the attribute list
326cdf0e10cSrcweir 	virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
327cdf0e10cSrcweir };
328cdf0e10cSrcweir 
329cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
330cdf0e10cSrcweir // draw:measure context
331cdf0e10cSrcweir 
332cdf0e10cSrcweir class SdXMLMeasureShapeContext : public SdXMLShapeContext
333cdf0e10cSrcweir {
334cdf0e10cSrcweir private:
335cdf0e10cSrcweir 	::com::sun::star::awt::Point maStart;
336cdf0e10cSrcweir 	::com::sun::star::awt::Point maEnd;
337cdf0e10cSrcweir 
338cdf0e10cSrcweir public:
339cdf0e10cSrcweir 	TYPEINFO();
340cdf0e10cSrcweir 
341cdf0e10cSrcweir 	SdXMLMeasureShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
342cdf0e10cSrcweir 		const rtl::OUString& rLocalName,
343cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
344cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
345cdf0e10cSrcweir         sal_Bool bTemporaryShape);
346cdf0e10cSrcweir 	virtual ~SdXMLMeasureShapeContext();
347cdf0e10cSrcweir 	virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList);
348cdf0e10cSrcweir 	virtual void EndElement();
349cdf0e10cSrcweir 
350cdf0e10cSrcweir 	// this is called from the parent group for each unparsed attribute in the attribute list
351cdf0e10cSrcweir 	virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
352cdf0e10cSrcweir };
353cdf0e10cSrcweir 
354cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
355cdf0e10cSrcweir // draw:page context
356cdf0e10cSrcweir 
357cdf0e10cSrcweir class SdXMLPageShapeContext : public SdXMLShapeContext
358cdf0e10cSrcweir {
359cdf0e10cSrcweir private:
360cdf0e10cSrcweir 	sal_Int32	mnPageNumber;
361cdf0e10cSrcweir public:
362cdf0e10cSrcweir 	TYPEINFO();
363cdf0e10cSrcweir 
364cdf0e10cSrcweir 	SdXMLPageShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
365cdf0e10cSrcweir 		const rtl::OUString& rLocalName,
366cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
367cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
368cdf0e10cSrcweir         sal_Bool bTemporaryShape);
369cdf0e10cSrcweir 	virtual ~SdXMLPageShapeContext();
370cdf0e10cSrcweir 	virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList);
371cdf0e10cSrcweir 
372cdf0e10cSrcweir 	// this is called from the parent group for each unparsed attribute in the attribute list
373cdf0e10cSrcweir 	virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
374cdf0e10cSrcweir };
375cdf0e10cSrcweir 
376cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
377cdf0e10cSrcweir // draw:caption context
378cdf0e10cSrcweir 
379cdf0e10cSrcweir class SdXMLCaptionShapeContext : public SdXMLShapeContext
380cdf0e10cSrcweir {
381cdf0e10cSrcweir private:
382cdf0e10cSrcweir 	com::sun::star::awt::Point maCaptionPoint;
383cdf0e10cSrcweir 	sal_Int32 mnRadius;
384cdf0e10cSrcweir 
385cdf0e10cSrcweir public:
386cdf0e10cSrcweir 	TYPEINFO();
387cdf0e10cSrcweir 
388cdf0e10cSrcweir 	SdXMLCaptionShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
389cdf0e10cSrcweir 		const rtl::OUString& rLocalName,
390cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
391cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
392cdf0e10cSrcweir         sal_Bool bTemporaryShape);
393cdf0e10cSrcweir 	virtual ~SdXMLCaptionShapeContext();
394cdf0e10cSrcweir 	virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList);
395cdf0e10cSrcweir 
396cdf0e10cSrcweir 	// this is called from the parent group for each unparsed attribute in the attribute list
397cdf0e10cSrcweir 	virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
398cdf0e10cSrcweir };
399cdf0e10cSrcweir 
400cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
401cdf0e10cSrcweir // office:image context
402cdf0e10cSrcweir 
403cdf0e10cSrcweir class SdXMLGraphicObjectShapeContext : public SdXMLShapeContext
404cdf0e10cSrcweir {
405cdf0e10cSrcweir private:
406cdf0e10cSrcweir 	::rtl::OUString maURL;
407cdf0e10cSrcweir 	::com::sun::star::uno::Reference < ::com::sun::star::io::XOutputStream > mxBase64Stream;
408cdf0e10cSrcweir 
409598d8f9fSArmin Le Grand     /// bitfield
410598d8f9fSArmin Le Grand     bool                mbLateAddToIdentifierMapper : 1;
411598d8f9fSArmin Le Grand 
412cdf0e10cSrcweir public:
413cdf0e10cSrcweir 	TYPEINFO();
414cdf0e10cSrcweir 
415cdf0e10cSrcweir 	SdXMLGraphicObjectShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
416cdf0e10cSrcweir 		const rtl::OUString& rLocalName,
417cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
418cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
419cdf0e10cSrcweir         sal_Bool bTemporaryShape);
420cdf0e10cSrcweir 	virtual ~SdXMLGraphicObjectShapeContext();
421cdf0e10cSrcweir 
422cdf0e10cSrcweir 	virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
423cdf0e10cSrcweir 	virtual void EndElement();
424cdf0e10cSrcweir 	virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName,
425cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList );
426cdf0e10cSrcweir 
427cdf0e10cSrcweir 	// this is called from the parent group for each unparsed attribute in the attribute list
428cdf0e10cSrcweir 	virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
429598d8f9fSArmin Le Grand 
430598d8f9fSArmin Le Grand     /// support for LateAddToIdentifierMapper
431598d8f9fSArmin Le Grand     bool getLateAddToIdentifierMapper() const { return mbLateAddToIdentifierMapper; }
432598d8f9fSArmin Le Grand     void setLateAddToIdentifierMapper(bool bNew) { mbLateAddToIdentifierMapper = bNew; }
433cdf0e10cSrcweir };
434cdf0e10cSrcweir 
435cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
436cdf0e10cSrcweir // chart:chart context
437cdf0e10cSrcweir 
438cdf0e10cSrcweir class SdXMLChartShapeContext : public SdXMLShapeContext
439cdf0e10cSrcweir {
440cdf0e10cSrcweir 	SvXMLImportContext*			mpChartContext;
441cdf0e10cSrcweir 
442cdf0e10cSrcweir public:
443cdf0e10cSrcweir 	TYPEINFO();
444cdf0e10cSrcweir 
445cdf0e10cSrcweir 	SdXMLChartShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
446cdf0e10cSrcweir 		const rtl::OUString& rLocalName,
447cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
448cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
449cdf0e10cSrcweir         sal_Bool bTemporaryShape);
450cdf0e10cSrcweir 	virtual ~SdXMLChartShapeContext();
451cdf0e10cSrcweir 
452cdf0e10cSrcweir 	virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
453cdf0e10cSrcweir 	virtual void EndElement();
454cdf0e10cSrcweir 	virtual void Characters( const ::rtl::OUString& rChars );
455cdf0e10cSrcweir 	virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName,
456cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList );
457cdf0e10cSrcweir };
458cdf0e10cSrcweir 
459cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
460cdf0e10cSrcweir // draw:object and draw:object_ole context
461cdf0e10cSrcweir 
462cdf0e10cSrcweir class SdXMLObjectShapeContext : public SdXMLShapeContext
463cdf0e10cSrcweir {
464cdf0e10cSrcweir private:
465cdf0e10cSrcweir 	rtl::OUString maCLSID;
466cdf0e10cSrcweir 	rtl::OUString maHref;
467cdf0e10cSrcweir 
468cdf0e10cSrcweir 	// #100592#
469cdf0e10cSrcweir 	::com::sun::star::uno::Reference < ::com::sun::star::io::XOutputStream > mxBase64Stream;
470cdf0e10cSrcweir 
471cdf0e10cSrcweir public:
472cdf0e10cSrcweir 	TYPEINFO();
473cdf0e10cSrcweir 
474cdf0e10cSrcweir 	SdXMLObjectShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
475cdf0e10cSrcweir 		const rtl::OUString& rLocalName,
476cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
477cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
478cdf0e10cSrcweir         sal_Bool bTemporaryShape);
479cdf0e10cSrcweir 	virtual ~SdXMLObjectShapeContext();
480cdf0e10cSrcweir 
481cdf0e10cSrcweir 	virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
482cdf0e10cSrcweir 	virtual void EndElement();
483cdf0e10cSrcweir 
484cdf0e10cSrcweir 	// #100592#
485cdf0e10cSrcweir 	virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName,
486cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList );
487cdf0e10cSrcweir 
488cdf0e10cSrcweir 	// this is called from the parent group for each unparsed attribute in the attribute list
489cdf0e10cSrcweir 	virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
490cdf0e10cSrcweir };
491cdf0e10cSrcweir 
492cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
493cdf0e10cSrcweir // draw:applet
494cdf0e10cSrcweir 
495cdf0e10cSrcweir class SdXMLAppletShapeContext : public SdXMLShapeContext
496cdf0e10cSrcweir {
497cdf0e10cSrcweir private:
498cdf0e10cSrcweir 	rtl::OUString maAppletName;
499cdf0e10cSrcweir 	rtl::OUString maAppletCode;
500cdf0e10cSrcweir 	rtl::OUString maHref;
501cdf0e10cSrcweir 	sal_Bool mbIsScript;
502cdf0e10cSrcweir 
503cdf0e10cSrcweir 	com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > maParams;
504cdf0e10cSrcweir 
505cdf0e10cSrcweir public:
506cdf0e10cSrcweir 	TYPEINFO();
507cdf0e10cSrcweir 
508cdf0e10cSrcweir 	SdXMLAppletShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
509cdf0e10cSrcweir 		const rtl::OUString& rLocalName,
510cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
511cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
512cdf0e10cSrcweir         sal_Bool bTemporaryShape);
513cdf0e10cSrcweir 	virtual ~SdXMLAppletShapeContext();
514cdf0e10cSrcweir 
515cdf0e10cSrcweir 	virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
516cdf0e10cSrcweir 	virtual void EndElement();
517cdf0e10cSrcweir 
518cdf0e10cSrcweir 	virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName,
519cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList );
520cdf0e10cSrcweir 
521cdf0e10cSrcweir 	// this is called from the parent group for each unparsed attribute in the attribute list
522cdf0e10cSrcweir 	virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
523cdf0e10cSrcweir };
524cdf0e10cSrcweir 
525cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
526cdf0e10cSrcweir // draw:plugin
527cdf0e10cSrcweir 
528cdf0e10cSrcweir class SdXMLPluginShapeContext : public SdXMLShapeContext
529cdf0e10cSrcweir {
530cdf0e10cSrcweir private:
531cdf0e10cSrcweir 	rtl::OUString 	maMimeType;
532cdf0e10cSrcweir 	rtl::OUString 	maHref;
533cdf0e10cSrcweir 	bool			mbMedia;
534cdf0e10cSrcweir 
535cdf0e10cSrcweir 	com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > maParams;
536cdf0e10cSrcweir 
537cdf0e10cSrcweir public:
538cdf0e10cSrcweir 	TYPEINFO();
539cdf0e10cSrcweir 
540cdf0e10cSrcweir 	SdXMLPluginShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
541cdf0e10cSrcweir 		const rtl::OUString& rLocalName,
542cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
543cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
544cdf0e10cSrcweir         sal_Bool bTemporaryShape);
545cdf0e10cSrcweir 	virtual ~SdXMLPluginShapeContext();
546cdf0e10cSrcweir 
547cdf0e10cSrcweir 	virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
548cdf0e10cSrcweir 	virtual void EndElement();
549cdf0e10cSrcweir 
550cdf0e10cSrcweir 	virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName,
551cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList );
552cdf0e10cSrcweir 
553cdf0e10cSrcweir 	// this is called from the parent group for each unparsed attribute in the attribute list
554cdf0e10cSrcweir 	virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
555cdf0e10cSrcweir };
556cdf0e10cSrcweir 
557cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
558cdf0e10cSrcweir // draw:floating-frame
559cdf0e10cSrcweir 
560cdf0e10cSrcweir class SdXMLFloatingFrameShapeContext : public SdXMLShapeContext
561cdf0e10cSrcweir {
562cdf0e10cSrcweir private:
563cdf0e10cSrcweir 	rtl::OUString maFrameName;
564cdf0e10cSrcweir 	rtl::OUString maHref;
565cdf0e10cSrcweir 
566cdf0e10cSrcweir public:
567cdf0e10cSrcweir 	TYPEINFO();
568cdf0e10cSrcweir 
569cdf0e10cSrcweir 	SdXMLFloatingFrameShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
570cdf0e10cSrcweir 		const rtl::OUString& rLocalName,
571cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
572cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
573cdf0e10cSrcweir         sal_Bool bTemporaryShape);
574cdf0e10cSrcweir 	virtual ~SdXMLFloatingFrameShapeContext();
575cdf0e10cSrcweir 
576cdf0e10cSrcweir 	virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
577cdf0e10cSrcweir 	virtual void EndElement();
578cdf0e10cSrcweir 
579cdf0e10cSrcweir 	// this is called from the parent group for each unparsed attribute in the attribute list
580cdf0e10cSrcweir 	virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
581cdf0e10cSrcweir };
582cdf0e10cSrcweir 
583cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
584cdf0e10cSrcweir // draw:-frame
585cdf0e10cSrcweir 
586ddde725dSArmin Le Grand class SdXMLFrameShapeContext : public SdXMLShapeContext, public multiImageImportHelper
587cdf0e10cSrcweir {
588cdf0e10cSrcweir private:
589cdf0e10cSrcweir 	sal_Bool mbSupportsReplacement;
590cdf0e10cSrcweir 	SvXMLImportContextRef mxImplContext;
591cdf0e10cSrcweir 	SvXMLImportContextRef mxReplImplContext;
592cdf0e10cSrcweir 
593ddde725dSArmin Le Grand protected:
594ddde725dSArmin Le Grand     /// helper to get the created xShape instance, needs to be overloaded
595ddde725dSArmin Le Grand     virtual rtl::OUString getGraphicURLFromImportContext(const SvXMLImportContext& rContext) const;
596ddde725dSArmin Le Grand     virtual void removeGraphicFromImportContext(const SvXMLImportContext& rContext) const;
597ddde725dSArmin Le Grand 
598cdf0e10cSrcweir public:
599cdf0e10cSrcweir 	TYPEINFO();
600cdf0e10cSrcweir 
601cdf0e10cSrcweir 	SdXMLFrameShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
602cdf0e10cSrcweir 		const rtl::OUString& rLocalName,
603cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
604cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
605cdf0e10cSrcweir         sal_Bool bTemporaryShape);
606cdf0e10cSrcweir 	virtual ~SdXMLFrameShapeContext();
607cdf0e10cSrcweir 
608cdf0e10cSrcweir 	virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName,
609cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList );
610cdf0e10cSrcweir 
611cdf0e10cSrcweir 	virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
612cdf0e10cSrcweir 	virtual void EndElement();
613cdf0e10cSrcweir 
614cdf0e10cSrcweir 	virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
615cdf0e10cSrcweir };
616cdf0e10cSrcweir 
617cdf0e10cSrcweir class SdXMLCustomShapeContext : public SdXMLShapeContext
618cdf0e10cSrcweir {
619cdf0e10cSrcweir 
620cdf0e10cSrcweir protected :
621cdf0e10cSrcweir 
622cdf0e10cSrcweir 	rtl::OUString maCustomShapeEngine;
623cdf0e10cSrcweir 	rtl::OUString maCustomShapeData;
624cdf0e10cSrcweir 
625cdf0e10cSrcweir 	std::vector< com::sun::star::beans::PropertyValue > maCustomShapeGeometry;
626cdf0e10cSrcweir 
627cdf0e10cSrcweir public:
628cdf0e10cSrcweir 
629cdf0e10cSrcweir 	TYPEINFO();
630cdf0e10cSrcweir 
631cdf0e10cSrcweir 	SdXMLCustomShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx, const rtl::OUString& rLocalName,
632cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
633cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
634cdf0e10cSrcweir         sal_Bool bTemporaryShape);
635cdf0e10cSrcweir 	virtual ~SdXMLCustomShapeContext();
636cdf0e10cSrcweir 
637cdf0e10cSrcweir 	virtual void StartElement( const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList );
638cdf0e10cSrcweir 	virtual void EndElement();
639cdf0e10cSrcweir 
640cdf0e10cSrcweir 	virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName,
641cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList );
642cdf0e10cSrcweir 
643cdf0e10cSrcweir 	// this is called from the parent group for each unparsed attribute in the attribute list
644cdf0e10cSrcweir 	virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
645cdf0e10cSrcweir };
646cdf0e10cSrcweir 
647cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
648cdf0e10cSrcweir // draw:table
649cdf0e10cSrcweir 
650cdf0e10cSrcweir class SdXMLTableShapeContext : public SdXMLShapeContext
651cdf0e10cSrcweir {
652cdf0e10cSrcweir public:
653cdf0e10cSrcweir 	TYPEINFO();
654cdf0e10cSrcweir 
655cdf0e10cSrcweir 	SdXMLTableShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
656cdf0e10cSrcweir 		const rtl::OUString& rLocalName,
657cdf0e10cSrcweir 		const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList,
658cdf0e10cSrcweir 		com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes );
659cdf0e10cSrcweir 	virtual ~SdXMLTableShapeContext();
660cdf0e10cSrcweir 
661cdf0e10cSrcweir 	virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
662cdf0e10cSrcweir 	virtual void EndElement();
663cdf0e10cSrcweir 
664cdf0e10cSrcweir 	virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList );
665cdf0e10cSrcweir 
666cdf0e10cSrcweir 	// this is called from the parent group for each unparsed attribute in the attribute list
667cdf0e10cSrcweir 	virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue );
668cdf0e10cSrcweir 
669cdf0e10cSrcweir private:
670cdf0e10cSrcweir 	SvXMLImportContextRef mxTableImportContext;
671cdf0e10cSrcweir 	rtl::OUString msTemplateStyleName;
672cdf0e10cSrcweir 	sal_Bool maTemplateStylesUsed[6];
673cdf0e10cSrcweir };
674cdf0e10cSrcweir 
675cdf0e10cSrcweir #endif	//  _XIMPSHAPE_HXX
676