added tabulator export (left, right, decimal, centered)

This commit is contained in:
Sven Jacobi 2000-11-17 10:22:02 +00:00
parent 5fe13fe720
commit 5880b5f760
3 changed files with 41 additions and 48 deletions

View file

@ -2,9 +2,9 @@
*
* $RCSfile: eppt.cxx,v $
*
* $Revision: 1.8 $
* $Revision: 1.9 $
*
* last change: $Author: sj $ $Date: 2000-11-14 17:05:52 $
* last change: $Author: sj $ $Date: 2000-11-17 11:21:33 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@ -266,7 +266,7 @@ PPTWriter::PPTWriter( SvStorageRef& rSvStorage, SvStorageRef& xOleSource,
return;
}
maTextRuleList.First(); // rewind list, so we can get the current or next entry without
// searching, all entrys are sorted
// searching, all entrys are sorted#
for ( i = 0; i < mnPages; i++ )
{
if ( !ImplCreateSlide( i ) )
@ -734,7 +734,7 @@ sal_Bool PPTWriter::ImplCreateDocument()
SvMemoryStream aExtBu( 0x200, 0x200 );
ImplWriteTextStyleAtom( *mpStrm, nTextType, nPObjects, pRule, aExtBu );
ImplWriteExtParaHeader( aExtBu, nPObjects++, nTextType, i + 0x100 );
maTextRuleList.Insert( (void*)pRule );
maTextRuleList.Insert( (void*)pRule, LIST_APPEND );
if ( rLayout.bSecOutlinerPossible )
{
if ( ( nIndex + 1 ) < nShapes )
@ -746,7 +746,7 @@ sal_Bool PPTWriter::ImplCreateDocument()
SvMemoryStream aExtBu( 0x200, 0x200 );
ImplWriteTextStyleAtom( *mpStrm, nTextType, nPObjects, pRule, aExtBu );
ImplWriteExtParaHeader( aExtBu, nPObjects++, nTextType, i + 0x100 );
maTextRuleList.Insert( (void*)pRule );
maTextRuleList.Insert( (void*)pRule, LIST_APPEND );
}
}
}
@ -765,7 +765,7 @@ sal_Bool PPTWriter::ImplCreateDocument()
SvMemoryStream aExtBu( 0x200, 0x200 );
ImplWriteTextStyleAtom( *mpStrm, EPP_TEXTTYPE_Title, nPObjects, pRule, aExtBu );
ImplWriteExtParaHeader( aExtBu, nPObjects++, EPP_TEXTTYPE_Title, i + 0x100 );
maTextRuleList.Insert( (void*)pRule );
maTextRuleList.Insert( (void*)pRule, LIST_APPEND );
}
}
}

View file

@ -2,9 +2,9 @@
*
* $RCSfile: eppt.hxx,v $
*
* $Revision: 1.6 $
* $Revision: 1.7 $
*
* last change: $Author: sj $ $Date: 2000-11-10 08:21:15 $
* last change: $Author: sj $ $Date: 2000-11-17 11:21:15 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@ -206,6 +206,9 @@
#ifndef _COM_SUN_STAR_AWT_XCONTROLMODEL_HPP_
#include <com/sun/star/awt/XControlModel.hpp>
#endif
#ifndef _COM_SUN_STAR_STYLE_TABSTOP_HPP_
#include <com/sun/star/style/TabStop.hpp>
#endif
#ifndef _MSOCXIMEX_HXX
#include <svx/msocximex.hxx>
#endif
@ -754,7 +757,8 @@ class ParagraphObj : public List, public PropStateValue, public SOParagraph
public :
sal_Int32* mpTab;
::com::sun::star::uno::Sequence< ::com::sun::star::style::TabStop > maTabStop;
sal_uInt32 mnTextSize;
sal_Bool mbIsBullet;

View file

@ -2,9 +2,9 @@
*
* $RCSfile: epptso.cxx,v $
*
* $Revision: 1.9 $
* $Revision: 1.10 $
*
* last change: $Author: sj $ $Date: 2000-11-15 10:22:43 $
* last change: $Author: sj $ $Date: 2000-11-17 11:22:02 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@ -116,9 +116,6 @@
#ifndef _COM_SUN_STAR_AWT_XFONTUNDERLINE_HPP_
#include <com/sun/star/awt/FontUnderline.hpp>
#endif
#ifndef _COM_SUN_STAR_STYLE_TABSTOP_HPP_
#include <com/sun/star/style/TabStop.hpp>
#endif
#ifndef _COM_SUN_STAR_STYLE_PARAGRAPHADJUST_HPP_
#include <com/sun/star/style/ParagraphAdjust.hpp>
#endif
@ -2463,8 +2460,7 @@ PortionObj& PortionObj::operator=( PortionObj& rPortionObj )
ParagraphObj::ParagraphObj( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & rXPropSet,
PPTExBulletProvider& rProv ) :
maMapModeSrc ( MAP_100TH_MM ),
maMapModeDest ( MAP_INCH, Point(), Fraction( 1, 576 ), Fraction( 1, 576 ) ),
mpTab ( NULL )
maMapModeDest ( MAP_INCH, Point(), Fraction( 1, 576 ), Fraction( 1, 576 ) )
{
mXPropSet = rXPropSet;
@ -2482,8 +2478,7 @@ ParagraphObj::ParagraphObj( const ::com::sun::star::uno::Reference< ::com::sun::
maMapModeSrc ( MAP_100TH_MM ),
maMapModeDest ( MAP_INCH, Point(), Fraction( 1, 576 ), Fraction( 1, 576 ) ),
mbFirstParagraph ( aParaFlags.bFirstParagraph ),
mbLastParagraph ( aParaFlags.bLastParagraph ),
mpTab ( NULL )
mbLastParagraph ( aParaFlags.bLastParagraph )
{
bDepth = bExtendedParameters = FALSE;
@ -2543,7 +2538,6 @@ void ParagraphObj::ImplClear()
{
for ( void* pPtr = First(); pPtr; pPtr = Next() )
delete (PortionObj*)pPtr;
delete mpTab;
}
void ParagraphObj::ImplGetNumberingLevel( PPTExBulletProvider& rBuProv, sal_Int16 nDepth, sal_Bool bGetPropStateValue )
@ -2969,19 +2963,7 @@ void ParagraphObj::ImplGetParagraphValues( PPTExBulletProvider& rBuProv, sal_Boo
ImplGetNumberingLevel( rBuProv, nDepth, bGetPropStateValue );
}
if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "ParaTabstops" ) ), bGetPropStateValue ) )
{
::com::sun::star::uno::Sequence< ::com::sun::star::style::TabStop>& rSeq =
*( ::com::sun::star::uno::Sequence< ::com::sun::star::style::TabStop>*)mAny.getValue();
sal_Int32 nCount = rSeq.getLength();
::com::sun::star::style::TabStop* pTabStop = (::com::sun::star::style::TabStop*)rSeq.getConstArray();
if ( nCount && pTabStop )
{
mpTab = new sal_Int32[ nCount + 1 ];
mpTab[ 0 ] = nCount;
for ( sal_uInt32 i = 0; i < nCount; i++ )
mpTab[ i + 1 ] = ( pTabStop[ i ].Position / 4.40972 ) + nTextOfs;
}
}
maTabStop = *( ::com::sun::star::uno::Sequence< ::com::sun::star::style::TabStop>*)mAny.getValue();
::com::sun::star::drawing::TextAdjust eTextAdjust( ::com::sun::star::drawing::TextAdjust_LEFT );
if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "ParaAdjust" ) ), bGetPropStateValue ) )
eTextAdjust = (::com::sun::star::drawing::TextAdjust)EncodeAnyTosal_Int16( mAny );
@ -3048,15 +3030,7 @@ void ParagraphObj::ImplConstruct( ParagraphObj& rParagraphObj )
for ( void* pPtr = rParagraphObj.First(); pPtr; pPtr = rParagraphObj.Next() )
Insert( new PortionObj( *(PortionObj*)pPtr ), LIST_APPEND );
if ( rParagraphObj.mpTab && rParagraphObj.mpTab[ 0 ] )
{
sal_uInt32 nCount = rParagraphObj.mpTab[ 0 ] + 1;
mpTab = new sal_Int32[ nCount ];
memcpy( mpTab, rParagraphObj.mpTab, nCount << 2 );
}
else
mpTab = NULL;
maTabStop = rParagraphObj.maTabStop;
bDepth = rParagraphObj.bDepth;
bExtendedParameters = rParagraphObj.bExtendedParameters;
nParaFlags = rParagraphObj.nParaFlags;
@ -3300,7 +3274,9 @@ void PPTWriter::ImplWriteTextStyleAtom( SvStream& rOut, int nTextInstance,
{
sal_uInt32 nParaFlags = 0x1f;
sal_Int16 nDepth, nMask, nNumberingRule[ 10 ];
const sal_Int32* pTab = pPara->mpTab;
sal_uInt32 nTextOfs = pPara->nTextOfs;
sal_uInt32 nTabs = pPara->maTabStop.getLength();
const ::com::sun::star::style::TabStop* pTabStop = ( const ::com::sun::star::style::TabStop* )pPara->maTabStop.getConstArray();
for ( ; pPara; pPara = aTextObj.Next() )
{
@ -3327,10 +3303,9 @@ void PPTWriter::ImplWriteTextStyleAtom( SvStream& rOut, int nTextInstance,
nParaFlags >>= 16;
sal_uInt32 nDefaultTabSize = ImplMapSize( ::com::sun::star::awt::Size( 2011, 1 ) ).Width;
sal_uInt32 nTabs = ( pTab ) ? pTab[ 0 ] : 0;
sal_Int32 nDefaultTabs = abs( maRect.GetWidth() ) / nDefaultTabSize;
if ( nTabs )
nDefaultTabs -= pTab[ nTabs ] / nDefaultTabSize;
nDefaultTabs -= ( ( pTabStop[ nTabs - 1 ].Position / 4.40972 ) + nTextOfs ) / nDefaultTabSize;
if ( nDefaultTabs < 0 )
nDefaultTabs = 0;
@ -3354,12 +3329,26 @@ void PPTWriter::ImplWriteTextStyleAtom( SvStream& rOut, int nTextInstance,
if ( nTextRulerAtomFlags & 4 )
{
*pRuleOut << (sal_uInt16)nTabCount;
for ( sal_uInt32 i = 1; i <= nTabs; i++ )
*pRuleOut << (sal_uInt32)pTab[ i ];
for ( sal_uInt32 i = 0; i < nTabs; i++ )
{
sal_uInt16 nPosition = (sal_uInt16)( ( pTabStop[ i ].Position / 4.40972 ) + nTextOfs );
sal_uInt16 nType;
switch ( pTabStop[ i ].Alignment )
{
case ::com::sun::star::style::TabAlign_DECIMAL : nType = 3; break;
case ::com::sun::star::style::TabAlign_RIGHT : nType = 2; break;
case ::com::sun::star::style::TabAlign_CENTER : nType = 1; break;
case ::com::sun::star::style::TabAlign_LEFT :
default: nType = 0;
};
*pRuleOut << nPosition
<< nType;
}
sal_uInt32 nWidth = 1;
if ( pTab )
nWidth += ( pTab[ nTabs ] / nDefaultTabSize );
if ( nTabs )
nWidth += ( ( pTabStop[ nTabs - 1 ].Position / 4.40972 + nTextOfs ) / nDefaultTabSize );
nWidth *= nDefaultTabSize;
for ( i = 0; i < nDefaultTabs; i++, nWidth += nDefaultTabSize )
*pRuleOut << nWidth;