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