summaryrefslogtreecommitdiff
path: root/editeng/source/items/numitem.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'editeng/source/items/numitem.cxx')
-rw-r--r--editeng/source/items/numitem.cxx103
1 files changed, 98 insertions, 5 deletions
diff --git a/editeng/source/items/numitem.cxx b/editeng/source/items/numitem.cxx
index 7c3ec9c89f09..7ef42e01cfac 100644
--- a/editeng/source/items/numitem.cxx
+++ b/editeng/source/items/numitem.cxx
@@ -28,6 +28,7 @@
#include <editeng/editids.hrc>
#include <editeng/editrids.hrc>
#include <editeng/numdef.hxx>
+#include <editeng/eeitem.hxx>
#include <vcl/graph.hxx>
#include <vcl/window.hxx>
#include <vcl/svapp.hxx>
@@ -177,6 +178,59 @@ SvxNumberFormat::SvxNumberFormat(const SvxNumberFormat& rFormat) :
*this = rFormat;
}
+SvxNumberFormat::SvxNumberFormat( SvStream &rStream )
+{
+ sal_uInt16 nTmp16;
+ sal_Int32 nTmp32;
+ rStream >> nTmp16; // Version number
+
+ rStream >> nTmp16; SetNumberingType( nTmp16 );
+ rStream >> nTmp16; eNumAdjust = ( SvxAdjust )nTmp16;
+ rStream >> nTmp16; nInclUpperLevels = nTmp16;
+ rStream >> nStart;
+ rStream >> nTmp16; cBullet = (sal_Unicode)nTmp16;
+
+ rStream >> nFirstLineOffset;
+ rStream >> nAbsLSpace;
+ rStream >> nLSpace;
+
+ rStream >> nCharTextDistance;
+
+ sPrefix = rStream.ReadUniOrByteString( rStream.GetStreamCharSet() );
+ sSuffix = rStream.ReadUniOrByteString( rStream.GetStreamCharSet() );
+ sCharStyleName = rStream.ReadUniOrByteString( rStream.GetStreamCharSet() );
+
+ sal_uInt16 hasGraphicBrush = 0;
+ rStream >> hasGraphicBrush;
+ if ( hasGraphicBrush )
+ {
+ pGraphicBrush = new SvxBrushItem( SID_ATTR_BRUSH );
+ pGraphicBrush = (SvxBrushItem*)(pGraphicBrush->Create( rStream, BRUSH_GRAPHIC_VERSION ));
+ }
+ else pGraphicBrush = 0;
+ rStream >> nTmp16; eVertOrient = nTmp16;
+
+ sal_uInt16 hasBulletFont = 0;
+ rStream >> hasBulletFont;
+ if ( hasBulletFont )
+ {
+ pBulletFont = new Font( );
+ rStream >> *pBulletFont;
+ }
+ else pBulletFont = NULL;
+ rStream >> aGraphicSize;
+
+ rStream >> nBulletColor;
+ rStream >> nBulletRelSize;
+ rStream >> nTmp16; SetShowSymbol( nTmp16 );
+
+ rStream >> nTmp16; mePositionAndSpaceMode = ( SvxNumPositionAndSpaceMode )nTmp16;
+ rStream >> nTmp16; meLabelFollowedBy = ( LabelFollowedBy )nTmp16;
+ rStream >> nTmp32; mnListtabPos = nTmp32;
+ rStream >> nTmp32; mnFirstLineIndent = nTmp32;
+ rStream >> nTmp32; mnIndentAt = nTmp32;
+
+}
SvxNumberFormat::~SvxNumberFormat()
{
delete pGraphicBrush;
@@ -253,6 +307,11 @@ SvStream& SvxNumberFormat::Store(SvStream &rStream, FontToSubsFontConverter pC
return rStream;
}
+SvxNumberFormat* SvxNumberFormat::Create( SvStream &rStream )
+{
+ return new SvxNumberFormat( rStream );
+}
+
SvxNumberFormat& SvxNumberFormat::operator=( const SvxNumberFormat& rFormat )
{
if (& rFormat == this) { return *this; }
@@ -621,7 +680,41 @@ SvxNumRule::SvxNumRule(const SvxNumRule& rCopy)
}
}
-SvStream& SvxNumRule::Store(SvStream &rStream)
+SvxNumRule::SvxNumRule( SvStream &rStream )
+{
+ sal_uInt16 nTmp16;
+ rStream >> nTmp16; // NUM_ITEM_VERSION
+ rStream >> nLevelCount;
+
+ // first nFeatureFlags of old Versions
+ rStream >> nTmp16; nFeatureFlags = nTmp16;
+ rStream >> nTmp16; bContinuousNumbering = nTmp16;
+ rStream >> nTmp16; eNumberingType = ( SvxNumRuleType )nTmp16;
+
+ for (sal_uInt16 i = 0; i < SVX_MAX_NUM; i++)
+ {
+ rStream >> nTmp16;
+ sal_Bool hasNumberingFormat = nTmp16;
+ if ( hasNumberingFormat ){
+ aFmts[i] = new SvxNumberFormat( rStream );
+ aFmtsSet[i] = sal_True;
+ }
+ else
+ {
+ aFmts[i] = 0;
+ aFmtsSet[i] = sal_False;
+ }
+ }
+ //second nFeatureFlags for new versions
+ rStream >> nTmp16; nFeatureFlags = nTmp16;
+}
+
+SvxNumRule* SvxNumRule::Create( SvStream & rStream )
+{
+ return new SvxNumRule( rStream );
+}
+
+SvStream& SvxNumRule::Store( SvStream &rStream )
{
rStream<<(sal_uInt16)NUMITEM_VERSION_03;
rStream<<nLevelCount;
@@ -631,7 +724,7 @@ SvStream& SvxNumRule::Store(SvStream &rStream)
rStream<<(sal_uInt16)eNumberingType;
FontToSubsFontConverter pConverter = 0;
- sal_Bool bConvertBulletFont = rStream.GetVersion() <= SOFFICE_FILEFORMAT_50;
+ sal_Bool bConvertBulletFont = ( rStream.GetVersion() <= SOFFICE_FILEFORMAT_50 ) && ( rStream.GetVersion() );
for(sal_uInt16 i = 0; i < SVX_MAX_NUM; i++)
{
if(aFmts[i])
@@ -656,7 +749,6 @@ SvStream& SvxNumRule::Store(SvStream &rStream)
return rStream;
}
-
SvxNumRule::~SvxNumRule()
{
for(sal_uInt16 i = 0; i < SVX_MAX_NUM; i++)
@@ -843,9 +935,10 @@ SvxNumBulletItem::SvxNumBulletItem(SvxNumRule& rRule, sal_uInt16 _nWhich ) :
{
}
-SfxPoolItem* SvxNumBulletItem::Create(SvStream &s, sal_uInt16 n) const
+SfxPoolItem* SvxNumBulletItem::Create(SvStream &rStream, sal_uInt16 /*nItemVersion*/ ) const
{
- return SfxPoolItem::Create(s, n );
+ SvxNumRule aNumRule( rStream );
+ return new SvxNumBulletItem( aNumRule, EE_PARA_NUMBULLET );
}
SvxNumBulletItem::SvxNumBulletItem(const SvxNumBulletItem& rCopy) :