summaryrefslogtreecommitdiff
path: root/sd/source/filter/eppt
diff options
context:
space:
mode:
authorSven Jacobi <sj@openoffice.org>2000-11-20 13:52:35 +0000
committerSven Jacobi <sj@openoffice.org>2000-11-20 13:52:35 +0000
commit50d028997bd1b7c029f0b0f73cbae89dbeaff422 (patch)
treea9503cd9a8c04f6fa75a0e0b11a291e33d08a799 /sd/source/filter/eppt
parentbd027941c434340606c8c9396b3642f487f05e4b (diff)
EnterGroup now has additional parameter that makes it possible to write ClientData
Diffstat (limited to 'sd/source/filter/eppt')
-rw-r--r--sd/source/filter/eppt/escherex.cxx22
-rw-r--r--sd/source/filter/eppt/escherex.hxx6
2 files changed, 18 insertions, 10 deletions
diff --git a/sd/source/filter/eppt/escherex.cxx b/sd/source/filter/eppt/escherex.cxx
index 0d6a4bd149cc..6af151a7223d 100644
--- a/sd/source/filter/eppt/escherex.cxx
+++ b/sd/source/filter/eppt/escherex.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: escherex.cxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: sj $ $Date: 2000-11-03 18:01:54 $
+ * last change: $Author: sj $ $Date: 2000-11-20 14:52:35 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -939,7 +939,7 @@ void _EscherEx::AddClientAnchor( const Rectangle& rRect )
// ---------------------------------------------------------------------------------------------
-void _EscherEx::EnterGroup( Rectangle* pBoundRect )
+void _EscherEx::EnterGroup( Rectangle* pBoundRect, SvMemoryStream* pClientData )
{
Rectangle aRect;
if ( pBoundRect )
@@ -955,18 +955,26 @@ void _EscherEx::EnterGroup( Rectangle* pBoundRect )
<< (INT32)aRect.Bottom();
if ( !mnGroupLevel )
- {
AddShape( _Escher_ShpInst_Min, 5 ); // Flags: Group | Patriarch
- CloseContainer(); // _Escher_SpContainer
- }
else
{
AddShape( _Escher_ShpInst_Min, 0x201 ); // Flags: Group | HaveAnchor
AddAtom( 8, _Escher_ClientAnchor );
PtReplaceOrInsert( _Escher_Persist_Grouping_Logic | mnGroupLevel, mpOutStrm->Tell() );
*mpOutStrm << (INT16)aRect.Top() << (INT16)aRect.Left() << (INT16)aRect.Right() << (INT16)aRect.Bottom();
- CloseContainer(); // _Escher_SpContainer
}
+ if ( pClientData )
+ {
+ pClientData->Seek( STREAM_SEEK_TO_END );
+ sal_uInt32 nSize = pClientData->Tell();
+ if ( nSize )
+ {
+ *mpOutStrm << (sal_uInt32)( ( _Escher_ClientData << 16 ) | 0xf )
+ << nSize;
+ mpOutStrm->Write( pClientData->GetData(), nSize );
+ }
+ }
+ CloseContainer(); // _Escher_SpContainer
mnGroupLevel++;
}
diff --git a/sd/source/filter/eppt/escherex.hxx b/sd/source/filter/eppt/escherex.hxx
index f29690a7ca41..c28617a9a31e 100644
--- a/sd/source/filter/eppt/escherex.hxx
+++ b/sd/source/filter/eppt/escherex.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: escherex.hxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: sj $ $Date: 2000-11-03 18:02:16 $
+ * last change: $Author: sj $ $Date: 2000-11-20 14:52:10 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -1186,7 +1186,7 @@ class _EscherEx : public _EscherPersistTable
void AddAtom( UINT32 nAtomSitze, UINT16 nRecType, int nRecVersion = 0, int nRecInstance = 0 );
void AddClientAnchor( const Rectangle& rRectangle );
- void EnterGroup( Rectangle* pBoundRect = NULL );
+ void EnterGroup( Rectangle* pBoundRect = NULL, SvMemoryStream* pClientData = NULL );
UINT32 GetGroupLevel() const { return mnGroupLevel; };
BOOL SetGroupSnapRect( UINT32 nGroupLevel, const Rectangle& rRect );
BOOL SetGroupLogicRect( UINT32 nGroupLevel, const Rectangle& rRect );