update dev300-m58
[ooovba.git] / writerfilter / source / dmapper / GraphicImport.cxx
blobc234d698f94f270ee3b6949994e74d1560d3b681
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: GraphicImport.cxx,v $
11 * $Revision: 1.14 $
13 * This file is part of OpenOffice.org.
15 * OpenOffice.org is free software: you can redistribute it and/or modify
16 * it under the terms of the GNU Lesser General Public License version 3
17 * only, as published by the Free Software Foundation.
19 * OpenOffice.org is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU Lesser General Public License version 3 for more details
23 * (a copy is included in the LICENSE file that accompanied this code).
25 * You should have received a copy of the GNU Lesser General Public License
26 * version 3 along with OpenOffice.org. If not, see
27 * <http://www.openoffice.org/license.html>
28 * for a copy of the LGPLv3 License.
30 ************************************************************************/
32 #include <GraphicImport.hxx>
33 #include <dmapper/DomainMapper.hxx>
34 #include <PropertyMap.hxx>
35 #include <doctok/resourceids.hxx>
36 #include <ooxml/resourceids.hxx>
37 #include <ConversionHelper.hxx>
38 #include <com/sun/star/uno/XComponentContext.hpp>
39 #include <com/sun/star/io/XInputStream.hpp>
40 #include <cppuhelper/implbase1.hxx>
41 #include <com/sun/star/awt/Size.hpp>
42 #include <com/sun/star/container/XNamed.hpp>
43 #include <com/sun/star/drawing/ColorMode.hpp>
45 #include <com/sun/star/graphic/XGraphicProvider.hpp>
46 #include <com/sun/star/graphic/XGraphic.hpp>
47 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
48 #include <com/sun/star/table/BorderLine.hpp>
49 #include <com/sun/star/text/GraphicCrop.hpp>
50 #include <com/sun/star/text/XTextContent.hpp>
51 #include <com/sun/star/text/TextContentAnchorType.hpp>
52 #include <com/sun/star/text/HoriOrientation.hpp>
53 #include <com/sun/star/text/RelOrientation.hpp>
54 #include <com/sun/star/text/VertOrientation.hpp>
55 #include <com/sun/star/text/WrapTextMode.hpp>
56 #include <com/sun/star/drawing/XShape.hpp>
57 #include <rtl/ustrbuf.hxx>
60 #include <iostream>
61 #include <resourcemodel/QNameToString.hxx>
62 #include <string.h>
64 #ifdef DEBUG_DOMAINMAPPER
65 #include <resourcemodel/TagLogger.hxx>
66 #endif
68 namespace writerfilter {
69 namespace dmapper
71 using namespace ::std;
72 using namespace ::com::sun::star;
74 #ifdef DEBUG_DOMAINMAPPER
75 extern TagLogger::Pointer_t dmapper_logger;
76 #endif
78 class XInputStreamHelper : public cppu::WeakImplHelper1
79 < io::XInputStream >
81 const sal_uInt8* m_pBuffer;
82 const sal_Int32 m_nLength;
83 sal_Int32 m_nPosition;
84 bool m_bBmp;
86 const sal_uInt8* m_pBMPHeader; //default BMP-header
87 sal_Int32 m_nHeaderLength;
88 public:
89 XInputStreamHelper(const sal_uInt8* buf, size_t len, bool bBmp);
90 ~XInputStreamHelper();
92 virtual ::sal_Int32 SAL_CALL readBytes( uno::Sequence< ::sal_Int8 >& aData, ::sal_Int32 nBytesToRead ) throw (io::NotConnectedException, io::BufferSizeExceededException, io::IOException, uno::RuntimeException);
93 virtual ::sal_Int32 SAL_CALL readSomeBytes( uno::Sequence< ::sal_Int8 >& aData, ::sal_Int32 nMaxBytesToRead ) throw (io::NotConnectedException, io::BufferSizeExceededException, io::IOException, uno::RuntimeException);
94 virtual void SAL_CALL skipBytes( ::sal_Int32 nBytesToSkip ) throw (io::NotConnectedException, io::BufferSizeExceededException, io::IOException, uno::RuntimeException);
95 virtual ::sal_Int32 SAL_CALL available( ) throw (io::NotConnectedException, io::IOException, uno::RuntimeException);
96 virtual void SAL_CALL closeInput( ) throw (io::NotConnectedException, io::IOException, uno::RuntimeException);
98 /*-- 01.11.2006 13:56:20---------------------------------------------------
100 -----------------------------------------------------------------------*/
101 XInputStreamHelper::XInputStreamHelper(const sal_uInt8* buf, size_t len, bool bBmp) :
102 m_pBuffer( buf ),
103 m_nLength( len ),
104 m_nPosition( 0 ),
105 m_bBmp( bBmp )
107 static const sal_uInt8 aHeader[] =
108 {0x42, 0x4d, 0xe6, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 };
109 m_pBMPHeader = aHeader;
110 m_nHeaderLength = m_bBmp ? sizeof( aHeader ) / sizeof(sal_uInt8) : 0;
113 /*-- 01.11.2006 13:56:20---------------------------------------------------
115 -----------------------------------------------------------------------*/
116 XInputStreamHelper::~XInputStreamHelper()
119 /*-- 01.11.2006 13:56:21---------------------------------------------------
121 -----------------------------------------------------------------------*/
122 ::sal_Int32 XInputStreamHelper::readBytes( uno::Sequence< ::sal_Int8 >& aData, ::sal_Int32 nBytesToRead )
123 throw (io::NotConnectedException, io::BufferSizeExceededException, io::IOException, uno::RuntimeException)
125 return readSomeBytes( aData, nBytesToRead );
127 /*-- 01.11.2006 13:56:21---------------------------------------------------
129 -----------------------------------------------------------------------*/
130 ::sal_Int32 XInputStreamHelper::readSomeBytes( uno::Sequence< ::sal_Int8 >& aData, ::sal_Int32 nMaxBytesToRead )
131 throw (io::NotConnectedException, io::BufferSizeExceededException, io::IOException, uno::RuntimeException)
133 sal_Int32 nRet = 0;
134 if( nMaxBytesToRead > 0 )
136 if( nMaxBytesToRead > (m_nLength + m_nHeaderLength) - m_nPosition )
137 nRet = (m_nLength + m_nHeaderLength) - m_nPosition;
138 else
139 nRet = nMaxBytesToRead;
140 aData.realloc( nRet );
141 sal_Int8* pData = aData.getArray();
142 sal_Int32 nHeaderRead = 0;
143 if( m_nPosition < m_nHeaderLength)
145 //copy header content first
146 nHeaderRead = m_nHeaderLength - m_nPosition;
147 memcpy( pData, m_pBMPHeader + (m_nPosition ), nHeaderRead );
148 nRet -= nHeaderRead;
149 m_nPosition += nHeaderRead;
151 if( nRet )
153 memcpy( pData + nHeaderRead, m_pBuffer + (m_nPosition - m_nHeaderLength), nRet );
154 m_nPosition += nRet;
157 return nRet;
159 /*-- 01.11.2006 13:56:21---------------------------------------------------
161 -----------------------------------------------------------------------*/
162 void XInputStreamHelper::skipBytes( ::sal_Int32 nBytesToSkip ) throw (io::NotConnectedException, io::BufferSizeExceededException, io::IOException, uno::RuntimeException)
164 if( nBytesToSkip < 0 || m_nPosition + nBytesToSkip > (m_nLength + m_nHeaderLength))
165 throw io::BufferSizeExceededException();
166 m_nPosition += nBytesToSkip;
168 /*-- 01.11.2006 13:56:22---------------------------------------------------
170 -----------------------------------------------------------------------*/
171 ::sal_Int32 XInputStreamHelper::available( ) throw (io::NotConnectedException, io::IOException, uno::RuntimeException)
173 return ( m_nLength + m_nHeaderLength ) - m_nPosition;
175 /*-- 01.11.2006 13:56:22---------------------------------------------------
177 -----------------------------------------------------------------------*/
178 void XInputStreamHelper::closeInput( ) throw (io::NotConnectedException, io::IOException, uno::RuntimeException)
181 /*-- 02.11.2006 09:34:29---------------------------------------------------
183 -----------------------------------------------------------------------*/
184 struct GraphicBorderLine
186 sal_Int32 nLineWidth;
187 // sal_Int32 nLineType;
188 sal_Int32 nLineColor;
189 sal_Int32 nLineDistance;
190 bool bHasShadow;
192 GraphicBorderLine() :
193 nLineWidth(0)
194 // ,nLineType(0)
195 ,nLineColor(0)
196 ,nLineDistance(0)
197 ,bHasShadow(false)
202 class GraphicImport_Impl
204 private:
205 sal_Int32 nXSize;
206 bool bXSizeValid;
207 sal_Int32 nYSize;
208 bool bYSizeValid;
210 public:
211 GraphicImportType eGraphicImportType;
212 DomainMapper& rDomainMapper;
214 sal_Int32 nHoriScaling;
215 sal_Int32 nVertScaling;
216 sal_Int32 nLeftPosition;
217 sal_Int32 nTopPosition;
218 sal_Int32 nRightPosition;
219 sal_Int32 nBottomPosition;
220 sal_Int32 nLeftCrop;
221 sal_Int32 nTopCrop;
222 sal_Int32 nRightCrop;
223 sal_Int32 nBottomCrop;
225 bool bUseSimplePos;
227 sal_Int16 nHoriOrient;
228 sal_Int16 nHoriRelation;
229 bool bPageToggle;
230 sal_Int16 nVertOrient;
231 sal_Int16 nVertRelation;
232 sal_Int32 nWrap;
233 bool bOpaque;
234 bool bContour;
235 bool bIgnoreWRK;
237 sal_Int32 nLeftMargin;
238 sal_Int32 nRightMargin;
239 sal_Int32 nTopMargin;
240 sal_Int32 nBottomMargin;
242 sal_Int32 nContrast;
243 sal_Int32 nBrightness;
244 double fGamma;
246 sal_Int32 nFillColor;
248 drawing::ColorMode eColorMode;
250 GraphicBorderLine aBorders[4];
251 sal_Int32 nCurrentBorderLine;
253 sal_Int32 nDffType;
254 bool bIsGraphic;
255 bool bIsBitmap;
256 bool bIsTiff;
257 sal_Int32 nBitsPerPixel;
259 bool bHoriFlip;
260 bool bVertFlip;
262 bool bSizeProtected;
263 bool bPositionProtected;
265 bool bInShapeOptionMode;
266 sal_Int32 nShapeOptionType;
268 ::rtl::OUString sName;
269 ::rtl::OUString sAlternativeText;
271 GraphicImport_Impl(GraphicImportType eImportType, DomainMapper& rDMapper) :
272 nXSize(0)
273 ,bXSizeValid(false)
274 ,nYSize(0)
275 ,bYSizeValid(false)
276 ,eGraphicImportType( eImportType )
277 ,rDomainMapper( rDMapper )
278 ,nHoriScaling(0)
279 ,nVertScaling(0)
280 ,nLeftPosition(0)
281 ,nTopPosition(0)
282 ,nRightPosition(0)
283 ,nBottomPosition(0)
284 ,nLeftCrop(0)
285 ,nTopCrop (0)
286 ,nRightCrop (0)
287 ,nBottomCrop(0)
288 ,bUseSimplePos(false)
289 ,nHoriOrient( text::HoriOrientation::NONE )
290 ,nHoriRelation( text::RelOrientation::FRAME )
291 ,bPageToggle( false )
292 ,nVertOrient( text::VertOrientation::NONE )
293 ,nVertRelation( text::RelOrientation::FRAME )
294 ,nWrap(0)
295 ,bOpaque( true )
296 ,bContour(false)
297 ,bIgnoreWRK(true)
298 ,nLeftMargin(319)
299 ,nRightMargin(319)
300 ,nTopMargin(0)
301 ,nBottomMargin(0)
302 ,nContrast(0)
303 ,nBrightness(0)
304 ,fGamma( -1.0 )
305 ,nFillColor( 0xffffffff )
306 ,eColorMode( drawing::ColorMode_STANDARD )
307 ,nCurrentBorderLine(BORDER_TOP)
308 ,nDffType( 0 )
309 ,bIsGraphic(false)
310 ,bIsBitmap(false)
311 ,bIsTiff(false)
312 ,nBitsPerPixel(0)
313 ,bHoriFlip(false)
314 ,bVertFlip(false)
315 ,bSizeProtected(false)
316 ,bPositionProtected(false)
317 ,bInShapeOptionMode(false)
320 void setXSize(sal_Int32 _nXSize)
322 nXSize = _nXSize;
323 bXSizeValid = true;
326 sal_uInt32 getXSize() const
328 return nXSize;
331 bool isXSizeValid() const
333 return bXSizeValid;
336 void setYSize(sal_Int32 _nYSize)
338 nYSize = _nYSize;
339 bYSizeValid = true;
342 sal_uInt32 getYSize() const
344 return nYSize;
347 bool isYSizeValis () const
349 return bYSizeValid;
352 /*-- 01.11.2006 09:42:42---------------------------------------------------
354 -----------------------------------------------------------------------*/
355 GraphicImport::GraphicImport(uno::Reference < uno::XComponentContext > xComponentContext,
356 uno::Reference< lang::XMultiServiceFactory > xTextFactory,
357 DomainMapper& rDMapper,
358 GraphicImportType eImportType )
359 : m_pImpl( new GraphicImport_Impl( eImportType, rDMapper ))
360 ,m_xComponentContext( xComponentContext )
361 ,m_xTextFactory( xTextFactory)
364 /*-- 01.11.2006 09:42:42---------------------------------------------------
366 -----------------------------------------------------------------------*/
367 GraphicImport::~GraphicImport()
369 delete m_pImpl;
371 /*-- 01.11.2006 09:45:01---------------------------------------------------
373 -----------------------------------------------------------------------*/
374 void GraphicImport::attribute(Id nName, Value & val)
376 #ifdef DEBUG_DOMAINMAPPER
377 dmapper_logger->startElement("attribute");
378 dmapper_logger->attribute("name", (*QNameToString::Instance())(nName));
379 #endif
380 sal_Int32 nIntValue = val.getInt();
381 /* WRITERFILTERSTATUS: table: PICFattribute */
382 switch( nName )
384 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
385 case NS_rtf::LN_LCB: break;//byte count
386 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
387 case NS_rtf::LN_CBHEADER: break;//ignored
388 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
389 case NS_rtf::LN_MFP: //MetafilePict
390 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
391 case NS_rtf::LN_DffRecord: //dff record - expands to an sprm which expands to ...
392 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
393 case NS_rtf::LN_shpopt: //shape options
394 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
395 case NS_rtf::LN_shpfbse: //BLIP store entry
396 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
397 case NS_rtf::LN_BRCTOP: //top border
398 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
399 case NS_rtf::LN_BRCLEFT: //left border
400 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
401 case NS_rtf::LN_BRCBOTTOM: //bottom border
402 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
403 case NS_rtf::LN_BRCRIGHT: //right border
404 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
405 case NS_rtf::LN_shape: //shape
406 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
407 case NS_rtf::LN_blip: //the binary graphic data in a shape
409 switch(nName)
411 case NS_rtf::LN_BRCTOP: //top border
412 m_pImpl->nCurrentBorderLine = BORDER_TOP;
413 break;
414 case NS_rtf::LN_BRCLEFT: //left border
415 m_pImpl->nCurrentBorderLine = BORDER_LEFT;
416 break;
417 case NS_rtf::LN_BRCBOTTOM: //bottom border
418 m_pImpl->nCurrentBorderLine = BORDER_BOTTOM;
419 break;
420 case NS_rtf::LN_BRCRIGHT: //right border
421 m_pImpl->nCurrentBorderLine = BORDER_RIGHT;
422 break;
423 case NS_rtf::LN_shpopt:
424 m_pImpl->bInShapeOptionMode = true;
425 break;
426 default:;
428 writerfilter::Reference<Properties>::Pointer_t pProperties = val.getProperties();
429 if( pProperties.get())
431 pProperties->resolve(*this);
433 switch(nName)
435 case NS_rtf::LN_shpopt:
436 m_pImpl->bInShapeOptionMode = false;
437 break;
438 default:;
441 break;
442 case NS_rtf::LN_payload :
444 writerfilter::Reference<BinaryObj>::Pointer_t pPictureData = val.getBinary();
445 if( pPictureData.get())
446 pPictureData->resolve(*this);
448 break;
449 /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
450 case NS_rtf::LN_BM_RCWINMF: //windows bitmap structure - if it's a bitmap
451 break;
452 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
453 case NS_rtf::LN_DXAGOAL: //x-size in twip
454 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
455 case NS_rtf::LN_DYAGOAL: //y-size in twip
456 break;
457 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
458 case NS_rtf::LN_MX: m_pImpl->nHoriScaling = nIntValue; break;// hori scaling in 0.001%
459 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
460 case NS_rtf::LN_MY: m_pImpl->nVertScaling = nIntValue; break;// vert scaling in 0.001%
461 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
462 case NS_rtf::LN_DXACROPLEFT: m_pImpl->nLeftCrop = ConversionHelper::convertTwipToMM100(nIntValue); break;// left crop in twips
463 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
464 case NS_rtf::LN_DYACROPTOP: m_pImpl->nTopCrop = ConversionHelper::convertTwipToMM100(nIntValue); break;// top crop in twips
465 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
466 case NS_rtf::LN_DXACROPRIGHT: m_pImpl->nRightCrop = ConversionHelper::convertTwipToMM100(nIntValue); break;// right crop in twips
467 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
468 case NS_rtf::LN_DYACROPBOTTOM: m_pImpl->nBottomCrop = ConversionHelper::convertTwipToMM100(nIntValue); break;// bottom crop in twips
469 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
470 case NS_rtf::LN_BRCL: break;//border type - legacy -
471 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
472 case NS_rtf::LN_FFRAMEEMPTY: break;// picture consists of a single frame
473 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
474 case NS_rtf::LN_FBITMAP:
475 m_pImpl->bIsBitmap = nIntValue > 0 ? true : false;
476 break;//1 if it's a bitmap ???
477 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
478 case NS_rtf::LN_FDRAWHATCH: break;//1 if it's an active OLE object
479 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
480 case NS_rtf::LN_FERROR: break;// 1 if picture is an error message
481 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
482 case NS_rtf::LN_BPP: m_pImpl->nBitsPerPixel = nIntValue; break;//bits per pixel 0 - unknown, 1- mono, 4 - VGA
484 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
485 case NS_rtf::LN_DXAORIGIN: //horizontal offset of hand annotation origin
486 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
487 case NS_rtf::LN_DYAORIGIN: //vertical offset of hand annotation origin
488 break;
489 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
490 case NS_rtf::LN_CPROPS:break;// unknown - ignored
491 //metafilepict
492 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
493 case NS_rtf::LN_MM:
494 // according to the documentation 99 or 98 are provided - but they are not!
495 // m_pImpl->bIsBitmap = 99 == nIntValue ? true : false;
496 // m_pImpl->bIsTiff = 98 == nIntValue ? true : false;
498 break; //mapmode
499 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
500 case NS_rtf::LN_XEXT:
501 m_pImpl->setXSize(nIntValue);
502 break; // x-size
503 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
504 case NS_rtf::LN_YEXT:
505 m_pImpl->setYSize(nIntValue);
506 break; // y-size
507 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
508 case NS_rtf::LN_HMF: break; //identifier - ignored
510 //sprm 0xf004 and 0xf008, 0xf00b
511 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
512 case NS_rtf::LN_dfftype://
513 m_pImpl->nDffType = nIntValue;
514 break;
515 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
516 case NS_rtf::LN_dffinstance:
517 //todo: does this still work for PICF?
518 //in case of LN_dfftype == 0xf01f the instance contains the bitmap type:
519 if(m_pImpl->nDffType == 0xf01f)
520 switch( nIntValue )
522 case 0x216 : // Metafile header then compressed WMF
524 case 0x3D4 : // Metafile header then compressed EMF
526 case 0x542 : // Metafile hd. then compressed PICT
530 // rBLIPStream.SeekRel( nSkip + 20 );
531 // // read in size of metafile in EMUS
532 // rBLIPStream >> aMtfSize100.Width() >> aMtfSize100.Height();
533 // // scale to 1/100mm
534 // aMtfSize100.Width() /= 360, aMtfSize100.Height() /= 360;
535 // if ( pVisArea ) // seem that we currently are skipping the visarea position
536 // *pVisArea = Rectangle( Point(), aMtfSize100 );
537 // // skip rest of header
538 // nSkip = 6;
539 // bMtfBLIP = bZCodecCompression = TRUE;
542 break;
544 case 0x46A : break;// One byte tag then JPEG (= JFIF) data
546 case 0x6E0 : break;// One byte tag then PNG data
548 case 0x7A8 : m_pImpl->bIsBitmap = true;
549 // nSkip += 1; // One byte tag then DIB data
550 break;
553 break;
554 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
555 case NS_rtf::LN_dffversion:// ignored
556 break;
558 //sprm 0xf008
559 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
560 case NS_rtf::LN_shptype: break;
561 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
562 case NS_rtf::LN_shpid: break;
563 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
564 case NS_rtf::LN_shpfGroup: break;// This shape is a group shape
565 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
566 case NS_rtf::LN_shpfChild: break;// Not a top-level shape
567 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
568 case NS_rtf::LN_shpfPatriarch: break;// This is the topmost group shape. Exactly one of these per drawing.
569 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
570 case NS_rtf::LN_shpfDeleted: break;// The shape has been deleted
571 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
572 case NS_rtf::LN_shpfOleShape: break;// The shape is an OLE object
573 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
574 case NS_rtf::LN_shpfHaveMaster: break;// Shape has a hspMaster property
575 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
576 case NS_rtf::LN_shpfFlipH: // Shape is flipped horizontally
577 m_pImpl->bHoriFlip = nIntValue ? true : false;
578 break;
579 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
580 case NS_rtf::LN_shpfFlipV: // Shape is flipped vertically
581 m_pImpl->bVertFlip = nIntValue ? true : false;
582 break;
583 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
584 case NS_rtf::LN_shpfConnector: break;// Connector type of shape
585 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
586 case NS_rtf::LN_shpfHaveAnchor: break;// Shape has an anchor of some kind
587 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
588 case NS_rtf::LN_shpfBackground: break;// Background shape
589 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
590 case NS_rtf::LN_shpfHaveSpt: break;// Shape has a shape type property
591 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
592 case NS_rtf::LN_shptypename: break;// shape type name
593 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
594 case NS_rtf::LN_shppid: m_pImpl->nShapeOptionType = nIntValue; break; //type of shape option
595 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
596 case NS_rtf::LN_shpfBid: break; //ignored
597 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
598 case NS_rtf::LN_shpfComplex:break;
599 /* WRITERFILTERSTATUS: done: 50, planned: 10, spent: 5 */
600 case NS_rtf::LN_shpop:
602 if(NS_dff::LN_shpwzDescription != sal::static_int_cast<Id>(m_pImpl->nShapeOptionType) )
603 ProcessShapeOptions( val );
605 break;
606 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
607 case NS_rtf::LN_shpname: break;
608 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
609 case NS_rtf::LN_shpvalue:
611 if( NS_dff::LN_shpwzDescription == sal::static_int_cast<Id>(m_pImpl->nShapeOptionType) )
612 ProcessShapeOptions( val );
614 break;
616 //BLIP store entry
617 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
618 case NS_rtf::LN_shpbtWin32: break;
619 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
620 case NS_rtf::LN_shpbtMacOS: break;
621 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
622 case NS_rtf::LN_shprgbUid: break;
623 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
624 case NS_rtf::LN_shptag: break;
625 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
626 case NS_rtf::LN_shpsize: break;
627 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
628 case NS_rtf::LN_shpcRef: break;
629 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
630 case NS_rtf::LN_shpfoDelay: break;
631 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
632 case NS_rtf::LN_shpusage: break;
633 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
634 case NS_rtf::LN_shpcbName: break;
635 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
636 case NS_rtf::LN_shpunused2: break;
637 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
638 case NS_rtf::LN_shpunused3: break;
640 //border properties
641 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
642 case NS_rtf::LN_shpblipbname : break;
644 /* WRITERFILTERSTATUS: done: 100, planned: 1, spent: 1 */
645 case NS_rtf::LN_DPTLINEWIDTH: // 0x1759
646 m_pImpl->aBorders[m_pImpl->nCurrentBorderLine].nLineWidth = nIntValue;
647 break;
648 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
649 case NS_rtf::LN_BRCTYPE: // 0x175a
650 //graphic borders don't support different line types
651 //m_pImpl->aBorders[m_pImpl->nCurrentBorderLine].nLineType = nIntValue;
652 break;
653 /* WRITERFILTERSTATUS: done: 100, planned: 1, spent: 1 */
654 case NS_rtf::LN_ICO: // 0x175b
655 m_pImpl->aBorders[m_pImpl->nCurrentBorderLine].nLineColor = ConversionHelper::ConvertColor( nIntValue );
656 break;
657 /* WRITERFILTERSTATUS: done: 100, planned: 1, spent: 1 */
658 case NS_rtf::LN_DPTSPACE: // 0x175c
659 m_pImpl->aBorders[m_pImpl->nCurrentBorderLine].nLineDistance = nIntValue;
660 break;
661 /* WRITERFILTERSTATUS: done: 0, planned: 1, spent: 0 */
662 case NS_rtf::LN_FSHADOW: // 0x175d
663 m_pImpl->aBorders[m_pImpl->nCurrentBorderLine].bHasShadow = nIntValue ? true : false;
664 break;
665 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
666 case NS_rtf::LN_FFRAME: // ignored
667 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
668 case NS_rtf::LN_UNUSED2_15: break;// ignored
670 // const QName_t LN_shpoptextraoffset = 20028;
671 // const QName_t LN_shptypename = 20029;
672 // const QName_t LN_shpblipbname = 20031;
673 // const QName_t LN_binary = 20032;
677 // case NS_rtf::LN_shpblipbname = 20031;
678 // case NS_rtf::LN_binary = 20032;
679 // case NS_rtf::LN_shpdgg = 10492;
680 // case NS_rtf::LN_shpfbse = 10493;
683 // case NS_rtf::LN_CPROPS: //unused
687 // case NS_rtf::LN_LINECOLOR = 10372;
688 // case NS_rtf::LN_LINEWIDTH = 10373;
689 // case NS_rtf::LN_LINETYPE = 10374;
691 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
692 case NS_rtf::LN_SPID: break;
693 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
694 case NS_rtf::LN_XALEFT: m_pImpl->nLeftPosition = ConversionHelper::convertTwipToMM100(nIntValue); break; //left position
695 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
696 case NS_rtf::LN_YATOP: m_pImpl->nTopPosition = ConversionHelper::convertTwipToMM100(nIntValue); break; //top position
697 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
698 case NS_rtf::LN_XARIGHT: m_pImpl->nRightPosition = ConversionHelper::convertTwipToMM100(nIntValue); break; //right position
699 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
700 case NS_rtf::LN_YABOTTOM: m_pImpl->nBottomPosition = ConversionHelper::convertTwipToMM100(nIntValue); break;//bottom position
701 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
702 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
703 case NS_rtf::LN_FHDR:
704 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
705 case NS_rtf::LN_XAlign:
707 static const SwHoriOrient aHoriOriTab[ nCntXAlign ] =
709 HORI_NONE, // From left position
710 HORI_LEFT, // left
711 HORI_CENTER, // centered
712 HORI_RIGHT, // right
713 // --> OD 2004-12-06 #i36649#
714 // - inside -> HORI_LEFT and outside -> HORI_RIGHT
715 HORI_LEFT, // inside
716 HORI_RIGHT // outside
718 if( nIntValue < 6 && nIntValue > 0 )
720 static const sal_Int16 aHoriOrientTab[ 6 ] =
722 text::HoriOrientation::NONE,
723 text::HoriOrientation::LEFT,
724 text::HoriOrientation::CENTER,
725 text::HoriOrientation::RIGHT,
726 text::HoriOrientation::INSIDE,
727 text::HoriOrientation::OUTSIDE
729 m_pImpl->nHoriOrient = aHoriOrientTab[nIntValue];
730 m_pImpl->bPageToggle = nIntValue > 3;
732 break;
733 case NS_rtf::LN_YAlign:
735 static const SwVertOrient aVertOriTab[ nCntYAlign ] =
737 VERT_NONE, // From Top position
738 VERT_TOP, // top
739 VERT_CENTER, // centered
740 VERT_BOTTOM, // bottom
741 VERT_LINE_TOP, // inside (obscure)
742 VERT_LINE_BOTTOM // outside (obscure)
744 // CMC,OD 24.11.2003 #i22673# - to-line vertical alignment
745 static const SwVertOrient aToLineVertOriTab[ nCntYAlign ] =
747 VERT_NONE, // below
748 VERT_LINE_BOTTOM, // top
749 VERT_LINE_CENTER, // centered
750 VERT_LINE_TOP, // bottom
751 VERT_LINE_BOTTOM, // inside (obscure)
752 VERT_LINE_TOP // outside (obscure)
754 if ( eVertRel == REL_VERT_LINE ) //m_pImpl->nVertRelation == text::RelOrientation::TEXT_LINE
756 eVertOri = aToLineVertOriTab[ nYAlign ];
758 else
760 eVertOri = aVertOriTab[ nYAlign ];
764 if( nIntValue < 6 && nIntValue > 0)
766 static const sal_Int16 aVertOrientTab[ 6 ] =
768 text::VertOrientation::NONE, // From Top position
769 text::VertOrientation::TOP, // top
770 text::VertOrientation::CENTER, // centered
771 text::VertOrientation::BOTTOM, // bottom
772 text::VertOrientation::LINE_TOP, // inside (obscure)
773 text::VertOrientation::LINE_BOTTOM // outside (obscure)
775 static const sal_Int16 aToLineVertOrientTab[ 6 ] =
777 text::VertOrientation::NONE, // below
778 text::VertOrientation::LINE_BOTTOM, // top
779 text::VertOrientation::LINE_CENTER, // centered
780 text::VertOrientation::LINE_TOP, // bottom
781 text::VertOrientation::LINE_BOTTOM, // inside (obscure)
782 text::VertOrientation::LINE_TOP // outside (obscure)
784 m_pImpl->nVertOrient = m_pImpl->nVertRelation == text::RelOrientation::TEXT_LINE ?
785 aToLineVertOrientTab[nIntValue] : aVertOrientTab[nIntValue];
787 break;
788 case NS_rtf::LN_LayoutInTableCell: break; //currently unknown
789 case NS_rtf::LN_XRelTo:
790 case NS_rtf::LN_BX: //hori orient relation
791 switch( nIntValue )
793 case 0: m_pImpl->nHoriRelation = text::RelOrientation::PAGE_PRINT_AREA; break;
794 case 1: m_pImpl->nHoriRelation = text::RelOrientation::PAGE_FRAME; break;
795 case 2: m_pImpl->nHoriRelation = text::RelOrientation::FRAME; break;
796 //case :
797 default:m_pImpl->nHoriRelation = text::RelOrientation::CHAR;
799 break;
800 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
801 case NS_rtf::LN_YRelTo:
802 case NS_rtf::LN_BY: //vert orient relation
803 switch( nIntValue )
805 case 0: m_pImpl->nVertRelation = text::RelOrientation::PAGE_PRINT_AREA; break;
806 case 1: m_pImpl->nVertRelation = text::RelOrientation::PAGE_FRAME; break;
807 case 2: m_pImpl->nVertRelation = text::RelOrientation::FRAME; break;
808 //case :
809 default:m_pImpl->nVertRelation = text::RelOrientation::TEXT_LINE;
812 break;
813 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
814 case NS_rtf::LN_WR: //wrapping
815 switch( nIntValue )
817 case 0: //0 like 2, but doesn't require absolute object
818 m_pImpl->bIgnoreWRK = false;
819 case 2: //2 wrap around absolute object
820 m_pImpl->nWrap = text::WrapTextMode_PARALLEL;
821 break;
822 case 1: //1 no text next to shape
823 m_pImpl->nWrap = text::WrapTextMode_NONE;
824 break;
825 case 3: //3 wrap as if no object present
826 m_pImpl->nWrap = text::WrapTextMode_THROUGHT;
827 break;
828 case 4: //4 wrap tightly around object
829 m_pImpl->bIgnoreWRK = false;
830 case 5: //5 wrap tightly, but allow holes
831 m_pImpl->nWrap = text::WrapTextMode_PARALLEL;
832 m_pImpl->bContour = true;
833 break;
834 default:;
836 break;
837 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
838 case NS_rtf::LN_WRK:
839 if( !m_pImpl->bIgnoreWRK )
840 switch( nIntValue )
842 case 0: //0 like 2, but doesn't require absolute object
843 case 2: //2 wrap around absolute object
844 m_pImpl->nWrap = text::WrapTextMode_PARALLEL;
845 break;
846 case 1: //1 no text next to shape
847 m_pImpl->nWrap = text::WrapTextMode_NONE;
848 break;
849 case 3: //3 wrap as if no object present
850 m_pImpl->nWrap = text::WrapTextMode_THROUGHT;
851 break;
852 case 4: //4 wrap tightly around object
853 case 5: //5 wrap tightly, but allow holes
854 m_pImpl->nWrap = text::WrapTextMode_PARALLEL;
855 m_pImpl->bContour = true;
856 break;
857 default:;
859 break;
860 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
861 case NS_rtf::LN_FRCASIMPLE:
862 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
863 case NS_rtf::LN_FBELOWTEXT:
864 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
865 case NS_rtf::LN_FANCHORLOCK:
866 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
867 case NS_rtf::LN_CTXBX:
868 // {
869 // sal_Int32 nValue1 = val.getInt();
870 // nValue1++;
871 // }
872 break;
873 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
874 case NS_rtf::LN_shptxt:
875 //todo: text content
876 break;
877 /* case NS_rtf::LN_CH = 10421;
878 case NS_rtf::LN_UNUSED0_5 = 10422;
879 case NS_rtf::LN_FLT = 10423;
880 case NS_rtf::LN_shpLeft = 10424;
881 case NS_rtf::LN_shpTop = 10425;
882 break;*/
883 case NS_rtf::LN_dffheader: break;
884 case NS_ooxml::LN_CT_PositiveSize2D_cx:// 90407;
885 case NS_ooxml::LN_CT_PositiveSize2D_cy:// 90408;
887 sal_Int32 nDim = ConversionHelper::convertEMUToMM100( nIntValue );
888 if( nName == NS_ooxml::LN_CT_PositiveSize2D_cx )
889 m_pImpl->setXSize(nDim);
890 else
891 m_pImpl->setYSize(nDim);
893 break;
894 case NS_ooxml::LN_CT_EffectExtent_l:// 90907;
895 case NS_ooxml::LN_CT_EffectExtent_t:// 90908;
896 case NS_ooxml::LN_CT_EffectExtent_r:// 90909;
897 case NS_ooxml::LN_CT_EffectExtent_b:// 90910;
898 //todo: extends the wrapping size of the object, e.g. if shadow is added
899 break;
900 case NS_ooxml::LN_CT_NonVisualDrawingProps_id:// 90650;
901 //id of the object - ignored
902 break;
903 case NS_ooxml::LN_CT_NonVisualDrawingProps_name:// 90651;
904 //name of the object
905 m_pImpl->sName = val.getString();
906 break;
907 case NS_ooxml::LN_CT_NonVisualDrawingProps_descr:// 90652;
908 //alternative text
909 m_pImpl->sAlternativeText = val.getString();
910 break;
911 case NS_ooxml::LN_CT_GraphicalObjectFrameLocking_noChangeAspect://90644;
912 //disallow aspect ratio change - ignored
913 break;
914 case NS_ooxml::LN_CT_GraphicalObjectFrameLocking_noMove:// 90645;
915 m_pImpl->bPositionProtected = true;
916 break;
917 case NS_ooxml::LN_CT_GraphicalObjectFrameLocking_noResize: // 90646;
918 m_pImpl->bSizeProtected = true;
919 break;
920 case NS_ooxml::LN_CT_Anchor_distT: // 90983;
921 case NS_ooxml::LN_CT_Anchor_distB: // 90984;
922 case NS_ooxml::LN_CT_Anchor_distL: // 90985;
923 case NS_ooxml::LN_CT_Anchor_distR: // 90986;
925 //redirect to shape option processing
926 switch( nName )
928 case NS_ooxml::LN_CT_Anchor_distT: // 90983;
929 m_pImpl->nShapeOptionType = NS_dff::LN_shpdyWrapDistTop;
930 break;
931 case NS_ooxml::LN_CT_Anchor_distB: // 90984;
932 m_pImpl->nShapeOptionType = NS_dff::LN_shpdyWrapDistBottom;
933 break;
934 case NS_ooxml::LN_CT_Anchor_distL: // 90985;
935 m_pImpl->nShapeOptionType = NS_dff::LN_shpdxWrapDistLeft;
936 break;
937 case NS_ooxml::LN_CT_Anchor_distR: // 90986;
938 m_pImpl->nShapeOptionType = NS_dff::LN_shpdxWrapDistRight;
939 break;
940 //m_pImpl->nShapeOptionType = NS_dff::LN_shpcropFromTop
941 default: ;
943 ProcessShapeOptions(val);
945 break;
946 case NS_ooxml::LN_CT_Anchor_simplePos_attr: // 90987;
947 m_pImpl->bUseSimplePos = nIntValue > 0;
948 break;
949 case NS_ooxml::LN_CT_Anchor_relativeHeight: // 90988;
950 //z-order
951 break;
952 case NS_ooxml::LN_CT_Anchor_behindDoc: // 90989; - in background
953 if( nIntValue > 0 )
954 m_pImpl->bOpaque = false;
955 break;
956 case NS_ooxml::LN_CT_Anchor_locked: // 90990; - ignored
957 case NS_ooxml::LN_CT_Anchor_layoutInCell: // 90991; - ignored
958 //true: inside cell, cell resizes, false: table is resized or relocated, object might be outside of the table
959 case NS_ooxml::LN_CT_Anchor_hidden: // 90992; - ignored
960 break;
961 case NS_ooxml::LN_CT_Anchor_allowOverlap: // 90993;
962 //enable overlapping - ignored
963 break;
964 case NS_ooxml::LN_CT_Point2D_x: // 90405;
965 case NS_ooxml::LN_CT_Point2D_y: // 90406;
966 if( m_pImpl->bUseSimplePos )
968 //todo: absolute positioning
969 NS_ooxml::LN_CT_Point2D_x == nName ? m_pImpl->nLeftPosition = ConversionHelper::convertTwipToMM100(nIntValue) :
970 m_pImpl->nTopPosition = ConversionHelper::convertTwipToMM100(nIntValue);
973 break;
974 case NS_ooxml::LN_CT_WrapTight_wrapText: // 90934;
975 m_pImpl->bContour = true;
976 //no break;
977 case NS_ooxml::LN_CT_WrapSquare_wrapText: //90928;
978 switch ( val.getInt() )
980 case NS_ooxml::LN_Value_wordprocessingDrawing_ST_WrapText_bothSides: // 90920;
981 m_pImpl->nWrap = text::WrapTextMode_PARALLEL;
982 break;
983 case NS_ooxml::LN_Value_wordprocessingDrawing_ST_WrapText_left: // 90921;
984 m_pImpl->nWrap = text::WrapTextMode_LEFT;
985 break;
986 case NS_ooxml::LN_Value_wordprocessingDrawing_ST_WrapText_right: // 90922;
987 m_pImpl->nWrap = text::WrapTextMode_RIGHT;
988 break;
989 case NS_ooxml::LN_Value_wordprocessingDrawing_ST_WrapText_largest: // 90923;
990 m_pImpl->nWrap = text::WrapTextMode_DYNAMIC;
991 break;
992 default:;
994 break;
995 case NS_ooxml::LN_shape:
996 /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
998 val.getAny() >>= m_xShape;
1000 if (m_xShape.is())
1002 uno::Reference< beans::XPropertySet > xShapeProps
1003 (m_xShape, uno::UNO_QUERY_THROW);
1005 PropertyNameSupplier& rPropNameSupplier =
1006 PropertyNameSupplier::GetPropertyNameSupplier();
1007 xShapeProps->setPropertyValue
1008 (rPropNameSupplier.GetName(PROP_ANCHOR_TYPE),
1009 uno::makeAny
1010 (text::TextContentAnchorType_AS_CHARACTER));
1011 xShapeProps->setPropertyValue
1012 (rPropNameSupplier.GetName(PROP_TEXT_RANGE),
1013 uno::makeAny
1014 (m_pImpl->rDomainMapper.GetCurrentTextRange()));
1016 awt::Point aPoint(m_xShape->getPosition());
1017 awt::Size aSize(m_xShape->getSize());
1019 if (m_pImpl->isXSizeValid())
1020 aSize.Width = m_pImpl->getXSize();
1021 if (m_pImpl->isYSizeValis())
1022 aSize.Height = m_pImpl->getYSize();
1024 m_xShape->setSize(aSize);
1026 m_pImpl->bIsGraphic = true;
1029 break;
1030 case NS_ooxml::LN_CT_Inline_distT:
1031 /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
1032 case NS_ooxml::LN_CT_Inline_distB:
1033 /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
1034 case NS_ooxml::LN_CT_Inline_distL:
1035 /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
1036 case NS_ooxml::LN_CT_Inline_distR:
1037 /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
1038 //TODO: need to be handled
1039 break;
1040 case NS_ooxml::LN_CT_GraphicalObjectData_uri:
1041 val.getString();
1042 //TODO: does it need to be handled?
1043 break;
1044 default:
1045 #if OSL_DEBUG_LEVEL > 0
1046 ::rtl::OString sMessage( "GraphicImport::attribute() - Id: ");
1047 sMessage += ::rtl::OString::valueOf( sal_Int32( nName ), 10 );
1048 sMessage += ::rtl::OString(" / 0x");
1049 sMessage += ::rtl::OString::valueOf( sal_Int32( nName ), 16 );
1050 OSL_ENSURE( false, sMessage.getStr())
1051 #endif
1054 #ifdef DEBUG_DOMAINMAPPER
1055 dmapper_logger->endElement("attribute");
1056 #endif
1059 uno::Reference<text::XTextContent> GraphicImport::GetGraphicObject()
1061 uno::Reference<text::XTextContent> xResult;
1063 if (m_xGraphicObject.is())
1064 xResult = m_xGraphicObject;
1065 else if (m_xShape.is())
1067 xResult.set(m_xShape, uno::UNO_QUERY_THROW);
1070 return xResult;
1073 /*-- 22.11.2006 09:46:48---------------------------------------------------
1075 -----------------------------------------------------------------------*/
1076 void GraphicImport::ProcessShapeOptions(Value& val)
1078 sal_Int32 nIntValue = val.getInt();
1079 sal_Int32 nTwipValue = ConversionHelper::convertTwipToMM100(nIntValue);
1080 /* WRITERFILTERSTATUS: table: ShapeOptionsAttribute */
1081 switch( m_pImpl->nShapeOptionType )
1083 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1084 // case NS_dff::LN_shprotation /*4*/: break;
1085 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1086 // case NS_dff::LN_shpfLockRotation /*119*/: break;
1087 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1088 // case NS_dff::LN_shpfLockAspectRatio /*120*/: break;
1089 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1090 // case NS_dff::LN_shpfLockPosition /*121*/: break;
1091 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1092 // case NS_dff::LN_shpfLockAgainstSelect /*122*/: break;
1093 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1094 // case NS_dff::LN_shpfLockCropping /*123*/: break;
1095 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1096 // case NS_dff::LN_shpfLockVertices /*124*/: break;
1097 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1098 // case NS_dff::LN_shpfLockText /*125*/: break;
1099 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1100 // case NS_dff::LN_shpfLockAdjustHandles /*126*/: break;
1101 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1102 // case NS_dff::LN_shpfLockAgainstGrouping /*127*/: break;
1103 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1104 // case NS_dff::LN_shpfLockAgainstGrouping /*127*/:
1105 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1106 // case NS_dff::LN_shplTxid /*128*/:
1107 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1108 // case NS_dff::LN_shpdxTextLeft /*129*/:
1109 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1110 // case NS_dff::LN_shpdyTextTop /*130*/:
1111 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1112 // case NS_dff::LN_shpdxTextRight /*131*/:
1113 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1114 // case NS_dff::LN_shpdyTextBottom /*132*/:
1115 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1116 // case NS_dff::LN_shpWrapText /*133*/:
1117 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1118 // case NS_dff::LN_shpscaleText /*134*/:
1119 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1120 // case NS_dff::LN_shpanchorText /*135*/:
1121 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1122 // case NS_dff::LN_shptxflTextFlow /*136*/:
1123 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1124 // case NS_dff::LN_shpcdirFont /*137*/:
1125 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1126 // case NS_dff::LN_shphspNext /*138*/:
1127 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1128 // case NS_dff::LN_shptxdir /*139*/:
1129 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1130 // case NS_dff::LN_shpfSelectText /*187*/:
1131 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1132 // case NS_dff::LN_shpfAutoTextMargin /*188*/:
1133 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1134 // case NS_dff::LN_shpfRotateText /*189*/:
1135 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1136 // case NS_dff::LN_shpfFitShapeToText /*190*/:
1137 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1138 // case NS_dff::LN_shpfFitTextToShape /*191*/:
1139 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1140 // case NS_dff::LN_shpgtextUNICODE /*192*/:
1141 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1142 // case NS_dff::LN_shpgtextRTF /*193*/:
1143 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1144 // case NS_dff::LN_shpgtextAlign /*194*/:
1145 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1146 // case NS_dff::LN_shpgtextSize /*195*/:
1147 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1148 // case NS_dff::LN_shpgtextSpacing /*196*/:
1149 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1150 // case NS_dff::LN_shpgtextFont /*197*/:
1151 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1152 // case NS_dff::LN_shpgtextFReverseRows /*240*/:
1153 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1154 // case NS_dff::LN_shpfGtext /*241*/:
1155 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1156 // case NS_dff::LN_shpgtextFVertical /*242*/:
1157 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1158 // case NS_dff::LN_shpgtextFKern /*243*/:
1159 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1160 // case NS_dff::LN_shpgtextFTight /*244*/:
1161 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1162 // case NS_dff::LN_shpgtextFStretch /*245*/:
1163 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1164 // case NS_dff::LN_shpgtextFShrinkFit /*246*/:
1165 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1166 // case NS_dff::LN_shpgtextFBestFit /*247*/:
1167 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1168 // case NS_dff::LN_shpgtextFNormalize /*248*/:
1169 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1170 // case NS_dff::LN_shpgtextFDxMeasure /*249*/:
1171 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1172 // case NS_dff::LN_shpgtextFBold /*250*/:
1173 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1174 // case NS_dff::LN_shpgtextFItalic /*251*/:
1175 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1176 // case NS_dff::LN_shpgtextFUnderline /*252*/:
1177 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1178 // case NS_dff::LN_shpgtextFShadow /*253*/:
1179 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1180 // case NS_dff::LN_shpgtextFSmallcaps /*254*/:
1181 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1182 // case NS_dff::LN_shpgtextFStrikethrough /*255*/:
1184 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
1185 case NS_dff::LN_shpcropFromTop /*256*/ : m_pImpl->nTopCrop = nTwipValue; break;// rtf:shpcropFromTop
1186 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
1187 case NS_dff::LN_shpcropFromBottom /*257*/ : m_pImpl->nBottomCrop= nTwipValue; break;// rtf:shpcropFromBottom
1188 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
1189 case NS_dff::LN_shpcropFromLeft /*258*/ : m_pImpl->nLeftCrop = nTwipValue; break;// rtf:shpcropFromLeft
1190 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
1191 case NS_dff::LN_shpcropFromRight/*259*/ : m_pImpl->nRightCrop = nTwipValue;break;// rtf:shpcropFromRight
1192 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1193 case NS_dff::LN_shppib/*260*/: break; // rtf:shppib
1194 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1195 case NS_dff::LN_shppibName/*261*/: break; // rtf:shppibName
1196 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1197 case NS_dff::LN_shppibFlags/*262*/: // rtf:shppibFlags
1199 * // MSOBLIPFLAGS ñ flags for pictures
1200 typedef enum
1202 msoblipflagDefault = 0,
1203 msoblipflagComment = 0, // Blip name is a comment
1204 msoblipflagFile, // Blip name is a file name
1205 msoblipflagURL, // Blip name is a full URL
1206 msoblipflagType = 3, // Mask to extract type
1207 // Or the following flags with any of the above.
1208 msoblipflagDontSave = 4, // A "dont" is the depression in the metal
1209 // body work of an automobile caused when a
1210 // cyclist violently thrusts his or her nose
1211 // at it, thus a DontSave is another name for
1212 // a cycle lane.
1213 msoblipflagDoNotSave = 4, // For those who prefer English
1214 msoblipflagLinkToFile = 8,
1217 * */
1218 break;
1219 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1220 // case NS_dff::LN_shppictureTransparent /*263*/:
1221 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
1222 case NS_dff::LN_shppictureContrast/*264*/: // rtf:shppictureContrast docu: "1<<16"
1224 0x10000 is msoffice 50%
1225 < 0x10000 is in units of 1/50th of 0x10000 per 1%
1226 > 0x10000 is in units where
1227 a msoffice x% is stored as 50/(100-x) * 0x10000
1229 plus, a (ui) microsoft % ranges from 0 to 100, OOO
1230 from -100 to 100, so also normalize into that range
1232 if ( nIntValue > 0x10000 )
1234 double fX = nIntValue;
1235 fX /= 0x10000;
1236 fX /= 51; // 50 + 1 to round
1237 fX = 1/fX;
1238 m_pImpl->nContrast = static_cast<sal_Int32>(fX);
1239 m_pImpl->nContrast -= 100;
1240 m_pImpl->nContrast = -m_pImpl->nContrast;
1241 m_pImpl->nContrast = (m_pImpl->nContrast-50)*2;
1243 else if ( nIntValue == 0x10000 )
1244 m_pImpl->nContrast = 0;
1245 else
1247 m_pImpl->nContrast = nIntValue * 101; //100 + 1 to round
1248 m_pImpl->nContrast /= 0x10000;
1249 m_pImpl->nContrast -= 100;
1251 break;
1252 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
1253 case NS_dff::LN_shppictureBrightness/*265*/: // rtf:shppictureBrightness
1254 m_pImpl->nBrightness = ( (sal_Int32) nIntValue / 327 );
1255 break;
1256 /* WRITERFILTERSTATUS: done: 50, planned: 0, spent: 0 */
1257 case NS_dff::LN_shppictureGamma/*266*/: // rtf:shppictureGamma
1258 //todo check gamma value with _real_ document
1259 m_pImpl->fGamma = double(nIntValue/655);
1260 break;
1261 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1262 case NS_dff::LN_shppictureId /*267*/: break; // rtf:shppictureId
1263 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1264 case NS_dff::LN_shppictureDblCrMod /*268*/: break; // rtf:shppictureDblCrMod
1265 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1266 case NS_dff::LN_shppictureFillCrMod /*269*/: break; // rtf:shppictureFillCrMod
1267 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1268 case NS_dff::LN_shppictureLineCrMod /*270*/: break; // rtf:shppictureLineCrMod
1269 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1270 // case NS_dff::LN_shppibPrint /*271*/:
1271 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1272 // case NS_dff::LN_shppibPrintName /*272*/:
1273 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1274 // case NS_dff::LN_shppibPrintFlags /*273*/:
1275 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1276 // case NS_dff::LN_shpfNoHitTestPicture /*316*/:
1277 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1278 // case NS_dff::LN_shppictureGray /*317*/:
1279 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1280 // case NS_dff::LN_shppictureBiLevel /*318*/:
1282 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
1283 case NS_dff::LN_shppictureActive/*319*/: // rtf:shppictureActive
1284 switch( nIntValue & 0x06 )
1286 case 0 : m_pImpl->eColorMode = drawing::ColorMode_STANDARD; break;
1287 case 4 : m_pImpl->eColorMode = drawing::ColorMode_GREYS; break;
1288 case 6 : m_pImpl->eColorMode = drawing::ColorMode_MONO; break;
1289 default:;
1291 break;
1292 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1293 // case NS_dff::LN_shpgeoLeft /*320*/:
1294 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1295 // case NS_dff::LN_shpgeoTop /*321*/:
1296 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1297 // case NS_dff::LN_shpgeoRight /*322*/:
1298 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1299 // case NS_dff::LN_shpgeoBottom /*323*/:
1300 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1301 // case NS_dff::LN_shpshapePath /*324*/:
1302 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1303 // case NS_dff::LN_shppVertices /*325*/:
1304 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1305 // case NS_dff::LN_shppSegmentInfo /*326*/:
1306 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1307 // case NS_dff::LN_shpadjustValue /*327*/:
1308 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1309 // case NS_dff::LN_shpadjust2Value /*328*/:
1310 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1311 // case NS_dff::LN_shpadjust3Value /*329*/:
1312 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1313 // case NS_dff::LN_shpadjust4Value /*330*/:
1314 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1315 // case NS_dff::LN_shpadjust5Value /*331*/:
1316 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1317 // case NS_dff::LN_shpadjust6Value /*332*/:
1318 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1319 // case NS_dff::LN_shpadjust7Value /*333*/:
1320 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1321 // case NS_dff::LN_shpadjust8Value /*334*/:
1322 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1323 // case NS_dff::LN_shpadjust9Value /*335*/:
1324 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1325 // case NS_dff::LN_shpadjust10Value /*336*/:
1326 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1327 // case NS_dff::LN_shpfShadowOK /*378*/:
1328 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1329 // case NS_dff::LN_shpf3DOK /*379*/:
1330 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1331 // case NS_dff::LN_shpfLineOK /*380*/:
1332 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1333 // case NS_dff::LN_shpfGtextOK /*381*/:
1334 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1335 // case NS_dff::LN_shpfFillShadeShapeOK /*382*/:
1336 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1337 // case NS_dff::LN_shpfFillOK /*383*/:
1338 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1339 // case NS_dff::LN_shpfillType /*384*/:
1340 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1341 case NS_dff::LN_shpfillColor /*385*/:
1342 m_pImpl->nFillColor = (m_pImpl->nFillColor & 0xff000000) + ConversionHelper::ConvertColor( nIntValue );
1343 break;
1344 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1345 case NS_dff::LN_shpfillOpacity /*386*/:
1347 sal_Int32 nTrans = 0xff - ( nIntValue * 0xff ) / 0xffff;
1348 m_pImpl->nFillColor = (nTrans << 0x18 ) + (m_pImpl->nFillColor & 0xffffff);
1350 break;
1351 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1352 // case NS_dff::LN_shpfillBackColor /*387*/:
1353 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1354 // case NS_dff::LN_shpfillBackOpacity /*388*/:
1355 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1356 // case NS_dff::LN_shpfillCrMod /*389*/:
1357 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1358 // case NS_dff::LN_shpfillBlip /*390*/:
1359 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1360 // case NS_dff::LN_shpfillBlipName /*391*/:
1361 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1362 // case NS_dff::LN_shpfillBlipFlags /*392*/:
1363 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1364 // case NS_dff::LN_shpfillWidth /*393*/:
1365 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1366 // case NS_dff::LN_shpfillHeight /*394*/:
1367 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1368 // case NS_dff::LN_shpfillAngle /*395*/:
1369 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1370 // case NS_dff::LN_shpfillFocus /*396*/:
1371 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1372 // case NS_dff::LN_shpfillToLeft /*397*/:
1373 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1374 // case NS_dff::LN_shpfillToTop /*398*/:
1375 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1376 // case NS_dff::LN_shpfillToRight /*399*/:
1377 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1378 // case NS_dff::LN_shpfillToBottom /*400*/:
1379 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1380 // case NS_dff::LN_shpfillRectLeft /*401*/:
1381 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1382 // case NS_dff::LN_shpfillRectTop /*402*/:
1383 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1384 // case NS_dff::LN_shpfillRectRight /*403*/:
1385 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1386 // case NS_dff::LN_shpfillRectBottom /*404*/:
1387 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1388 // case NS_dff::LN_shpfillDztype /*405*/:
1389 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1390 // case NS_dff::LN_shpfillShadePreset /*406*/:
1391 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1392 // case NS_dff::LN_shpfillShadeColors /*407*/:
1393 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1394 // case NS_dff::LN_shpfillOriginX /*408*/:
1395 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1396 // case NS_dff::LN_shpfillOriginY /*409*/:
1397 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1398 // case NS_dff::LN_shpfillShapeOriginX /*410*/:
1399 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1400 // case NS_dff::LN_shpfillShapeOriginY /*411*/:
1401 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1402 // case NS_dff::LN_shpfillShadeType /*412*/:
1403 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1404 // case NS_dff::LN_shpfFilled /*443*/:
1405 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1406 // case NS_dff::LN_shpfHitTestFill /*444*/:
1407 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1408 // case NS_dff::LN_shpfillShape /*445*/:
1409 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1410 // case NS_dff::LN_shpfillUseRect /*446*/:
1411 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1412 case NS_dff::LN_shpfNoFillHitTest /*447*/: break; // rtf:shpfNoFillHitTest
1413 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
1414 case NS_dff::LN_shplineColor /*448*/:
1415 m_pImpl->aBorders[m_pImpl->nCurrentBorderLine].nLineColor = ConversionHelper::ConvertColor( nIntValue );
1416 break;
1417 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1418 // case NS_dff::LN_shplineOpacity /*449*/:
1419 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1420 // case NS_dff::LN_shplineBackColor /*450*/:
1421 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1422 // case NS_dff::LN_shplineCrMod /*451*/:
1423 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1424 // case NS_dff::LN_shplineType /*452*/:
1425 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1426 // case NS_dff::LN_shplineFillBlip /*453*/:
1427 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1428 // case NS_dff::LN_shplineFillBlipName /*454*/:
1429 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1430 // case NS_dff::LN_shplineFillBlipFlags /*455*/:
1431 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1432 // case NS_dff::LN_shplineFillWidth /*456*/:
1433 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1434 // case NS_dff::LN_shplineFillHeight /*457*/:
1435 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1436 // case NS_dff::LN_shplineFillDztype /*458*/:
1437 /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
1438 case NS_dff::LN_shplineWidth /*459*/:
1439 //1pt == 12700 units
1440 m_pImpl->aBorders[m_pImpl->nCurrentBorderLine].nLineWidth = ConversionHelper::convertTwipToMM100(nIntValue / 635);
1441 break;
1442 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1443 // case NS_dff::LN_shplineMiterLimit /*460*/:
1444 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1445 // case NS_dff::LN_shplineStyle /*461*/:
1446 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1447 case NS_dff::LN_shplineDashing /*462*/:
1448 //graphic borders don't support different dashing
1449 /*MSOLINEDASHING
1450 msolineSolid, // Solid (continuous) pen
1451 msolineDashSys, // PS_DASH system dash style
1452 msolineDotSys, // PS_DOT system dash style
1453 msolineDashDotSys, // PS_DASHDOT system dash style
1454 msolineDashDotDotSys, // PS_DASHDOTDOT system dash style
1455 msolineDotGEL, // square dot style
1456 msolineDashGEL, // dash style
1457 msolineLongDashGEL, // long dash style
1458 msolineDashDotGEL, // dash short dash
1459 msolineLongDashDotGEL, // long dash short dash
1460 msolineLongDashDotDotGEL // long dash short dash short dash*/
1461 //m_pImpl->aBorders[nCurrentBorderLine].nLineType = nIntValue;
1462 break;
1463 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1464 // case NS_dff::LN_shplineDashStyle /*463*/:
1465 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1466 // case NS_dff::LN_shplineStartArrowhead /*464*/:
1467 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1468 // case NS_dff::LN_shplineEndArrowhead /*465*/:
1469 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1470 // case NS_dff::LN_shplineStartArrowWidth /*466*/:
1471 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1472 // case NS_dff::LN_shplineStartArrowLength /*467*/:
1473 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1474 // case NS_dff::LN_shplineEndArrowWidth /*468*/:
1475 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1476 // case NS_dff::LN_shplineEndArrowLength /*469*/:
1477 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1478 // case NS_dff::LN_shplineJoinStyle /*470*/:
1479 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1480 // case NS_dff::LN_shplineEndCapStyle /*471*/:
1481 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1482 // case NS_dff::LN_shpfArrowheadsOK /*507*/:
1483 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1484 // case NS_dff::LN_shpfLine /*508*/:
1485 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1486 // case NS_dff::LN_shpfHitTestLine /*509*/:
1487 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1488 // case NS_dff::LN_shplineFillShape /*510*/:
1489 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1490 case NS_dff::LN_shpfNoLineDrawDash /*511*/: break; // rtf:shpfNoLineDrawDash
1491 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1492 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1493 // case NS_dff::LN_shpshadowType /*512*/:
1494 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1495 // case NS_dff::LN_shpshadowColor /*513*/:
1496 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1497 // case NS_dff::LN_shpshadowHighlight /*514*/:
1498 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1499 // case NS_dff::LN_shpshadowCrMod /*515*/:
1500 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1501 // case NS_dff::LN_shpshadowOpacity /*516*/:
1502 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1503 // case NS_dff::LN_shpshadowOffsetX /*517*/:
1504 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1505 // case NS_dff::LN_shpshadowOffsetY /*518*/:
1506 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1507 // case NS_dff::LN_shpshadowSecondOffsetX /*519*/:
1508 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1509 // case NS_dff::LN_shpshadowSecondOffsetY /*520*/:
1510 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1511 // case NS_dff::LN_shpshadowScaleXToX /*521*/:
1512 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1513 // case NS_dff::LN_shpshadowScaleYToX /*522*/:
1514 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1515 // case NS_dff::LN_shpshadowScaleXToY /*523*/:
1516 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1517 // case NS_dff::LN_shpshadowScaleYToY /*524*/:
1518 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1519 // case NS_dff::LN_shpshadowPerspectiveX /*525*/:
1520 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1521 // case NS_dff::LN_shpshadowPerspectiveY /*526*/:
1522 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1523 // case NS_dff::LN_shpshadowWeight /*527*/:
1524 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1525 // case NS_dff::LN_shpshadowOriginX /*528*/:
1526 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1527 // case NS_dff::LN_shpshadowOriginY /*529*/:
1528 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1529 // case NS_dff::LN_shpfShadow /*574*/:
1530 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1531 // case NS_dff::LN_shpfshadowObscured /*575*/:
1532 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1533 // case NS_dff::LN_shpperspectiveType /*576*/:
1534 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1535 // case NS_dff::LN_shpperspectiveOffsetX /*577*/:
1536 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1537 // case NS_dff::LN_shpperspectiveOffsetY /*578*/:
1538 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1539 // case NS_dff::LN_shpperspectiveScaleXToX /*579*/:
1540 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1541 // case NS_dff::LN_shpperspectiveScaleYToX /*580*/:
1542 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1543 // case NS_dff::LN_shpperspectiveScaleXToY /*581*/:
1544 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1545 // case NS_dff::LN_shpperspectiveScaleYToY /*582*/:
1546 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1547 // case NS_dff::LN_shpperspectivePerspectiveX /*583*/:
1548 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1549 // case NS_dff::LN_shpperspectivePerspectiveY /*584*/:
1550 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1551 // case NS_dff::LN_shpperspectiveWeight /*585*/:
1552 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1553 // case NS_dff::LN_shpperspectiveOriginX /*586*/:
1554 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1555 // case NS_dff::LN_shpperspectiveOriginY /*587*/:
1556 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1557 // case NS_dff::LN_shpfPerspective /*639*/:
1558 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1559 // case NS_dff::LN_shpc3DSpecularAmt /*640*/:
1560 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1561 // case NS_dff::LN_shpc3DDiffuseAmt /*641*/:
1562 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1563 // case NS_dff::LN_shpc3DShininess /*642*/:
1564 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1565 // case NS_dff::LN_shpc3DEdgeThickness /*643*/:
1566 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1567 // case NS_dff::LN_shpc3DExtrudeForward /*644*/:
1568 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1569 // case NS_dff::LN_shpc3DExtrudeBackward /*645*/:
1570 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1571 // case NS_dff::LN_shpc3DExtrudePlane /*646*/:
1572 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1573 // case NS_dff::LN_shpc3DExtrusionColor /*647*/:
1574 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1575 // case NS_dff::LN_shpc3DCrMod /*648*/:
1576 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1577 // case NS_dff::LN_shpf3D /*700*/:
1578 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1579 // case NS_dff::LN_shpfc3DMetallic /*701*/:
1580 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1581 // case NS_dff::LN_shpfc3DUseExtrusionColor /*702*/:
1582 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1583 // case NS_dff::LN_shpfc3DLightFace /*703*/:
1584 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1585 // case NS_dff::LN_shpc3DYRotationAngle /*704*/:
1586 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1587 // case NS_dff::LN_shpc3DXRotationAngle /*705*/:
1588 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1589 // case NS_dff::LN_shpc3DRotationAxisX /*706*/:
1590 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1591 // case NS_dff::LN_shpc3DRotationAxisY /*707*/:
1592 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1593 // case NS_dff::LN_shpc3DRotationAxisZ /*708*/:
1594 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1595 // case NS_dff::LN_shpc3DRotationAngle /*709*/:
1596 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1597 // case NS_dff::LN_shpc3DRotationCenterX /*710*/:
1598 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1599 // case NS_dff::LN_shpc3DRotationCenterY /*711*/:
1600 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1601 // case NS_dff::LN_shpc3DRotationCenterZ /*712*/:
1602 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1603 // case NS_dff::LN_shpc3DRenderMode /*713*/:
1604 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1605 // case NS_dff::LN_shpc3DTolerance /*714*/:
1606 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1607 // case NS_dff::LN_shpc3DXViewpoint /*715*/:
1608 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1609 // case NS_dff::LN_shpc3DYViewpoint /*716*/:
1610 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1611 // case NS_dff::LN_shpc3DZViewpoint /*717*/:
1612 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1613 // case NS_dff::LN_shpc3DOriginX /*718*/:
1614 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1615 // case NS_dff::LN_shpc3DOriginY /*719*/:
1616 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1617 // case NS_dff::LN_shpc3DSkewAngle /*720*/:
1618 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1619 // case NS_dff::LN_shpc3DSkewAmount /*721*/:
1620 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1621 // case NS_dff::LN_shpc3DAmbientIntensity /*722*/:
1622 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1623 // case NS_dff::LN_shpc3DKeyX /*723*/:
1624 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1625 // case NS_dff::LN_shpc3DKeyY /*724*/:
1626 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1627 // case NS_dff::LN_shpc3DKeyZ /*725*/:
1628 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1629 // case NS_dff::LN_shpc3DKeyIntensity /*726*/:
1630 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1631 // case NS_dff::LN_shpc3DFillX /*727*/:
1632 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1633 // case NS_dff::LN_shpc3DFillY /*728*/:
1634 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1635 // case NS_dff::LN_shpc3DFillZ /*729*/:
1636 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1637 // case NS_dff::LN_shpc3DFillIntensity /*730*/:
1638 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1639 // case NS_dff::LN_shpfc3DConstrainRotation /*763*/:
1640 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1641 // case NS_dff::LN_shpfc3DRotationCenterAuto /*764*/:
1642 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1643 // case NS_dff::LN_shpfc3DParallel /*765*/:
1644 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1645 // case NS_dff::LN_shpfc3DKeyHarsh /*766*/:
1646 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1647 // case NS_dff::LN_shpfc3DFillHarsh /*767*/:
1648 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1649 // case NS_dff::LN_shphspMaster /*769*/:
1650 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1651 // case NS_dff::LN_shpcxstyle /*771*/:
1652 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1653 // case NS_dff::LN_shpbWMode /*772*/:
1654 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1655 // case NS_dff::LN_shpbWModePureBW /*773*/:
1656 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1657 // case NS_dff::LN_shpbWModeBW /*774*/:
1658 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1659 // case NS_dff::LN_shpfOleIcon /*826*/:
1660 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1661 // case NS_dff::LN_shpfPreferRelativeResize /*827*/:
1662 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1663 // case NS_dff::LN_shpfLockShapeType /*828*/:
1664 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1665 // case NS_dff::LN_shpfDeleteAttachedObject /*830*/:
1666 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1667 // case NS_dff::LN_shpfBackground /*831*/:
1668 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1669 // case NS_dff::LN_shpspcot /*832*/:
1670 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1671 // case NS_dff::LN_shpdxyCalloutGap /*833*/:
1672 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1673 // case NS_dff::LN_shpspcoa /*834*/:
1674 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1675 // case NS_dff::LN_shpspcod /*835*/:
1676 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1677 // case NS_dff::LN_shpdxyCalloutDropSpecified /*836*/:
1678 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1679 // case NS_dff::LN_shpdxyCalloutLengthSpecified /*837*/:
1680 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1681 // case NS_dff::LN_shpfCallout /*889*/:
1682 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1683 // case NS_dff::LN_shpfCalloutAccentBar /*890*/:
1684 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1685 // case NS_dff::LN_shpfCalloutTextBorder /*891*/:
1686 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1687 // case NS_dff::LN_shpfCalloutMinusX /*892*/:
1688 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1689 // case NS_dff::LN_shpfCalloutMinusY /*893*/:
1690 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1691 // case NS_dff::LN_shpfCalloutDropAuto /*894*/:
1692 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1693 // case NS_dff::LN_shpfCalloutLengthSpecified /*895*/:
1694 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1695 // case NS_dff::LN_shpwzName /*896*/:
1696 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1697 case NS_dff::LN_shpwzDescription /*897*/: //alternative text
1698 m_pImpl->sAlternativeText = val.getString();
1699 break;
1700 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1701 // case NS_dff::LN_shppihlShape /*898*/:
1702 case NS_dff::LN_shppWrapPolygonVertices/*899*/: break; // rtf:shppWrapPolygonVertices
1703 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1704 case NS_dff::LN_shpdxWrapDistLeft /*900*/: // contains a twip/635 value
1705 //todo: changes have to be applied depending on the orientation, see SwWW8ImplReader::AdjustLRWrapForWordMargins()
1706 m_pImpl->nLeftMargin = nIntValue / 360;
1707 break;
1708 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1709 case NS_dff::LN_shpdyWrapDistTop /*901*/: // contains a twip/635 value
1710 //todo: changes have to be applied depending on the orientation, see SwWW8ImplReader::AdjustULWrapForWordMargins()
1711 m_pImpl->nTopMargin = nIntValue / 360;
1712 break;
1713 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1714 case NS_dff::LN_shpdxWrapDistRight /*902*/:// contains a twip/635 value
1715 //todo: changes have to be applied depending on the orientation, see SwWW8ImplReader::AdjustLRWrapForWordMargins()
1716 m_pImpl->nRightMargin = nIntValue / 360;
1717 break;
1718 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1719 case NS_dff::LN_shpdyWrapDistBottom /*903*/:// contains a twip/635 value
1720 //todo: changes have to be applied depending on the orientation, see SwWW8ImplReader::AdjustULWrapForWordMargins()
1721 m_pImpl->nBottomMargin = nIntValue / 360;
1722 break;
1723 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1724 // case NS_dff::LN_shplidRegroup /*904*/:
1725 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1726 // case NS_dff::LN_shpfEditedWrap /*953*/:
1727 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1728 // case NS_dff::LN_shpfBehindDocument /*954*/:
1729 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1730 // case NS_dff::LN_shpfOnDblClickNotify /*955*/:
1731 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1732 // case NS_dff::LN_shpfIsButton /*956*/:
1733 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1734 // case NS_dff::LN_shpfOneD /*957*/:
1735 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1736 // case NS_dff::LN_shpfHidden /*958*/:
1737 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
1738 case NS_dff::LN_shpfPrint /*959*/: break; // rtf:shpfPrint
1740 default:
1741 OSL_ENSURE( false, "shape option unsupported?");
1744 /*-- 01.11.2006 09:45:02---------------------------------------------------
1746 -----------------------------------------------------------------------*/
1747 void GraphicImport::sprm(Sprm & rSprm)
1749 #ifdef DEBUG_DOMAINMAPPER
1750 dmapper_logger->startElement("sprm");
1751 dmapper_logger->chars(rSprm.toString());
1752 #endif
1754 sal_uInt32 nSprmId = rSprm.getId();
1755 Value::Pointer_t pValue = rSprm.getValue();
1757 /* WRITERFILTERSTATUS: table: PICFsprmdata */
1758 switch(nSprmId)
1760 case 0xf004: //dff record
1761 case 0xf00a: //part of 0xf004 - shape properties
1762 case 0xf00b: //part of 0xf004
1763 case 0xf007:
1764 case 0xf122: //udefprop
1765 case NS_ooxml::LN_CT_Inline_extent: // 90911;
1766 case NS_ooxml::LN_CT_Inline_effectExtent: // 90912;
1767 case NS_ooxml::LN_CT_Inline_docPr: // 90913;
1768 case NS_ooxml::LN_CT_Inline_cNvGraphicFramePr: // 90914;
1769 case NS_ooxml::LN_CT_NonVisualGraphicFrameProperties_graphicFrameLocks:// 90657
1770 case NS_ooxml::LN_CT_Inline_a_graphic:// 90915
1771 case NS_ooxml::LN_CT_Anchor_simplePos_elem: // 90975;
1772 case NS_ooxml::LN_CT_Anchor_positionH: // 90976;
1773 case NS_ooxml::LN_CT_Anchor_positionV: // 90977;
1774 case NS_ooxml::LN_CT_Anchor_extent: // 90978;
1775 case NS_ooxml::LN_CT_Anchor_effectExtent: // 90979;
1776 case NS_ooxml::LN_EG_WrapType_wrapSquare: // 90945;
1777 case NS_ooxml::LN_EG_WrapType_wrapTight: // 90946;
1778 case NS_ooxml::LN_CT_Anchor_docPr: // 90980;
1779 case NS_ooxml::LN_CT_Anchor_cNvGraphicFramePr: // 90981;
1780 case NS_ooxml::LN_CT_Anchor_a_graphic: // 90982;
1781 case NS_ooxml::LN_CT_WrapPath_start: // 90924;
1782 case NS_ooxml::LN_CT_WrapPath_lineTo: // 90925;
1783 case NS_ooxml::LN_CT_WrapTight_wrapPolygon: // 90933;
1784 case NS_ooxml::LN_graphic_graphic:
1785 case NS_ooxml::LN_pic_pic:
1787 writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
1788 if( pProperties.get())
1790 pProperties->resolve(*this);
1793 break;
1794 case 0x271b:
1795 case 0x271c:
1797 if( nSprmId != 0x271c || m_pImpl->nDffType == 0xf01f || m_pImpl->nDffType == 0xf01e )
1799 writerfilter::Reference<BinaryObj>::Pointer_t pPictureData = rSprm.getBinary();
1800 if( pPictureData.get())
1801 pPictureData->resolve(*this);
1804 break;
1805 case NS_ooxml::LN_EG_WrapType_wrapNone: // 90944; - doesn't contain attributes
1806 //depending on the behindDoc attribute text wraps through behind or in fron of the object
1807 m_pImpl->nWrap = text::WrapTextMode_THROUGHT;
1808 break;
1809 case NS_ooxml::LN_EG_WrapType_wrapTopAndBottom: // 90948;
1810 m_pImpl->nWrap = text::WrapTextMode_NONE;
1811 break;
1812 case NS_ooxml::LN_EG_WrapType_wrapThrough: // 90947;
1813 m_pImpl->nWrap = text::WrapTextMode_THROUGHT;
1814 break;
1815 case 0xf010:
1816 case 0xf011:
1817 //ignore - doesn't contain useful members
1818 break;
1819 case NS_ooxml::LN_CT_GraphicalObject_graphicData:// 90660;
1821 m_pImpl->bIsGraphic = true;
1823 writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
1824 if( pProperties.get())
1825 pProperties->resolve(*this);
1827 break;
1828 default:
1829 #if OSL_DEBUG_LEVEL > 0
1830 ::rtl::OString sMessage( "GraphicImport::sprm() - Id: ");
1831 sMessage += ::rtl::OString::valueOf( sal_Int32( nSprmId ), 10 );
1832 sMessage += ::rtl::OString(" / 0x");
1833 sMessage += ::rtl::OString::valueOf( sal_Int32( nSprmId ), 16 );
1834 OSL_ENSURE( false, sMessage.getStr())
1835 #endif
1841 #ifdef DEBUG_DOMAINMAPPER
1842 dmapper_logger->endElement("sprm");
1843 #endif
1845 /*-- 01.11.2006 09:45:02---------------------------------------------------
1847 -----------------------------------------------------------------------*/
1848 void GraphicImport::entry(int /*pos*/, writerfilter::Reference<Properties>::Pointer_t /*ref*/)
1851 /*-- 16.11.2006 16:14:32---------------------------------------------------
1852 crop is stored as "fixed float" as 16.16 fraction value
1853 related to width/or height
1854 -----------------------------------------------------------------------*/
1855 void lcl_CalcCrop( sal_Int32& nCrop, sal_Int32 nRef )
1857 nCrop = ((nCrop >> 16 ) * nRef )
1858 + (((nCrop & 0xffff) * nRef ) >> 16);
1861 /*-- 01.11.2006 09:45:02---------------------------------------------------
1863 -----------------------------------------------------------------------*/
1864 void GraphicImport::data(const sal_uInt8* buf, size_t len, writerfilter::Reference<Properties>::Pointer_t /*ref*/)
1868 uno::Reference< graphic::XGraphicProvider > xGraphicProvider(
1869 m_xComponentContext->getServiceManager()->createInstanceWithContext(
1870 ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.graphic.GraphicProvider")),
1871 m_xComponentContext),
1872 uno::UNO_QUERY_THROW );
1873 uno::Reference< io::XInputStream > xIStream = new XInputStreamHelper( buf, len, m_pImpl->bIsBitmap );
1875 PropertyNameSupplier& rPropNameSupplier = PropertyNameSupplier::GetPropertyNameSupplier();
1877 ::com::sun::star::beans::PropertyValues aMediaProperties( 1 );
1878 aMediaProperties[0].Name = rPropNameSupplier.GetName(PROP_INPUT_STREAM);
1879 aMediaProperties[0].Value <<= xIStream;
1880 uno::Reference< graphic::XGraphic > xGraphic = xGraphicProvider->queryGraphic( aMediaProperties );
1882 if(xGraphic.is())
1884 clog << "Graphic loaded" << endl;
1886 uno::Reference< beans::XPropertySet > xGraphicObjectProperties(
1887 m_xTextFactory->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.TextGraphicObject"))),
1888 uno::UNO_QUERY_THROW);
1889 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName(PROP_GRAPHIC), uno::makeAny( xGraphic ));
1890 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName(PROP_ANCHOR_TYPE),
1891 uno::makeAny( m_pImpl->eGraphicImportType == IMPORT_AS_SHAPE || m_pImpl->eGraphicImportType == IMPORT_AS_DETECTED_ANCHOR ?
1892 text::TextContentAnchorType_AT_CHARACTER :
1893 text::TextContentAnchorType_AS_CHARACTER ));
1894 m_xGraphicObject = uno::Reference< text::XTextContent >( xGraphicObjectProperties, uno::UNO_QUERY_THROW );
1896 //shapes have only one border, PICF might have four
1897 table::BorderLine aBorderLine;
1898 for( sal_Int32 nBorder = 0; nBorder < 4; ++nBorder )
1900 if( m_pImpl->eGraphicImportType == IMPORT_AS_GRAPHIC || !nBorder )
1902 aBorderLine.Color = m_pImpl->aBorders[m_pImpl->eGraphicImportType == IMPORT_AS_SHAPE ? BORDER_TOP : static_cast<BorderPosition>(nBorder) ].nLineColor;
1903 aBorderLine.InnerLineWidth = 0;
1904 aBorderLine.OuterLineWidth = (sal_Int16)m_pImpl->aBorders[m_pImpl->eGraphicImportType == IMPORT_AS_SHAPE ? BORDER_TOP : static_cast<BorderPosition>(nBorder) ].nLineWidth;
1905 aBorderLine.LineDistance = 0;
1907 PropertyIds aBorderProps[4] =
1909 PROP_LEFT_BORDER,
1910 PROP_RIGHT_BORDER,
1911 PROP_TOP_BORDER,
1912 PROP_BOTTOM_BORDER
1914 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( aBorderProps[nBorder]), uno::makeAny(aBorderLine));
1917 // setting properties for all types
1918 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_ALTERNATIVE_TEXT ),
1919 uno::makeAny( m_pImpl->sAlternativeText ));
1920 if( m_pImpl->bPositionProtected )
1921 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_POSITION_PROTECTED ),
1922 uno::makeAny(true));
1923 if( m_pImpl->bSizeProtected )
1924 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_SIZE_PROTECTED ),
1925 uno::makeAny(true));
1927 if( m_pImpl->eGraphicImportType == IMPORT_AS_SHAPE || m_pImpl->eGraphicImportType == IMPORT_AS_DETECTED_ANCHOR )
1929 sal_Int32 nWidth = m_pImpl->nRightPosition - m_pImpl->nLeftPosition;
1930 if( m_pImpl->eGraphicImportType == IMPORT_AS_SHAPE )
1932 sal_Int32 nHeight = m_pImpl->nBottomPosition - m_pImpl->nTopPosition;
1933 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName(PROP_SIZE),
1934 uno::makeAny( awt::Size( nWidth, nHeight )));
1936 //adjust margins
1937 if( (m_pImpl->nHoriOrient == text::HoriOrientation::LEFT &&
1938 (m_pImpl->nHoriRelation == text::RelOrientation::PAGE_PRINT_AREA ||
1939 m_pImpl->nHoriRelation == text::RelOrientation::FRAME) ) ||
1940 (m_pImpl->nHoriOrient == text::HoriOrientation::INSIDE &&
1941 m_pImpl->nHoriRelation == text::RelOrientation::PAGE_PRINT_AREA ))
1942 m_pImpl->nLeftMargin = 0;
1943 if((m_pImpl->nHoriOrient == text::HoriOrientation::RIGHT &&
1944 (m_pImpl->nHoriRelation == text::RelOrientation::PAGE_PRINT_AREA ||
1945 m_pImpl->nHoriRelation == text::RelOrientation::FRAME) ) ||
1946 (m_pImpl->nHoriOrient == text::HoriOrientation::INSIDE &&
1947 m_pImpl->nHoriRelation == text::RelOrientation::PAGE_PRINT_AREA ))
1948 m_pImpl->nRightMargin = 0;
1949 // adjust top/bottom margins
1950 if( m_pImpl->nVertOrient == text::VertOrientation::TOP &&
1951 ( m_pImpl->nVertRelation == text::RelOrientation::PAGE_PRINT_AREA ||
1952 m_pImpl->nVertRelation == text::RelOrientation::PAGE_FRAME))
1953 m_pImpl->nTopMargin = 0;
1954 if( m_pImpl->nVertOrient == text::VertOrientation::BOTTOM &&
1955 ( m_pImpl->nVertRelation == text::RelOrientation::PAGE_PRINT_AREA ||
1956 m_pImpl->nVertRelation == text::RelOrientation::PAGE_FRAME))
1957 m_pImpl->nBottomMargin = 0;
1958 if( m_pImpl->nVertOrient == text::VertOrientation::BOTTOM &&
1959 m_pImpl->nVertRelation == text::RelOrientation::PAGE_PRINT_AREA )
1960 m_pImpl->nBottomMargin = 0;
1962 //adjust alignment
1963 if( m_pImpl->nHoriOrient == text::HoriOrientation::INSIDE &&
1964 m_pImpl->nHoriRelation == text::RelOrientation::PAGE_FRAME )
1966 // convert 'left to page' to 'from left -<width> to page text area'
1967 m_pImpl->nHoriOrient = text::HoriOrientation::NONE;
1968 m_pImpl->nHoriRelation = text::RelOrientation::PAGE_PRINT_AREA;
1969 m_pImpl->nLeftPosition = - nWidth;
1971 else if( m_pImpl->nHoriOrient == text::HoriOrientation::OUTSIDE &&
1972 m_pImpl->nHoriRelation == text::RelOrientation::PAGE_FRAME )
1974 // convert 'right to page' to 'from left 0 to right page border'
1975 m_pImpl->nHoriOrient = text::HoriOrientation::NONE;
1976 m_pImpl->nHoriRelation = text::RelOrientation::PAGE_RIGHT;
1977 m_pImpl->nLeftPosition = 0;
1980 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_HORI_ORIENT ),
1981 uno::makeAny(m_pImpl->nHoriOrient));
1982 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_HORI_ORIENT_POSITION),
1983 uno::makeAny(m_pImpl->nLeftPosition));
1984 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_HORI_ORIENT_RELATION ),
1985 uno::makeAny(m_pImpl->nHoriRelation));
1986 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_PAGE_TOGGLE ),
1987 uno::makeAny(m_pImpl->bPageToggle));
1988 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_VERT_ORIENT ),
1989 uno::makeAny(m_pImpl->nVertOrient));
1990 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_VERT_ORIENT_POSITION),
1991 uno::makeAny(m_pImpl->nTopPosition));
1992 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_VERT_ORIENT_RELATION ),
1993 uno::makeAny(m_pImpl->nVertRelation));
1994 if( !m_pImpl->bOpaque )
1996 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_OPAQUE ),
1997 uno::makeAny(m_pImpl->bOpaque));
1999 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_SURROUND ),
2000 uno::makeAny(m_pImpl->nWrap));
2002 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_SURROUND_CONTOUR ),
2003 uno::makeAny(m_pImpl->bContour));
2004 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_CONTOUR_OUTSIDE ),
2005 uno::makeAny(true));
2006 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_LEFT_MARGIN ),
2007 uno::makeAny(m_pImpl->nLeftMargin));
2008 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_RIGHT_MARGIN ),
2009 uno::makeAny(m_pImpl->nRightMargin));
2010 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_TOP_MARGIN ),
2011 uno::makeAny(m_pImpl->nTopMargin));
2012 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_BOTTOM_MARGIN ),
2013 uno::makeAny(m_pImpl->nBottomMargin));
2015 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_CONTOUR_POLY_POLYGON),
2016 uno::Any());
2017 if( m_pImpl->eColorMode == drawing::ColorMode_STANDARD &&
2018 m_pImpl->nContrast == -70 &&
2019 m_pImpl->nBrightness == 70 )
2021 // strange definition of WATERMARK!
2022 m_pImpl->nContrast = 0;
2023 m_pImpl->nBrightness = 0;
2024 m_pImpl->eColorMode = drawing::ColorMode_WATERMARK;
2027 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_ADJUST_CONTRAST ),
2028 uno::makeAny((sal_Int16)m_pImpl->nContrast));
2029 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_ADJUST_LUMINANCE ),
2030 uno::makeAny((sal_Int16)m_pImpl->nBrightness));
2031 if(m_pImpl->eColorMode != drawing::ColorMode_STANDARD)
2032 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_GRAPHIC_COLOR_MODE ),
2033 uno::makeAny(m_pImpl->eColorMode));
2034 if(m_pImpl->fGamma > 0. )
2035 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_GAMMA ),
2036 uno::makeAny(m_pImpl->fGamma ));
2037 if(m_pImpl->bHoriFlip)
2039 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_HORI_MIRRORED_ON_EVEN_PAGES ),
2040 uno::makeAny( m_pImpl->bHoriFlip ));
2041 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_HORI_MIRRORED_ON_ODD_PAGES ),
2042 uno::makeAny( m_pImpl->bHoriFlip ));
2044 if( m_pImpl->bVertFlip )
2045 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_VERT_MIRRORED ),
2046 uno::makeAny( m_pImpl->bVertFlip ));
2047 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_BACK_COLOR ),
2048 uno::makeAny( m_pImpl->nFillColor ));
2049 //there seems to be no way to detect the original size via _real_ API
2050 uno::Reference< beans::XPropertySet > xGraphicProperties( xGraphic, uno::UNO_QUERY_THROW );
2051 awt::Size aGraphicSize, aGraphicSizePixel;
2052 xGraphicProperties->getPropertyValue(rPropNameSupplier.GetName( PROP_SIZE100th_M_M )) >>= aGraphicSize;
2053 xGraphicProperties->getPropertyValue(rPropNameSupplier.GetName( PROP_SIZE_PIXEL )) >>= aGraphicSizePixel;
2054 if( aGraphicSize.Width && aGraphicSize.Height )
2056 //todo: i71651 graphic size is not provided by the GraphicDescriptor
2057 lcl_CalcCrop( m_pImpl->nTopCrop, aGraphicSize.Height );
2058 lcl_CalcCrop( m_pImpl->nBottomCrop, aGraphicSize.Height );
2059 lcl_CalcCrop( m_pImpl->nLeftCrop, aGraphicSize.Width );
2060 lcl_CalcCrop( m_pImpl->nRightCrop, aGraphicSize.Width );
2062 xGraphicProperties->setPropertyValue(rPropNameSupplier.GetName( PROP_GRAPHIC_CROP ),
2063 uno::makeAny(text::GraphicCrop(m_pImpl->nTopCrop, m_pImpl->nBottomCrop, m_pImpl->nLeftCrop, m_pImpl->nRightCrop)));
2067 if(m_pImpl->eGraphicImportType == IMPORT_AS_DETECTED_INLINE || m_pImpl->eGraphicImportType == IMPORT_AS_DETECTED_ANCHOR)
2069 if( m_pImpl->getXSize() && m_pImpl->getYSize() )
2070 xGraphicObjectProperties->setPropertyValue(rPropNameSupplier.GetName(PROP_SIZE),
2071 uno::makeAny( awt::Size( m_pImpl->getXSize(), m_pImpl->getYSize() )));
2074 if( m_pImpl->sName.getLength() )
2076 uno::Reference< container::XNamed > xNamed( xGraphicObjectProperties, uno::UNO_QUERY_THROW );
2077 xNamed->setName( m_pImpl->sName );
2080 catch( const uno::Exception& )
2086 catch( const uno::Exception& )
2088 clog << __FILE__ << __LINE__ << " failed!" << endl;
2092 /*-- 01.11.2006 09:45:03---------------------------------------------------
2094 -----------------------------------------------------------------------*/
2095 void GraphicImport::startSectionGroup()
2098 /*-- 01.11.2006 09:45:03---------------------------------------------------
2100 -----------------------------------------------------------------------*/
2101 void GraphicImport::endSectionGroup()
2104 /*-- 01.11.2006 09:45:03---------------------------------------------------
2106 -----------------------------------------------------------------------*/
2107 void GraphicImport::startParagraphGroup()
2110 /*-- 01.11.2006 09:45:03---------------------------------------------------
2112 -----------------------------------------------------------------------*/
2113 void GraphicImport::endParagraphGroup()
2116 /*-- 01.11.2006 09:45:03---------------------------------------------------
2118 -----------------------------------------------------------------------*/
2119 void GraphicImport::startCharacterGroup()
2122 /*-- 01.11.2006 09:45:04---------------------------------------------------
2124 -----------------------------------------------------------------------*/
2125 void GraphicImport::endCharacterGroup()
2128 /*-- 01.11.2006 09:45:04---------------------------------------------------
2130 -----------------------------------------------------------------------*/
2131 void GraphicImport::text(const sal_uInt8 * /*_data*/, size_t /*len*/)
2134 /*-- 01.11.2006 09:45:05---------------------------------------------------
2136 -----------------------------------------------------------------------*/
2137 void GraphicImport::utext(const sal_uInt8 * /*_data*/, size_t /*len*/)
2140 /*-- 01.11.2006 09:45:05---------------------------------------------------
2142 -----------------------------------------------------------------------*/
2143 void GraphicImport::props(writerfilter::Reference<Properties>::Pointer_t /*ref*/)
2146 /*-- 01.11.2006 09:45:06---------------------------------------------------
2148 -----------------------------------------------------------------------*/
2149 void GraphicImport::table(Id /*name*/, writerfilter::Reference<Table>::Pointer_t /*ref*/)
2152 /*-- 01.11.2006 09:45:07---------------------------------------------------
2154 -----------------------------------------------------------------------*/
2155 void GraphicImport::substream(Id /*name*/, ::writerfilter::Reference<Stream>::Pointer_t /*ref*/)
2158 /*-- 01.11.2006 09:45:07---------------------------------------------------
2160 -----------------------------------------------------------------------*/
2161 void GraphicImport::info(const string & /*info*/)
2164 /*-- 09.08.2007 10:17:00---------------------------------------------------
2166 -----------------------------------------------------------------------*/
2167 bool GraphicImport::IsGraphic() const
2169 return m_pImpl->bIsGraphic;