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